@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/inter-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Shared desktop navigation; deliberately separate from practice-page styles. */
html[data-theme="clinical"] .app-body{--bg:#f8fafc;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;background:var(--bg)}
.app-body{--sidebar:224px;font-family:Inter,"HarmonyOS Sans SC","Microsoft YaHei","PingFang SC",system-ui,-apple-system,sans-serif}
.app-body .ui-icon{display:block;width:22px;height:22px;flex:none;stroke-width:1.75}
.app-body [hidden]{display:none!important}
.app-body .app-frame{display:block;margin:0;max-width:none;padding:0}
.app-body .sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);height:100dvh;box-sizing:border-box;overflow-y:auto;padding:26px 16px;background:var(--surface);border-right:1px solid var(--line);border-radius:0;box-shadow:none;z-index:20}
.app-body .sidebar .brand{gap:10px;padding:0 4px;margin:0 0 30px;text-decoration:none}
.app-body .sidebar .brand strong{font-size:20px;letter-spacing:0;white-space:nowrap}
.app-body .sidebar .brand small{font-size:10px;letter-spacing:0;color:var(--muted);white-space:nowrap}
.app-body .sidebar .brand-mark{width:38px;height:38px;border-radius:9px;background:#2563eb;box-shadow:none;flex:none;transform:none}
.app-body .sidebar .bank-switch{display:flex;padding:3px;gap:2px;margin:0 0 22px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.app-body .sidebar .bank-switch button{flex:1;min-height:38px;min-width:0;padding:5px 2px;font-size:13px;border:0;border-radius:6px;box-shadow:none;color:var(--muted);background:none}
.app-body .sidebar .bank-switch button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px #0f172a0c;font-weight:600}
.app-body .side-nav{display:flex;flex-direction:column;gap:7px}
.app-body .sidebar .brand,.app-body .sidebar .bank-switch{flex-shrink:0}
.app-body .sidebar .side-nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}
.app-body .side-nav a,.app-body .side-nav>button,.app-body .side-nav [data-admin-slot]>a{display:flex;align-items:center;gap:14px;min-height:44px;padding:10px 14px;box-sizing:border-box;font:inherit;font-size:15px;text-decoration:none;color:var(--muted);background:none;border:0;border-radius:8px;text-align:left;cursor:pointer;position:relative;box-shadow:none}
.app-body .side-nav [data-admin-slot]>a{width:100%}
.app-body .side-nav a:hover,.app-body .side-nav>button:hover{background:var(--surface-2);color:var(--ink)}
.app-body .side-nav a.active{color:var(--accent-ink);background:var(--accent-soft);font-weight:600}
.app-body .side-nav a.active:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--accent);border-radius:2px}
.app-body .side-nav .nav-separator{height:1px;margin:20px 5px 10px;background:var(--line)}
.app-body .sidebar-footer{margin-top:auto;padding-top:24px;flex:none}
.app-body .research-link{display:inline-flex;align-items:center;gap:6px;min-width:44px;min-height:44px;box-sizing:border-box;padding:8px 14px;border-radius:6px;background:transparent;color:var(--muted);font-size:13px;font-weight:400;line-height:1.5;text-decoration:none;cursor:pointer}
.app-body .research-link .ui-icon{width:12px;height:12px;stroke-width:1.75;transform:rotate(-45deg)}
.app-body .research-link:hover,.app-body .research-link:active{color:var(--ink);background:var(--surface-2)}
.app-body .research-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app-body .mobile-research-footer{display:none}
.app-body .main-column{margin-left:var(--sidebar);width:auto;min-width:0;padding:0}
.app-body #appMain{width:100%;max-width:1440px;margin:0 auto;padding:32px 36px 48px;box-sizing:border-box;outline:none}
.app-body .desktop-header{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:28px;min-height:72px;padding:12px 36px;background:var(--surface);border-bottom:1px solid var(--line);box-sizing:border-box}
.global-search{display:flex;align-items:center;gap:10px;flex:1;max-width:800px;min-width:0;margin:0;padding:0 12px;height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.global-search:focus-within{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 15%,transparent)}
.global-search .ui-icon{width:18px;height:18px;color:var(--muted)}
.global-search input{min-width:0;width:100%;height:100%;border:0;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:14px;padding:0;box-shadow:none}
.global-search input::placeholder{color:var(--muted)}
.global-search kbd{font:inherit;font-size:11px;white-space:nowrap;border:1px solid var(--line);border-radius:4px;padding:2px 5px;color:var(--muted)}
.header-auth{display:flex;align-items:center;gap:12px;flex:none;margin-left:auto}
.header-auth button,.header-auth a{display:inline-flex;justify-content:center;align-items:center;min-height:40px;padding:0 13px;border:0;border-radius:8px;color:var(--ink);background:none;text-decoration:none;font:inherit;font-size:14px;white-space:nowrap;cursor:pointer}
.header-auth #headerRegister{background:var(--accent);color:#fff;padding:0 20px}
.header-auth button:hover{background:var(--surface-2)}
.app-body :is(.side-nav,.desktop-header,.home-page) :is(a,button,input):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.app-body .global-search input:focus-visible{outline:none}
.me-admin-slot{margin:16px 0}
.me-admin-slot a{display:flex;align-items:center;gap:12px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink)}
.app-body .mobile-header{display:none}
.app-body[data-route="practice"] .main-column{margin-left:0}
.app-body[data-route="practice"] .desktop-header{display:none}
.app-body[data-route="practice"] .mobile-header{display:none}
.search-bank-group{margin:24px 0 32px}
.search-bank-group .search-result-summary{gap:14px}
.search-bank-group .search-result-summary>div{display:flex;align-items:baseline;gap:14px}
.search-bank-group h2{font-size:18px;margin:0}
.search-bank-group .search-result-summary span,.search-scope-note{font-size:13px;color:var(--muted)}
.search-error{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--surface)}
.search-error p{margin:0 0 12px}
@media(min-width:761px) and (max-width:1199px){.app-body{--sidebar:200px}.app-body .sidebar{padding:22px 12px}.app-body #appMain{padding:26px 24px}.app-body .desktop-header{padding:12px 24px}.app-body .sidebar .brand strong{font-size:18px}.app-body .sidebar .brand small{font-size:9px}.header-auth{gap:3px}}
@media(max-width:760px){
 .app-body .sidebar{display:none}.app-body .main-column{margin-left:0}.app-body .mobile-header{display:flex}
 .app-body .desktop-header{position:relative;min-height:60px;padding:8px 16px;gap:10px;z-index:5}.app-body .desktop-header .header-auth{display:none}
 .global-search{max-width:none;height:42px}.global-search input{font-size:16px}.global-search kbd{display:none}
 .app-body #appMain{padding:24px 16px 100px}.app-body .mobile-header .brand-mark{box-shadow:none}
 .app-body .side-nav [data-admin-slot]{display:none}
 .app-body[data-route="me"] #appMain{padding-bottom:24px}
 .app-body[data-route="me"] .mobile-research-footer{display:block;margin:0 16px;padding-bottom:calc(88px + env(safe-area-inset-bottom))}
}
