/* Shared light design system: workspace, specialist tools and authentication. */
:root {
  color-scheme: light;
  --ui-on-accent: #fff;
  --ui-success-soft: #eaf3ee;
  --ui-warning-soft: #faf1df;
  --ui-danger-soft: #faebeb;
  --ui-bg: #f5f7fa;
  --ui-paper: #ffffff;
  --ui-ink: #202d40;
  --ui-muted: #626f82;
  --ui-subtle: #f0f3f7;
  --ui-line: #e1e6ed;
  --ui-line-strong: #c9d2de;
  --ui-accent: #294e78;
  --ui-accent-hover: #1e3e63;
  --ui-accent-soft: #eaf0f7;
  --ui-success: #286a55;
  --ui-warning: #8b621f;
  --ui-danger: #a33b3b;
  --ui-sidebar: 224px;
  --ui-font: "Avenir Next", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --ui-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ui-bg); color: var(--ui-ink); font-family: var(--ui-font); font-size: 14px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button:not(:disabled), summary { cursor: pointer; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #9eb8d7; outline-offset: 3px; }
::selection { background: #dce7f3; color: var(--ui-ink); }
.ui-icon { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ui-wordmark { display: flex; align-items: center; gap: 11px; text-decoration: none; color: var(--ui-ink); }
.ui-wordmark:hover { text-decoration: none; }
.ui-brand-mark { display: grid; place-items: center; flex: 0 0 34px; height: 34px; border-radius: 8px; background: var(--ui-accent); color: var(--ui-on-accent); font-size: 20px; font-weight: 600; }
.ui-brand-copy { display: flex; flex-direction: column; gap: 2px; }
.ui-brand-copy strong { font-size: 16px; letter-spacing: 1px; font-weight: 600; }
.ui-brand-copy small { font-size: 9px; letter-spacing: 1.5px; color: var(--ui-muted); }
.ui-nav-label { display: block; font-size: 11px; font-weight: 500; color: var(--ui-muted); letter-spacing: .05em; padding: 20px 14px 7px; }
.ui-tool-links { display: grid; gap: 3px; }
.ui-nav-link { display: flex; align-items: center; gap: 11px; padding: 9px 13px; min-height: 38px; color: var(--ui-muted); font-size: 13px; border-radius: 6px; text-decoration: none; }
.ui-nav-link:hover { background: var(--ui-subtle); color: var(--ui-ink); text-decoration: none; }
.ui-nav-link[aria-current=page] { background: var(--ui-accent-soft); color: var(--ui-accent); font-weight: 600; }
.ui-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--ui-sidebar); display: flex; flex-direction: column; background: var(--ui-paper); border-right: 1px solid var(--ui-line); z-index: 30; }
.ui-sidebar > .ui-wordmark { padding: 26px 22px 23px; }
.ui-sidebar-nav { flex: 1; min-height: 0; overflow-y: auto; padding: 0 12px 18px; scrollbar-width: thin; }
.ui-sidebar-nav .ui-nav-label:first-child { padding-top: 5px; }
.ui-profile { display: flex; align-items: center; gap: 10px; padding: 17px 18px; border-top: 1px solid var(--ui-line); }
.ui-avatar { display: grid; place-items: center; background: var(--ui-subtle); color: var(--ui-accent); width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; font-weight: 600; }
.ui-profile-copy { min-width: 0; flex: 1; }
.ui-profile-copy strong, .ui-profile-copy small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ui-profile-copy strong { font-size: 13px; font-weight: 500; }
.ui-profile-copy small { font-size: 10px; color: var(--ui-muted); }
.ui-icon-button { display: grid; place-items: center; border: 1px solid transparent; border-radius: 6px; padding: 8px; background: transparent; color: var(--ui-muted); }
.ui-icon-button:hover { background: var(--ui-subtle); }
.ui-module-topbar { height: 64px; margin-left: var(--ui-sidebar); padding: 0 36px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--ui-line); background: var(--ui-paper); }
.ui-module-topbar > span { color: var(--ui-muted); font-size: 12px; }
.ui-module-topbar > strong { font-size: 12px; font-weight: 500; }
.ui-topbar-context { margin-left: auto; font-size: 11px; color: var(--ui-muted); }
.ui-mobile-menu { display: none; }
.ui-scrim { display: none; }
.ui-skip { position: fixed; top: -60px; left: 16px; padding: 8px 16px; background: var(--ui-paper); color: var(--ui-accent); z-index: 80; }
.ui-skip:focus { top: 8px; }
@media (max-width: 1000px) {
  .ui-sidebar { transform: translateX(-100%); visibility: hidden; transition: transform .18s ease, visibility .18s; }
  .ui-module-topbar { margin-left: 0; height: 58px; padding: 0 18px; }
  .ui-module-topbar > span { display: none; }
  .ui-mobile-menu { display: grid; }
  body.ui-nav-open .ui-sidebar { transform: translateX(0); visibility: visible; }
  body.ui-nav-open .ui-scrim { display: block; position: fixed; inset: 0; background: rgb(29 41 59 / .25); border: 0; z-index: 25; }
  .ui-topbar-context { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; animation-iteration-count: 1 !important; } }
@media print { .ui-sidebar, .ui-module-topbar, .ui-scrim { display: none !important; } }
