/* DolphFi presentation layer. The V187 layout, state and event handlers remain in their original files. */
@font-face{font-family:DFSans;src:url('/assets/dolphfi/fonts/df-sans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:DFSans;src:url('/assets/dolphfi/fonts/df-sans-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:DFSans;src:url('/assets/dolphfi/fonts/df-sans-700.woff2') format('woff2');font-weight:700 900;font-display:swap}
@font-face{font-family:DFManrope;src:url('/assets/dolphfi/fonts/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{color-scheme:light;--df-blue:#2472ff;--df-electric:#1356f5;--df-ink:#04060c;--df-paper:#f6f8fc;--df-line:#e5eaf3;--bg:#fff;--bg-2:#f6f8fc;--panel:#fff;--panel-strong:#f6f8fc;--line:#e5eaf3;--line-strong:#ced9ed;--text:#101827;--muted:#63718a;--subtle:#8591a5;--gold:#2472ff;--orange:#2472ff;--magenta:#1356f5;--cyan:#2472ff;--green:#2472ff;--danger:#c83650;--shadow:0 16px 48px #0e2b6110;--radius:18px;--topbar-h:80px;font-family:DFSans,'PingFang SC','Microsoft YaHei',system-ui,sans-serif}
html,body{background:#fff!important;color:var(--df-ink)}
body{font-family:DFSans,'PingFang SC','Microsoft YaHei',system-ui,sans-serif!important;background:radial-gradient(ellipse at 95% 0,#edf4ff 0,transparent 36rem),#fff!important}
body::before,body::after{background:none!important;opacity:0!important}
::selection{background:#2472ff26;color:#1356f5}
button,input,textarea,select{font-family:inherit;accent-color:var(--df-blue)}
:is(button,a,input,textarea,select):focus-visible{outline:2px solid var(--df-blue)!important;outline-offset:4px}
button:disabled{opacity:.45}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{border-radius:20px;background:#ced7e6}
.topbar{background:#ffffffed!important;border-bottom:1px solid var(--df-line)!important;box-shadow:none!important;backdrop-filter:blur(16px);gap:20px}
.brand{gap:18px}
.app-shell{background:transparent!important}
.app-shell::before,.app-shell::after,.carousel-shell::before,.tab-body-shell::before{display:none!important}
.brand-logo{width:160px;max-height:42px;object-fit:contain;filter:none!important}
.brand-title{font-size:15px;font-weight:500;color:#53617b!important;letter-spacing:0!important}
.brand-title::before{background:#d9e1ed!important}
.brand-version{color:#8190a8!important}
.top-actions{gap:14px}
.topbar-entry-link,.topbar-entry-link-inner,.topbar-dapp-link{background:none!important;color:#17233b!important;border-color:#dce5f3!important;text-shadow:none!important;box-shadow:none!important;animation:none!important}
.topbar-entry-link{border-radius:999px!important;font-size:12px!important;padding:9px 17px!important}
.topbar-entry-link::before,.topbar-entry-link::after{display:none!important}
.topbar-entry-link:hover{background:#edf4ff!important;color:var(--df-blue)!important}
.language-trigger{background:#f5f8fd!important;color:#192740!important;border:1px solid #e7edf6!important;border-radius:999px!important;box-shadow:none!important;min-height:38px}
.language-current{color:inherit!important}
.language-menu{background:#fff!important;border:1px solid #e2e9f4!important;box-shadow:0 18px 48px #11295517!important;border-radius:16px!important;color:#24304a!important;overflow:auto;max-height:70vh}
.language-option{color:#46566f!important;border-radius:8px}
.language-option:hover,.language-option.is-active{background:#edf4ff!important;color:#1356f5!important}
.shell{width:min(1280px,calc(100% - 64px))}
.section-head{margin-bottom:20px}
.section-title{color:#101827!important;font-weight:700;letter-spacing:-.035em;font-size:clamp(20px,2.3vw,30px)}
.section-title::before,.section-title::after{background:#2472ff!important;box-shadow:none!important}
.section-note,.small-note,.empty-state{color:#708098!important}
.resource-section,.gallery-section{background:none!important;border-color:#e4eaf5!important}
.resource-card{background:#fff!important;color:#101827!important;border:1px solid #e1e8f3!important;border-radius:18px!important;box-shadow:0 4px 16px #172d5304!important;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease!important}
.resource-card:hover{transform:translateY(-3px);border-color:#a8c6ff!important;box-shadow:0 14px 36px #133b7710!important}
.resource-card::before,.resource-card::after{display:none!important}
.resource-title{color:#101827!important;font-weight:700!important}
.resource-main{min-width:0}
.resource-main p,.resource-summary{color:#67758c!important}
.resource-icon,.resource-icon.type-pdf,.resource-icon.type-link,.resource-icon.type-announcement,.type-badge{background:#edf4ff!important;color:#2472ff!important;border:0!important;border-radius:13px!important;box-shadow:none!important;filter:none!important}
.resource-icon svg{filter:none!important;animation:none!important}
.resource-action{color:#2472ff!important;border-color:#dae6fc!important;background:#f4f8ff!important;border-radius:999px!important}
.card-list{gap:14px!important}
.gallery-item{background:#fff!important;border:1px solid #e8edf5!important;border-radius:18px!important;box-shadow:0 8px 24px #173b6209!important}
.gallery-item::before,.gallery-item::after{display:none!important}
.gallery-caption{background:#fff!important;color:#31425f!important;border-color:#e8edf5!important}
.media-pinned-zigline{opacity:.2;filter:grayscale(1)}
.media-boundary-wrap{--boundary-color:#2472ff}
.hero-carousel,.carousel-frame{border-radius:24px!important;border-color:#e4eaf4!important;background:#f2f6fc!important;box-shadow:0 20px 60px #163b6810!important}
.carousel-dot{background:#b3c4df!important;box-shadow:none!important}
.carousel-dot.is-active{background:#2472ff!important}
.play-chip{background:#2472ff!important;color:#fff!important;border:1px solid #ffffff8a!important;box-shadow:0 6px 24px #2472ff30!important}
.bottom-nav-wrap{background:linear-gradient(0deg,#ffffffee 25%,#ffffff00)!important;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
.bottom-nav{background:#fffffff5!important;border:1px solid #e0e7f3!important;border-radius:24px!important;padding:6px!important;box-shadow:0 10px 40px #14315e12!important;backdrop-filter:blur(18px)}
.bottom-nav::before,.bottom-nav::after,.nav-orb::before,.nav-orb::after{display:none!important}
.bottom-nav-link{color:#78859b!important;background:none!important;border-radius:18px!important;filter:none!important;box-shadow:none!important;text-shadow:none!important}
.bottom-nav-link.is-active,.bottom-nav-link[aria-current=page]{color:#fff!important;background:#2472ff!important}
.bottom-nav-link:hover{color:#1356f5!important;background:#edf4ff!important}
.bottom-nav-link.is-active:hover{color:#fff!important;background:#1356f5!important}
.nav-orb{background:none!important;border:0!important;box-shadow:none!important;filter:none!important;color:inherit!important}
.nav-orb svg,.nav-label{color:inherit!important;filter:none!important;text-shadow:none!important}
.nav-orb svg{width:22px!important;height:22px!important}
.nav-label{font-size:11px!important;font-weight:500!important;letter-spacing:.02em}
.home-announcement-carousel{background:#f5f8ff!important;border:1px solid #e1e9f8!important;border-radius:20px!important;box-shadow:none!important}
.home-announcement-carousel::before,.home-announcement-carousel::after{display:none!important}
.home-announcement-icon{background:#e8f1ff!important;color:#2472ff!important;box-shadow:none!important}
.home-announcement-title{color:#12213b!important}
.home-announcement-meta,.home-announcement-action{color:#2472ff!important}
.home-announcement-summary{color:#647590!important}
.home-announcement-dot{background:#cdd9ed!important}
.home-announcement-dot.is-active{background:#2472ff!important;box-shadow:none!important}
.announcement-panel,.announcement-card,.announcement-detail,.tweet-card,.twitter-profile-card,.twitter-tabs,.tweet-text-panel{background:#fff!important;border-color:#e1e8f3!important;color:#15213b!important;box-shadow:0 10px 30px #11396908!important;border-radius:18px!important}
.announcement-card::before,.announcement-card::after{display:none!important}
.announcement-title,.announcement-card-title,.tweet-author,.twitter-profile-name{color:#101827!important}
.announcement-meta,.announcement-summary,.tweet-time,.tweet-content,.twitter-profile-desc{color:#67758c!important}
.announcement-tab,.twitter-tab{color:#718099!important;background:#f3f6fc!important;border-color:#e4eaf4!important}
.announcement-tab.is-active,.twitter-tab.is-active{color:#2472ff!important;background:#eaf2ff!important}
.toast{background:#0d1a30!important;color:#fff!important;border:1px solid #324969!important;border-radius:999px!important;box-shadow:0 8px 32px #0b234033!important}
.image-viewer,.video-overlay{background:#050b17ed!important}
.video-overlay :is(button,.video-control){color:#fff}
.image-viewer img,.video-overlay video{border-radius:12px}
.academy-clone-frame,.academy-clone-shell{background:#fff!important;border-color:#e4eaf3!important}
/* All admin controls keep their original keys, inputs, handlers and persistence. */
.admin-app{background:#f3f6fb!important}
.admin-panel{background:#fff!important;border-color:#e3eaf4!important}
.admin-panel-inner{padding:20px!important;gap:18px!important}
.admin-title{color:#101827!important;font-size:17px!important;font-weight:700!important;letter-spacing:-.04em}
.admin-section{background:#f8faff!important;border:1px solid #e5ebf5!important;border-radius:16px!important;padding:14px!important;box-shadow:none!important}
.admin-section-title{color:#42628e!important;font-size:11px!important;font-weight:700!important;letter-spacing:.04em}
.admin-stage{background:#f2f5fb!important}
.stage-toolbar{background:#ffffffee!important;border-color:#e2e9f3!important;backdrop-filter:blur(14px)}
.stage-title{color:#2b3f60!important}
.admin-tab-button,.lang-row,.lang-manage,.lang-toggle-button,.lang-delete-button{background:#fff!important;border-color:#e2e9f3!important;color:#5a6b84!important;border-radius:10px!important;box-shadow:none!important}
.admin-tab-button.is-active,.admin-tab-button[aria-current=true],.lang-row.is-lang-editing{background:#2472ff!important;color:#fff!important;border-color:#2472ff!important}
.lang-row.is-lang-editing :is(button,.lang-row-label){color:#fff!important}
.admin-tab-button:hover{background:#edf4ff!important;color:#2472ff!important}
.lang-row-label,.lang-tag{color:inherit!important}
.lang-row-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px!important}
.lang-row-actions{gap:4px!important}
.lang-toggle-button,.lang-delete-button{padding:5px 7px!important;font-size:10px!important;min-height:28px!important}
.lang-tag{white-space:nowrap!important;font-size:9px!important;padding:4px 6px!important}
.lang-row.is-lang-editing :is(.lang-tag,.lang-row-actions button){background:#ffffff24!important;color:#fff!important;border-color:#ffffff38!important}
.primary-button,.admin-login-submit{background:#2472ff!important;border:1px solid #2472ff!important;border-radius:11px!important;color:#fff!important;box-shadow:0 6px 16px #2472ff18!important;text-shadow:none!important}
.primary-button:hover,.admin-login-submit:hover{background:#1356f5!important}
.ghost-button,.control-button{background:#fff!important;border:1px solid #dfe7f3!important;border-radius:10px!important;color:#405674!important;box-shadow:none!important}
.ghost-button:hover{background:#edf4ff!important;color:#2472ff!important;border-color:#c1d6fb!important}
.status-pill{background:#edf4ff!important;color:#2472ff!important;border-color:#d3e3ff!important;box-shadow:none!important}
.status-dot{background:#2472ff!important;box-shadow:none!important}
.preview-frame{background:#fff!important;border-color:#e1e8f3!important;border-radius:20px!important;box-shadow:0 12px 40px #153c7310!important}
.field>span,.field-label,.admin-subtitle,.inspector-readonly{color:#6b7b93!important}
.control-input,.control-textarea,.control-select,.field input,.field textarea,.field select{color:#182842!important;background:#fff!important;border-color:#dce5f2!important;border-radius:9px!important;box-shadow:none!important}
.control-input:focus,.control-textarea:focus,.control-select:focus{border-color:#2472ff!important;box-shadow:0 0 0 3px #2472ff12!important}
.toggle-line{color:#475c7b!important}
.admin-resizer{background:#e7edf7!important}
.admin-resizer:hover,.admin-resizer.is-dragging{background:#2472ff!important}
.asset-drop-zone,.language-share-drop-zone,.upload-progress-panel{background:#edf4ff!important;border-color:#bfd3f5!important;color:#476999!important;border-radius:12px!important}
.asset-drop-zone.is-drag-over,.language-share-drop-zone.is-drag-over{background:#dceaff!important;border-color:#2472ff!important}
.upload-spinner{border-color:#cbdcfc!important;border-top-color:#2472ff!important}
.upload-progress-track,.video-cover-upload-progress progress{background:#dce7f8!important;accent-color:#2472ff!important}
.upload-progress-track>div,.video-cover-upload-progress progress::-webkit-progress-value{background:#2472ff!important}
.video-cover-upload-hud,.video-cover-upload-progress{background:#fff!important;border-color:#d4e0f4!important;color:#203d68!important;box-shadow:0 10px 36px #183c731a!important}
.video-cover-progress-detail{color:#6b80a0!important}
.sort-handle{color:#7993b9!important;background:#ffffffd9!important;border-color:#d5e2f5!important;box-shadow:none!important}
.admin-login-screen{background:radial-gradient(ellipse at 50% 10%,#e6efff,transparent 65%),#f8faff!important}
#adminApp:has(>.admin-login-screen){display:block!important}
.admin-login-screen{width:100%;min-height:100dvh}
.admin-login-card{background:#fff!important;border:1px solid #e1e9f5!important;box-shadow:0 24px 80px #1b428516!important;border-radius:24px!important;padding:36px!important}
.admin-login-title{color:#13223c!important;font-size:21px!important}
.admin-login-subtitle{color:#71809a!important}
.admin-login-title::before{content:'';display:block;background:url('/assets/dolphfi/logo-dark.svg') left center/contain no-repeat;width:155px;height:38px;margin-bottom:26px}
@media(min-width:1000px){.card-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}.resource-card{min-height:96px!important;padding:18px!important}.resource-section,.gallery-section{margin-top:40px!important}.carousel-shell{padding-top:28px!important}.bottom-nav{max-width:560px!important}}
@media(max-width:700px){:root{--topbar-h:68px}.topbar{padding:12px 18px!important;gap:8px!important}.brand{gap:9px!important}.brand-logo{width:108px!important}.brand-title{font-size:12px!important;padding-left:9px!important}.top-actions{gap:7px!important}.language-trigger{min-height:34px!important;padding:6px 10px!important;font-size:11px!important}.language-trigger .ui-icon{width:14px!important;height:14px!important}.topbar-entry-link{font-size:10px!important;padding:7px 10px!important}.topbar-library-link{display:none!important}.shell{width:calc(100% - 32px)!important}.section-title{font-size:22px!important}.resource-card{border-radius:15px!important}.gallery-item{border-radius:13px!important}.hero-carousel,.carousel-frame{border-radius:18px!important}.bottom-nav{width:calc(100% - 32px)!important;border-radius:20px!important}.bottom-nav-link{border-radius:14px!important}.nav-orb svg{width:20px!important;height:20px!important}.nav-label{font-size:10px!important}.bottom-nav-wrap{padding-bottom:max(12px,env(safe-area-inset-bottom))!important}.admin-panel-inner{padding:12px!important}.admin-login-card{padding:26px!important}.admin-title{font-size:14px!important}}
@media(prefers-reduced-motion:reduce){.resource-card,.gallery-item,button{transition:none!important}}
@media(max-width:900px){body[data-page=admin]{overflow:auto!important}.admin-app{height:auto!important;min-height:100dvh!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto auto!important}.admin-panel{overflow:visible!important;max-height:none!important;min-width:0}.admin-stage{overflow:visible!important;min-height:70dvh!important}.admin-inspector{display:block!important;border-top:1px solid #e2e9f3}.admin-resizer{display:none!important}.stage-toolbar{padding:12px!important;flex-wrap:wrap!important;gap:8px!important}.stage-actions{flex-wrap:wrap!important}.preview-frame{width:calc(100% - 24px)!important}.academy-manager-frame{min-height:820px!important}}
.empty-state{background:#f7faff!important;color:#74849f!important;border:1px solid #e1e9f7!important;border-radius:20px!important;box-shadow:none!important;opacity:1!important;padding:48px 24px!important}
.card-list>.empty-state{grid-column:1/-1}
.home-announcement-carousel:not(:has([data-home-announcement-card])),.carousel-shell:not(:has(.hero-carousel,[data-home-announcement-card])){display:none!important}
.ghost-button,.control-button,.language-trigger,.topbar-entry-link{background:#2472ff!important;color:#fff!important;border-color:#2472ff!important}
.ghost-button:hover,.control-button:hover,.language-trigger:hover,.topbar-entry-link:hover{background:#1356f5!important;color:#fff!important}
.topbar-entry-link .topbar-entry-link-inner{color:#fff!important;-webkit-text-fill-color:#fff!important}
.topbar-entry-link::before,.topbar-entry-link::after,.topbar-entry-link-inner::before,.topbar-entry-link-inner::after{display:none!important;background:none!important;animation:none!important}
.topbar-entry-link.is-flowing{animation:none!important;box-shadow:none!important;filter:none!important}
