/* Shared presentation palette. Semantic stock / finance / warning colours are unchanged. */
:root{--nav-start:#172c43;--nav-end:#1c253c;--nav-border:#26354b;--nav-active:#305772;--nav-mark:#b2e2ee;--theme-ink:#315979}
html[data-theme="sky"]{--nav-start:#123d65;--nav-end:#152d48;--nav-border:#285578;--nav-active:#24608e;--nav-mark:#c3e8ff;--theme-ink:#17649b}
html[data-theme="emerald"]{--nav-start:#164b42;--nav-end:#162e30;--nav-border:#326457;--nav-active:#296e5f;--nav-mark:#b5f0d8;--theme-ink:#206c58}
html[data-theme="violet"]{--nav-start:#3e3063;--nav-end:#26213b;--nav-border:#5a497e;--nav-active:#615086;--nav-mark:#e2d4ff;--theme-ink:#665096}
.header{min-height:76px;padding:13px 28px;position:relative;z-index:100;gap:18px;background:linear-gradient(105deg,#fff 55%,var(--accent-soft));color:var(--ink);border-bottom:1px solid var(--line);border-top:3px solid var(--theme-ink);font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;flex-wrap:nowrap}
.header-context{display:flex;flex-direction:column;gap:4px;min-width:0}.header-app-name{font-size:10px;letter-spacing:1.8px;color:var(--theme-ink)}.header .header-title{font-size:19px;font-weight:650;letter-spacing:0;color:var(--ink);white-space:nowrap}.header-right{gap:20px;min-width:0}.header-meta{color:var(--muted)}.header #serverIP{opacity:.8!important;font-size:10px!important}.header #currentDate{font-size:11px!important;opacity:1!important}
.header-user{gap:10px;padding-left:18px;border-left:1px solid var(--line)}.header-user span{opacity:1;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-user button{color:var(--muted);border:1px solid var(--input-border);background:#fff;padding:7px 10px;font-size:11px}.header-user button:hover{color:var(--theme-ink);background:var(--accent-soft)}
.theme-switch{position:relative;display:flex;align-items:center;padding:0}.theme-switch-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 12px;border:1px solid var(--input-border);border-radius:10px;background:#fff;color:var(--theme-ink);cursor:pointer;font:12px inherit;white-space:nowrap}.theme-switch-btn svg{width:17px;height:17px}.theme-switch-btn:hover,.theme-switch-btn[aria-expanded="true"]{background:var(--accent-soft);border-color:var(--theme-ink)}
.theme-dots{position:absolute;right:0;top:calc(100% + 10px);display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:18px;width:280px;max-width:calc(100vw - 24px);background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px rgba(var(--shadow-rgb),.18);z-index:110}.theme-dots[hidden]{display:none}.theme-menu-title,.theme-menu-hint{grid-column:1/-1}.theme-menu-title{font-size:14px}.theme-menu-hint{font-size:11px;line-height:1.6;color:var(--muted);margin-bottom:5px}.theme-dot{display:flex;align-items:center;gap:8px;padding:11px 9px;min-height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--muted);font-family:inherit;font-size:12px;cursor:pointer}.theme-dot i{width:16px;height:16px;border-radius:50%;flex:none}.theme-dot:hover{background:var(--hover-bg)}.theme-dot.active{border-color:var(--theme-ink);background:var(--accent-soft);color:var(--theme-ink);font-weight:600}.header button:focus-visible{outline:3px solid var(--theme-ink);outline-offset:3px}
.mobile-more-item .vb-mobile-icon{color:var(--theme-ink);background:var(--accent-soft)}
@media(max-width:900px){.header{padding:12px 20px}.header-meta{display:none}.header-right{gap:12px}.header-user{padding-left:0;border:0}}
@media(max-width:700px){.header{min-height:70px;padding:10px 12px;gap:8px}.header .header-title{font-size:16px}.header-app-name{font-size:9px;letter-spacing:.5px}.header-right{gap:8px}.header-user span{display:none}.header-user button{padding:7px 8px;font-size:11px}.theme-switch{padding:0}.theme-switch-btn{gap:5px;padding:8px}.theme-dots{right:0}}
@media(prefers-reduced-motion:no-preference){.theme-dot,.theme-switch-btn{transition:background-color .16s,border-color .16s}}
@media print{.header{display:none!important}}
