@font-face{font-family:HoyaSerif;src:url("/hoya-home/assets/editorial-serif.ttf") format("truetype");font-display:swap;font-style:normal;font-weight:400 700}
@font-face{font-family:HoyaLocalSerif;src:local("Noto Serif CJK SC"),local("Source Han Serif SC"),local("Songti SC"),local("SimSun");font-display:swap}

:root{
  --cloud:#FAFAF6;
  --apricot:#F1ECE4;
  --sand:#E0D5C7;
  --wheat:#C9B9A8;
  --khaki:#B89F8D;
  --linen:#9E8A79;
  --cocoa:#7A6A5E;
  --mocha:#5C4F46;
  --gray:#3A3A3A;
  --tea:#1F1F1F;
  --border:color-mix(in srgb,var(--linen) 22%,transparent);
  --serif:Georgia,"Times New Roman",HoyaLocalSerif,"Songti SC",SimSun,serif;
  --hoya-bg:var(--cloud);
  --hoya-panel:var(--cloud);
  --hoya-panel-strong:var(--cloud);
  --hoya-soft:#F6F3EE;
  --hoya-soft-strong:var(--apricot);
  --hoya-row-hover:#F5F1EA;
  --hoya-sidebar:var(--cloud);
  --hoya-selected:var(--apricot);
  --hoya-glass:color-mix(in srgb,var(--cloud) 94%,transparent);
  --hoya-overlay:color-mix(in srgb,var(--mocha) 38%,transparent);
  --hoya-text:var(--tea);
  --hoya-text-secondary:var(--mocha);
  --hoya-muted:var(--cocoa);
  --hoya-faint:#847365;
  --hoya-accent:var(--mocha);
  --hoya-accent-strong:var(--tea);
  --hoya-accent-muted:var(--cocoa);
  --hoya-solid:var(--tea);
  --hoya-solid-hover:var(--gray);
  --hoya-on-solid:var(--cloud);
  --hoya-border:#E4DDD3;
  --hoya-border-strong:var(--sand);
  --hoya-focus:var(--cocoa);
  --hoya-shadow:none;
  --hoya-shadow-hover:0 8px 24px rgb(92 79 70/.04);
  --hoya-shadow-lg:0 16px 48px rgb(31 31 31/.1);
  --hoya-success:#5F735C;
  --hoya-warning:#936C3E;
  --hoya-danger:#9B584F;
  --hoya-on-status:var(--cloud);
  --hoya-chart-1:#5C4F46;
  --hoya-chart-2:#9E8A79;
  --hoya-chart-3:#7A6A5E;
  --hoya-chart-4:#947351;
  --hoya-chart-5:#807D6A;
  --hoya-chart-6:#3A3A3A;
  --hoya-ease:cubic-bezier(.16,1,.3,1);
  --tw-ring-color:rgb(122 106 94/.3);
  --tw-ring-offset-color:var(--cloud);
}

html.dark{
  --hoya-bg:#1F1F1F;
  --hoya-panel:#252524;
  --hoya-panel-strong:#292827;
  --hoya-soft:#2B2A28;
  --hoya-soft-strong:#35332F;
  --hoya-row-hover:#35332F;
  --hoya-sidebar:#1F1F1F;
  --hoya-selected:#35332F;
  --hoya-glass:color-mix(in srgb,var(--hoya-panel) 88%,transparent);
  --hoya-overlay:color-mix(in srgb,var(--tea) 64%,transparent);
  --hoya-text:var(--cloud);
  --hoya-text-secondary:var(--apricot);
  --hoya-muted:var(--wheat);
  --hoya-faint:var(--khaki);
  --hoya-accent:var(--wheat);
  --hoya-accent-strong:var(--cloud);
  --hoya-accent-muted:var(--sand);
  --hoya-solid:var(--sand);
  --hoya-solid-hover:var(--apricot);
  --hoya-on-solid:var(--tea);
  --hoya-border:color-mix(in srgb,var(--wheat) 25%,transparent);
  --hoya-border-strong:color-mix(in srgb,var(--wheat) 58%,transparent);
  --hoya-focus:var(--wheat);
  --hoya-shadow:none;
  --hoya-shadow-hover:0 8px 24px rgb(0 0 0/.12);
  --hoya-shadow-lg:0 16px 48px rgb(0 0 0/.26);
  --hoya-success:#B3C3A8;
  --hoya-warning:#D8B78B;
  --hoya-danger:#D9A398;
  --hoya-on-status:var(--tea);
  --hoya-chart-1:#E0D5C7;
  --hoya-chart-2:#B89F8D;
  --hoya-chart-3:#C9AD88;
  --hoya-chart-4:#8F7B6A;
  --hoya-chart-5:#A9AC90;
  --hoya-chart-6:#F1ECE4;
  --tw-ring-color:rgb(201 185 168/.34);
  --tw-ring-offset-color:var(--hoya-panel);
}

/* Only the software shell uses these tokens; the independent homepage has no #app. */
html:has(#app){color-scheme:light;background:var(--hoya-bg)}
html.dark:has(#app){color-scheme:dark}

body:has(#app){
  margin:0;
  background:var(--hoya-bg);
  color:var(--hoya-text);
  font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;
  font-size:14px;
  line-height:1.6;
  accent-color:var(--hoya-focus);
}

body:has(#app) #app{min-height:100vh;color:var(--hoya-text)}
body:has(#app) ::selection{background:var(--sand);color:var(--tea)}
body:has(#app) :where(a,button,input,select,textarea,[role="button"],[tabindex]):focus-visible{outline:2px solid var(--hoya-focus);outline-offset:3px}
body:has(#app) :where(a,button){-webkit-tap-highlight-color:transparent}
body:has(#app) #app > .min-h-screen{background:var(--hoya-bg)}
body:has(#app) #app .bg-mesh-gradient{display:none}
body:has(#app) .navigation-progress-bar{background:linear-gradient(90deg,transparent,var(--khaki) 20%,var(--mocha) 50%,var(--khaki) 80%,transparent)}

body:has(#app) :where(.text-gray-950,.text-gray-900,.text-gray-800,.text-zinc-900,.text-zinc-800,.text-neutral-800,.text-dark-900,.dark\:text-white,.dark\:text-gray-50,.dark\:text-gray-100,.dark\:text-dark-50,.dark\:text-dark-100,.dark\:text-zinc-100){color:var(--hoya-text)}
body:has(#app) :where(.text-gray-700,.text-gray-600,.text-zinc-700,.text-zinc-600,.text-neutral-700,.text-slate-700,.text-slate-600,.dark\:text-gray-200,.dark\:text-gray-300,.dark\:text-dark-200,.dark\:text-dark-300,.dark\:text-slate-200,.dark\:text-slate-300,.dark\:text-zinc-200,.dark\:text-zinc-300){color:var(--hoya-text-secondary)}
body:has(#app) :where(.text-gray-500,.text-slate-500,.text-neutral-500,.dark\:text-gray-400,.dark\:text-dark-400,.dark\:text-slate-400){color:var(--hoya-muted)}
body:has(#app) :where(.text-gray-400,.text-gray-300,.text-slate-400,.dark\:text-gray-500,.dark\:text-dark-500,.dark\:text-dark-600){color:var(--hoya-faint)}
body:has(#app) :where(.text-white){color:var(--cloud)}
body:has(#app) :where(.text-primary-500,.text-primary-600,.text-teal-500,.text-teal-600,.text-blue-500,.text-blue-600,.text-blue-700,.text-indigo-500,.text-indigo-600,.text-indigo-700,.text-purple-500,.text-purple-600,.text-purple-700,.text-violet-500,.text-violet-600,.text-violet-700,.text-sky-500,.text-sky-600,.text-sky-700,.text-cyan-600,.text-cyan-700,.dark\:text-primary-300,.dark\:text-primary-400,.dark\:text-teal-300,.dark\:text-teal-400,.dark\:text-blue-300,.dark\:text-blue-400,.dark\:text-indigo-300,.dark\:text-indigo-400,.dark\:text-purple-300,.dark\:text-purple-400,.dark\:text-violet-300,.dark\:text-violet-400,.dark\:text-sky-300,.dark\:text-sky-400,.dark\:text-cyan-300,.dark\:text-cyan-400){color:var(--hoya-accent)}
body:has(#app) :where(.text-primary-700,.text-primary-800,.text-primary-900,.text-blue-800,.text-blue-900,.text-indigo-800,.text-purple-800,.text-violet-800,.text-sky-800,.text-sky-900,.text-cyan-800,.text-cyan-900){color:var(--hoya-accent-strong)}
body:has(#app) :where(.text-primary-100,.text-primary-200,.text-primary-300,.text-primary-400,.text-teal-100,.text-teal-200,.text-blue-100,.text-blue-200,.text-blue-300,.text-blue-400,.text-indigo-100,.text-indigo-200,.text-indigo-400,.text-purple-100,.text-purple-200,.text-purple-300,.text-purple-400,.text-violet-100,.text-violet-200,.text-violet-300,.text-sky-100,.text-sky-200,.text-sky-300,.text-sky-400,.text-cyan-100,.text-cyan-200,.text-cyan-300,.text-cyan-400){color:var(--hoya-accent-muted)}
body:has(#app) :where(.text-green-400,.text-green-500,.text-green-600,.text-green-700,.text-green-800,.text-emerald-400,.text-emerald-500,.text-emerald-600,.text-emerald-700,.text-emerald-800,.text-emerald-900,.dark\:text-green-200,.dark\:text-green-300,.dark\:text-green-400,.dark\:text-emerald-200,.dark\:text-emerald-300,.dark\:text-emerald-400){color:var(--hoya-success)}
body:has(#app) :where(.text-amber-400,.text-amber-500,.text-amber-600,.text-amber-700,.text-amber-800,.text-amber-900,.text-orange-400,.text-orange-500,.text-orange-600,.text-orange-700,.text-orange-800,.text-yellow-400,.text-yellow-500,.text-yellow-600,.text-yellow-700,.text-yellow-800,.dark\:text-amber-200,.dark\:text-amber-300,.dark\:text-amber-400,.dark\:text-orange-200,.dark\:text-orange-300,.dark\:text-orange-400,.dark\:text-yellow-200,.dark\:text-yellow-300,.dark\:text-yellow-400){color:var(--hoya-warning)}
body:has(#app) :where(.text-red-400,.text-red-500,.text-red-600,.text-red-700,.text-red-800,.text-rose-400,.text-rose-500,.text-rose-600,.text-rose-700,.text-rose-800,.text-rose-900,.dark\:text-red-200,.dark\:text-red-300,.dark\:text-red-400,.dark\:text-rose-100,.dark\:text-rose-200,.dark\:text-rose-300,.dark\:text-rose-400){color:var(--hoya-danger)}

body:has(#app) :where(.bg-white,.bg-zinc-50,.bg-slate-50,.dark\:bg-dark-800,.dark\:bg-dark-900,.dark\:bg-slate-800,.dark\:bg-slate-900,.dark\:bg-zinc-800,.dark\:bg-gray-800,.dark\:bg-gray-900){background-color:var(--hoya-panel)}
body:has(#app) :where(.bg-gray-50\/30,.bg-gray-50\/40,.bg-gray-50\/50,.bg-gray-50\/60,.bg-gray-50\/70,.bg-gray-50\/80,.bg-white\/40,.bg-white\/50,.bg-white\/60,.bg-white\/70,.bg-white\/80,.bg-white\/85,.bg-white\/90,.bg-white\/95,.dark\:bg-dark-800\/30,.dark\:bg-dark-800\/40,.dark\:bg-dark-800\/50,.dark\:bg-dark-800\/60,.dark\:bg-dark-800\/70,.dark\:bg-dark-800\/80,.dark\:bg-dark-900\/30,.dark\:bg-dark-900\/40,.dark\:bg-dark-900\/50,.dark\:bg-dark-900\/60,.dark\:bg-dark-900\/70,.dark\:bg-dark-900\/90,.dark\:bg-dark-900\/95){background-color:var(--hoya-glass)}
body:has(#app) .bg-gray-50{background-color:var(--hoya-soft)}
body:has(#app) :where(.bg-gray-100,.bg-zinc-100,.bg-neutral-100,.bg-slate-100,.dark\:bg-dark-700,.dark\:bg-dark-800\/95,.dark\:bg-gray-700,.dark\:bg-slate-700,.dark\:bg-zinc-700){background-color:var(--hoya-soft-strong)}
body:has(#app) :where(.bg-gray-200,.bg-gray-200\/60,.bg-gray-200\/70,.bg-gray-200\/80,.bg-gray-300,.bg-slate-300,.dark\:bg-dark-600,.dark\:bg-dark-600\/70,.dark\:bg-gray-600){background-color:var(--hoya-soft-strong)}
body:has(#app) :where(.bg-primary-50,.bg-primary-100,.bg-teal-50,.bg-teal-100,.bg-blue-50,.bg-blue-100,.bg-indigo-50,.bg-indigo-100,.bg-purple-50,.bg-purple-100,.bg-violet-50,.bg-violet-100,.bg-sky-50,.bg-sky-100,.bg-cyan-50,.bg-cyan-100,.dark\:bg-primary-900\/10,.dark\:bg-primary-900\/20,.dark\:bg-primary-900\/30,.dark\:bg-primary-900\/40,.dark\:bg-blue-900\/10,.dark\:bg-blue-900\/20,.dark\:bg-blue-900\/30,.dark\:bg-blue-900\/40,.dark\:bg-indigo-900\/10,.dark\:bg-indigo-900\/20,.dark\:bg-indigo-900\/30,.dark\:bg-indigo-900\/40,.dark\:bg-purple-900\/10,.dark\:bg-purple-900\/20,.dark\:bg-purple-900\/30,.dark\:bg-purple-900\/40,.dark\:bg-sky-900\/10,.dark\:bg-sky-900\/20,.dark\:bg-sky-900\/30,.dark\:bg-sky-900\/40){background-color:var(--hoya-soft)}
body:has(#app) :where(.bg-primary-200\/50,.bg-primary-300\/10,.bg-primary-400\/10,.bg-primary-400\/20,.bg-primary-500\/10,.bg-primary-500\/15,.bg-blue-500\/10,.bg-indigo-500\/10,.bg-purple-500\/10,.bg-violet-500\/10,.bg-sky-500\/10,.bg-cyan-500\/10,.dark\:bg-primary-400\/10,.dark\:bg-primary-500\/10,.dark\:bg-primary-500\/15,.dark\:bg-blue-500\/10,.dark\:bg-blue-500\/15,.dark\:bg-blue-500\/20,.dark\:bg-indigo-500\/10,.dark\:bg-indigo-500\/15,.dark\:bg-purple-500\/10,.dark\:bg-purple-500\/15,.dark\:bg-violet-500\/10,.dark\:bg-sky-500\/10,.dark\:bg-sky-500\/15,.dark\:bg-cyan-500\/10){background-color:color-mix(in srgb,var(--hoya-accent) 11%,transparent)}
body:has(#app) :where(.bg-primary-400,.bg-primary-500,.bg-primary-600,.bg-teal-400,.bg-teal-500,.bg-blue-400,.bg-blue-500,.bg-blue-600,.bg-indigo-500,.bg-purple-400,.bg-purple-500,.bg-violet-500,.bg-sky-500,.bg-sky-600,.bg-cyan-500,.dark\:bg-primary-300,.dark\:bg-primary-600,.dark\:bg-blue-400,.dark\:bg-blue-500,.dark\:bg-cyan-600){background-color:var(--hoya-solid);color:var(--hoya-on-solid)}
body:has(#app) :where(.bg-green-50,.bg-green-100,.bg-emerald-50,.bg-emerald-100,.dark\:bg-green-900\/10,.dark\:bg-green-900\/20,.dark\:bg-green-900\/30,.dark\:bg-emerald-900\/10,.dark\:bg-emerald-900\/20,.dark\:bg-emerald-900\/30,.dark\:bg-emerald-900\/40){background-color:color-mix(in srgb,var(--hoya-success) 12%,var(--hoya-panel))}
body:has(#app) :where(.bg-amber-50,.bg-amber-100,.bg-orange-50,.bg-orange-100,.bg-yellow-50,.bg-yellow-100,.dark\:bg-amber-900\/10,.dark\:bg-amber-900\/20,.dark\:bg-amber-900\/30,.dark\:bg-amber-900\/40,.dark\:bg-orange-900\/20,.dark\:bg-orange-900\/30,.dark\:bg-orange-900\/40,.dark\:bg-yellow-900\/10,.dark\:bg-yellow-900\/20,.dark\:bg-yellow-900\/30,.dark\:bg-yellow-900\/40){background-color:color-mix(in srgb,var(--hoya-warning) 13%,var(--hoya-panel))}
body:has(#app) :where(.bg-red-50,.bg-red-100,.bg-rose-50,.bg-rose-100,.dark\:bg-red-900\/10,.dark\:bg-red-900\/20,.dark\:bg-red-900\/30,.dark\:bg-red-900\/40,.dark\:bg-rose-900\/10,.dark\:bg-rose-900\/20,.dark\:bg-rose-900\/30,.dark\:bg-rose-900\/40){background-color:color-mix(in srgb,var(--hoya-danger) 12%,var(--hoya-panel))}
body:has(#app) :where(.bg-black\/50,.bg-black\/60,.bg-black\/70,.bg-black\/80){background-color:var(--hoya-overlay)}

body:has(#app) :where(.border-gray-50,.border-gray-100,.border-gray-200,.border-gray-300,.border-gray-400,.border-slate-200,.border-zinc-300\/70,.border-dark-600,.border-dark-700\/50,.dark\:border-dark-400,.dark\:border-dark-500,.dark\:border-dark-600,.dark\:border-dark-700,.dark\:border-dark-800,.dark\:border-gray-500,.dark\:border-gray-600,.dark\:border-gray-800,.dark\:border-slate-700,.dark\:border-zinc-400,.dark\:border-zinc-500\/20,.dark\:border-zinc-500\/30,.dark\:border-zinc-500\/35){border-color:var(--hoya-border)}
body:has(#app) :where(.border-gray-100\/50,.border-gray-100\/70,.border-gray-100\/80,.border-gray-200\/50,.border-gray-200\/60,.border-gray-200\/80,.border-dark-700\/50,.dark\:border-dark-600\/60,.dark\:border-dark-700\/50,.dark\:border-dark-700\/60,.dark\:border-dark-700\/70,.dark\:border-dark-700\/80,.dark\:border-dark-800\/50,.border-white\/10,.border-white\/15,.dark\:ring-white\/10){border-color:var(--hoya-border);--tw-ring-color:var(--hoya-border)}
body:has(#app) :where(.border-primary-100,.border-primary-200,.border-primary-300,.border-primary-400,.border-primary-500,.border-primary-600,.border-blue-100,.border-blue-200,.border-blue-300,.border-blue-500,.border-indigo-500,.border-purple-200,.border-purple-500,.border-violet-200,.border-sky-100,.border-sky-200,.border-sky-300,.border-sky-500,.border-teal-500,.dark\:border-primary-400,.dark\:border-primary-500,.dark\:border-primary-600,.dark\:border-primary-700,.dark\:border-blue-500\/20,.dark\:border-blue-500\/30,.dark\:border-indigo-500\/20,.dark\:border-indigo-500\/30,.dark\:border-purple-500\/20,.dark\:border-purple-500\/30,.dark\:border-sky-500,.dark\:border-teal-400){border-color:var(--hoya-border-strong)}
body:has(#app) :where(.border-green-200,.border-green-300,.border-green-500,.border-emerald-200,.border-emerald-300,.border-emerald-500){border-color:color-mix(in srgb,var(--hoya-success) 38%,transparent)}
body:has(#app) :where(.border-amber-100,.border-amber-200,.border-amber-300,.border-amber-400,.border-amber-500,.border-orange-500,.border-yellow-200,.border-yellow-300,.border-yellow-500){border-color:color-mix(in srgb,var(--hoya-warning) 38%,transparent)}
body:has(#app) :where(.border-red-100,.border-red-200,.border-red-400,.border-red-500,.border-rose-300,.border-rose-500){border-color:color-mix(in srgb,var(--hoya-danger) 40%,transparent)}

body:has(#app) :where(.from-gray-50,.from-gray-100,.from-zinc-50,.from-primary-50,.from-blue-50,.from-indigo-50,.from-purple-50,.from-amber-50,.from-orange-50,.from-emerald-50,.from-teal-50){--tw-gradient-from:var(--hoya-soft) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
body:has(#app) :where(.via-primary-50\/30,.via-indigo-50\/50,.via-orange-50\/50){--tw-gradient-stops:var(--tw-gradient-from),color-mix(in srgb,var(--apricot) 50%,transparent) var(--tw-gradient-via-position),var(--tw-gradient-to)}
body:has(#app) :where(.to-gray-100,.to-gray-200,.to-primary-100,.to-teal-100,.to-indigo-100,.to-purple-100,.to-amber-100){--tw-gradient-to:var(--hoya-soft-strong) var(--tw-gradient-to-position)}
body:has(#app) :where(.from-primary-500,.from-primary-600,.from-blue-400,.from-blue-500,.from-blue-600,.from-indigo-400,.from-indigo-500,.from-purple-400,.from-purple-500,.from-violet-400,.from-violet-500,.from-teal-400,.from-teal-500){--tw-gradient-from:var(--mocha) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
body:has(#app) :where(.to-primary-500,.to-primary-600,.to-blue-500,.to-blue-600,.to-indigo-500,.to-indigo-600,.to-purple-500,.to-purple-600,.to-violet-500,.to-violet-600,.to-teal-500,.to-teal-600){--tw-gradient-to:var(--tea) var(--tw-gradient-to-position)}
body:has(#app) .text-gradient{background-image:linear-gradient(115deg,var(--mocha),var(--khaki) 62%,var(--cocoa));-webkit-background-clip:text;background-clip:text;color:transparent}

body:has(#app) :where(.shadow-sm,.shadow,.shadow-md,.shadow-lg,.shadow-xl,.shadow-2xl,.shadow-card,.shadow-glass){--tw-shadow:var(--hoya-shadow)}
body:has(#app) :where(.shadow-glow){--tw-shadow:0 8px 24px rgb(122 106 94/.2)}

body:has(#app) .sidebar{background:var(--hoya-sidebar);border-right-color:var(--hoya-border);box-shadow:none}
body:has(#app) .sidebar-header{position:relative;background:transparent;border-bottom-color:var(--hoya-border)}
body:has(#app) .sidebar-logo{background:transparent;border:0;border-radius:0;box-shadow:none}
body:has(#app) .sidebar-brand-title{font-family:Arial,"Microsoft YaHei",sans-serif;font-size:23px;font-weight:600;letter-spacing:.1em;color:var(--hoya-text)}
body:has(#app) .sidebar-section-title{color:var(--hoya-faint);letter-spacing:.14em}
body:has(#app) .sidebar-section-title::after{background:var(--hoya-border-strong)}
body:has(#app) .sidebar-link{border:1px solid transparent;border-radius:4px;color:var(--hoya-muted);font-size:13px;transition:background-color .2s,color .2s}
body:has(#app) .sidebar-link:hover{background:var(--hoya-soft);color:var(--hoya-text);border-color:transparent}
body:has(#app) .sidebar-link-active,body:has(#app) .sidebar-link-active:hover{background:var(--hoya-selected);color:var(--tea);border-color:transparent;box-shadow:none}
html.dark body:has(#app) .sidebar-link-active,html.dark body:has(#app) .sidebar-link-active:hover{background:var(--hoya-selected);color:var(--cloud);border-color:transparent;box-shadow:none}
body:has(#app) .sidebar-link-collapsed.sidebar-link-active{box-shadow:inset 0 0 0 1px var(--hoya-border-strong),0 5px 14px rgb(92 79 70/.08)}
body:has(#app) .sidebar-nav :where(.border-l,.mb-1.ml-4){border-left-color:var(--hoya-border-strong)}

body:has(#app) #app header.glass{background:var(--hoya-bg);border-bottom-color:var(--hoya-border);box-shadow:none;backdrop-filter:none}
body:has(#app) #app header.glass h1{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1.3;letter-spacing:0;color:var(--hoya-text)}
body:has(#app) #app header.glass p{color:var(--hoya-muted)}
body:has(#app) .page-header{position:relative;padding-bottom:.35rem}
body:has(#app) .page-title{font-family:var(--serif);font-size:clamp(1.65rem,2.4vw,2.15rem);font-weight:500;line-height:1.28;letter-spacing:-.035em;color:var(--hoya-text)}
body:has(#app) .page-description{margin-top:.45rem;color:var(--hoya-muted);letter-spacing:.025em}
body:has(#app) :where(.card,.stat-card,.table-scroll-container){background:var(--hoya-panel);border-color:var(--hoya-border);border-radius:5px;box-shadow:none}
body:has(#app) :where(.card,.stat-card){position:relative;transition:translate .35s var(--hoya-ease),border-color .35s,box-shadow .35s}
body:has(#app) .card-header{background:var(--hoya-soft);border-bottom-color:var(--hoya-border)}
body:has(#app) .card-header :where(h2,h3,h4),body:has(#app) .card > div > :where(h2,h3).font-semibold{font-family:var(--serif);font-weight:500;letter-spacing:-.015em}
body:has(#app) .stat-value{font-family:var(--serif);font-size:2.15rem;font-weight:400;line-height:1.2;letter-spacing:-.035em;color:var(--hoya-text)}
body:has(#app) .stat-label{color:var(--hoya-muted);letter-spacing:.035em}
body:has(#app) .stat-icon{border:1px solid var(--hoya-border);border-radius:9px;background:var(--hoya-soft);color:var(--hoya-accent)}
body:has(#app) .card .text-xl.font-bold{font-family:var(--serif);font-size:1.65rem;font-weight:500;line-height:1.25;letter-spacing:-.025em}
body:has(#app) .card canvas{filter:none}
body:has(#app) :where(.card,.stat-card) :where(.bg-blue-100,.bg-purple-100,.bg-indigo-100,.bg-violet-100,.bg-sky-100,.bg-primary-100){border-radius:8px}

body:has(#app) .btn{border:1px solid transparent;border-radius:4px;font-weight:500;letter-spacing:.015em;transition:translate .25s var(--hoya-ease),background-color .25s,border-color .25s,box-shadow .25s,color .25s}
body:has(#app) .btn-primary{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(115deg,var(--gray),var(--tea));border-color:transparent;color:var(--cloud);box-shadow:0 6px 15px rgb(31 31 31/.08)}
html.dark body:has(#app) .btn-primary{background:var(--hoya-solid);border-color:var(--hoya-solid);color:var(--hoya-on-solid);box-shadow:0 4px 12px rgb(0 0 0/.12)}
body:has(#app) .btn-primary:hover{background:linear-gradient(115deg,var(--mocha),var(--gray));border-color:var(--hoya-border-strong);box-shadow:0 11px 25px rgb(58 48 42/.18);color:var(--cloud)}
html.dark body:has(#app) .btn-primary:hover{background:var(--hoya-solid-hover);color:var(--hoya-on-solid)}
body:has(#app) .btn-secondary{background:transparent;border-color:var(--hoya-border);color:var(--hoya-text-secondary);box-shadow:none}
body:has(#app) .btn-secondary:hover{background:var(--hoya-soft-strong);border-color:var(--khaki);color:var(--hoya-text)}
body:has(#app) .btn-ghost{color:var(--hoya-muted)}
body:has(#app) .btn-ghost:hover{background:var(--hoya-soft-strong);color:var(--hoya-text)}
body:has(#app) .btn-danger{background:var(--hoya-danger);color:var(--hoya-on-status);box-shadow:0 4px 12px color-mix(in srgb,var(--hoya-danger) 15%,transparent)}
body:has(#app) .btn-success{background:var(--hoya-success);color:var(--hoya-on-status)}
body:has(#app) .btn-warning{background:var(--hoya-warning);color:var(--hoya-on-status)}
body:has(#app) :where(.btn-stripe,.btn-airwallex){background:linear-gradient(115deg,var(--gray),var(--tea));color:var(--cloud)}
body:has(#app) :where(button,a):where(.bg-primary-500,.bg-primary-600,.bg-blue-500,.bg-blue-600,.bg-indigo-500,.bg-purple-500,.bg-violet-500){background-image:linear-gradient(115deg,var(--gray),var(--tea));color:var(--cloud);border-color:var(--hoya-border)}
body:has(#app) .btn::after{content:"";position:absolute;inset:-2px;pointer-events:none;background:linear-gradient(105deg,transparent 32%,rgb(250 250 246/.18) 48%,transparent 64%);transform:translateX(-135%) skewX(-18deg);z-index:0}
body:has(#app) .btn:not(.btn-primary)::after{display:none}
body:has(#app) .btn-primary:not(:disabled):hover::after{animation:hoya-sheen .75s ease-out}
body:has(#app) :where(.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-warning):disabled{transform:none;translate:none;opacity:.48;box-shadow:none}
body:has(#app) #app button.group{transition:background-color .25s,border-color .25s,box-shadow .25s}
body:has(#app) #app button.group:hover{background-color:var(--hoya-soft-strong);box-shadow:0 7px 18px rgb(92 79 70/.055)}

body:has(#app) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]),select,textarea,.input,.select-trigger){background-color:var(--hoya-panel);border-color:var(--hoya-border-strong);color:var(--hoya-text);caret-color:var(--mocha);transition:border-color .2s,box-shadow .2s,background-color .2s}
body:has(#app) :where(.input,.select-trigger){border-radius:4px;box-shadow:none}
body:has(#app) :where(input,textarea)::placeholder{color:var(--hoya-faint);opacity:1}
body:has(#app) :where(input,select,textarea,.input,.select-trigger):focus{border-color:var(--hoya-focus);outline:2px solid color-mix(in srgb,var(--hoya-focus) 24%,transparent);outline-offset:2px;--tw-ring-color:color-mix(in srgb,var(--hoya-focus) 28%,transparent);--tw-ring-offset-color:var(--hoya-panel)}
body:has(#app) :where(.input,.select-trigger):hover{border-color:var(--khaki)}
body:has(#app) :where(input,select,textarea,.input,.select-trigger):disabled{background-color:var(--hoya-soft);color:var(--hoya-faint)}
body:has(#app) :where(.input-label,label){color:var(--hoya-text-secondary)}
body:has(#app) :where(.input-hint){color:var(--hoya-muted)}
body:has(#app) :where(.input-error,.select-trigger-error){border-color:var(--hoya-danger)}
body:has(#app) :where(input[type="checkbox"],input[type="radio"]){accent-color:var(--hoya-focus)}
body:has(#app) .select-icon,body:has(#app) .select-clear{color:var(--hoya-faint)}
body:has(#app) .select-trigger-open{border-color:var(--hoya-focus);--tw-ring-color:color-mix(in srgb,var(--hoya-focus) 28%,transparent)}
body:has(#app) .select-dropdown-portal{background:var(--hoya-panel);border-color:var(--hoya-border-strong);border-radius:10px;box-shadow:var(--hoya-shadow-lg);color:var(--hoya-text)}
body:has(#app) .select-dropdown-portal .select-search{background:var(--hoya-soft);border-bottom-color:var(--hoya-border)}
body:has(#app) .select-dropdown-portal .select-search-input{background:transparent;color:var(--hoya-text)}
body:has(#app) .select-dropdown-portal .select-option{color:var(--hoya-text-secondary)}
body:has(#app) .select-dropdown-portal :where(.select-option:hover,.select-option-focused){background:var(--hoya-soft-strong);color:var(--hoya-text)}
body:has(#app) .select-dropdown-portal .select-option-selected{background:var(--sand);color:var(--tea)}
html.dark body:has(#app) .select-dropdown-portal .select-option-selected{background:var(--mocha);color:var(--cloud)}
body:has(#app) .select-dropdown-portal :where(.select-option-group,.select-option-group:hover){background:var(--hoya-soft);color:var(--hoya-muted)}
body:has(#app) .select-dropdown-portal .select-empty{color:var(--hoya-muted)}

body:has(#app) :where(.tabs){background:var(--hoya-soft-strong);border:1px solid var(--hoya-border);border-radius:9px}
body:has(#app) .tab{border-radius:6px;color:var(--hoya-muted)}
body:has(#app) .tab:hover{background:color-mix(in srgb,var(--cloud) 45%,transparent);color:var(--hoya-text)}
body:has(#app) .tab-active{background:var(--hoya-panel);color:var(--hoya-text);box-shadow:0 2px 7px rgb(92 79 70/.08)}
body:has(#app) .badge{border:1px solid var(--hoya-border);letter-spacing:.02em}
body:has(#app) :where(.badge-primary,.badge-gray,.badge-purple){background:var(--hoya-soft-strong);color:var(--hoya-text-secondary)}
body:has(#app) .badge-success{background:color-mix(in srgb,var(--hoya-success) 13%,var(--hoya-panel));color:var(--hoya-success);border-color:color-mix(in srgb,var(--hoya-success) 24%,transparent)}
body:has(#app) .badge-warning{background:color-mix(in srgb,var(--hoya-warning) 14%,var(--hoya-panel));color:var(--hoya-warning);border-color:color-mix(in srgb,var(--hoya-warning) 25%,transparent)}
body:has(#app) .badge-danger{background:color-mix(in srgb,var(--hoya-danger) 12%,var(--hoya-panel));color:var(--hoya-danger);border-color:color-mix(in srgb,var(--hoya-danger) 25%,transparent)}
body:has(#app) .code,body:has(#app) code:not(pre code){background:var(--hoya-soft-strong);color:var(--hoya-text-secondary);border:1px solid var(--hoya-border)}
body:has(#app) .progress{background:var(--sand)}
body:has(#app) :where(.progress-bar,.progress > div){background:var(--mocha)}
body:has(#app) .switch{background:var(--wheat)}
body:has(#app) .after\:bg-white::after{background:var(--cloud)}

body:has(#app) :where(.table-container,.table-wrapper){background:var(--hoya-panel);border-color:var(--hoya-border);border-radius:5px}
body:has(#app) .table-page-layout.mobile-mode .table-scroll-container{background:transparent;border-style:none;box-shadow:none}
body:has(#app) :where(.table-scroll-container thead,.table-wrapper thead,.table th,.table-header,.sticky-header-cell){background:var(--hoya-soft-strong);color:var(--hoya-muted);border-color:var(--hoya-border)}
body:has(#app) :where(.table th,.table-scroll-container th){font-size:.75rem;font-weight:600;letter-spacing:.055em}
body:has(#app) :where(.table td,.table-scroll-container td){color:var(--hoya-text-secondary);border-color:var(--hoya-border)}
body:has(#app) #app table :where(th,td){border-color:var(--hoya-border)}
body:has(#app) #app table th{color:var(--hoya-muted)}
body:has(#app) #app table td{color:var(--hoya-text-secondary)}
body:has(#app) :where(.table tbody tr,.table-wrapper tbody tr){transition:background-color .2s}
body:has(#app) :where(.table tbody tr:hover,.table-wrapper tbody tr:hover){background:var(--hoya-row-hover)}
body:has(#app) tbody .sticky-col{background:var(--hoya-panel)}
body:has(#app) tbody tr:hover .sticky-col{background:var(--hoya-row-hover)}
body:has(#app) :where(.table-wrapper .table-header,.sticky-header-cell){background:var(--apricot)}
html.dark body:has(#app) :where(.table-wrapper .table-header,.sticky-header-cell){background:var(--hoya-soft-strong)}
body:has(#app) .table-wrapper thead.sticky{box-shadow:0 1px 0 var(--hoya-border-strong)}
body:has(#app) :where(.is-scrollable .sticky-col-left,.is-scrollable .sticky-col-left-second)::after{background:linear-gradient(to right,rgb(92 79 70/.11),transparent)}
body:has(#app) .is-scrollable .sticky-col-right::before{background:linear-gradient(to left,rgb(92 79 70/.11),transparent)}
body:has(#app) div:has(> nav[aria-label="Pagination"]){background:var(--hoya-panel);border-top-color:var(--hoya-border)}
body:has(#app) nav[aria-label="Pagination"]{border:1px solid var(--hoya-border-strong);border-radius:8px;overflow:hidden;box-shadow:0 2px 5px rgb(92 79 70/.04)}
body:has(#app) nav[aria-label="Pagination"] button{background:var(--hoya-panel);border-color:var(--hoya-border);color:var(--hoya-muted)}
body:has(#app) nav[aria-label="Pagination"] button:hover{background:var(--hoya-soft-strong);color:var(--hoya-text)}
body:has(#app) nav[aria-label="Pagination"] button[aria-current="page"]{background:var(--hoya-solid);border-color:var(--hoya-solid);color:var(--hoya-on-solid)}
body:has(#app) .page-size-select .select-trigger{background:var(--hoya-panel)}

/* Scoped Vue date controls are loaded after the theme, including their portal. */
body:has(#app) :where(.date-picker-trigger,.date-picker-input){background:var(--hoya-panel);border-color:var(--hoya-border-strong);color:var(--hoya-text-secondary);box-shadow:none}
body:has(#app) :where(.date-picker-trigger:hover,.date-picker-input:hover){border-color:var(--khaki)}
body:has(#app) :where(.date-picker-trigger-open,.date-picker-input:focus){border-color:var(--hoya-focus);--tw-ring-color:color-mix(in srgb,var(--hoya-focus) 24%,transparent)}
body:has(#app) :where(.date-picker-value,.date-picker-label){color:var(--hoya-text-secondary)}
body:has(#app) :where(.date-picker-icon,.date-picker-chevron,.date-picker-separator){color:var(--hoya-muted)}
body:has(#app) .date-picker-dropdown{background:var(--hoya-panel);color:var(--hoya-text);border-color:var(--hoya-border-strong);box-shadow:var(--hoya-shadow-lg)}
body:has(#app) .date-picker-preset{background:transparent;color:var(--hoya-text-secondary)}
body:has(#app) .date-picker-preset:hover{background:var(--hoya-soft);color:var(--hoya-text)}
body:has(#app) .date-picker-preset-active{background:var(--hoya-selected);color:var(--hoya-text)}
body:has(#app) :where(.date-picker-divider,.date-picker-actions){border-color:var(--hoya-border)}
body:has(#app) .date-picker-divider{background:var(--hoya-border)}
body:has(#app) .date-picker-apply{background:var(--hoya-solid);border-color:var(--hoya-solid);color:var(--hoya-on-solid)}
body:has(#app) .date-picker-apply:hover{background:var(--hoya-solid-hover)}

/* Complete the neutral palette for utility states outside shared components. */
body:has(#app) :where(.bg-dark-950,.bg-slate-950,.dark\:bg-dark-950){background-color:var(--hoya-bg)}
body:has(#app) :where(.bg-primary-700,.bg-blue-700,.bg-indigo-600,.bg-indigo-700,.bg-purple-600,.bg-purple-700,.bg-violet-600,.bg-teal-600,.bg-cyan-600){background-color:var(--hoya-solid);color:var(--hoya-on-solid)}
body:has(#app) :where(.hover\:bg-primary-50,.hover\:bg-primary-100,.hover\:bg-blue-50,.hover\:bg-blue-100,.hover\:bg-indigo-50,.hover\:bg-purple-50,.hover\:bg-gray-50,.hover\:bg-gray-100):hover{background-color:var(--hoya-row-hover)}
body:has(#app) :where(.hover\:bg-primary-600,.hover\:bg-primary-700,.hover\:bg-blue-600,.hover\:bg-blue-700,.hover\:bg-indigo-600,.hover\:bg-purple-600):hover{background-color:var(--hoya-solid-hover);color:var(--hoya-on-solid)}
body:has(#app) :where(.hover\:text-primary-600,.hover\:text-primary-700,.hover\:text-blue-600,.hover\:text-blue-700,.hover\:text-gray-900):hover{color:var(--hoya-accent-strong)}
body:has(#app) :where(.bg-amber-400,.bg-amber-500,.bg-yellow-400,.bg-orange-500){background-color:var(--hoya-warning)}
body:has(#app) :where(.bg-green-400,.bg-green-500,.bg-emerald-400,.bg-emerald-500){background-color:var(--hoya-success)}
body:has(#app) :where(.bg-red-400,.bg-red-500,.bg-rose-400,.bg-rose-500){background-color:var(--hoya-danger)}
body:has(#app) :where(.ring-primary-500,.ring-blue-500,.focus\:ring-primary-500,.focus\:ring-blue-500){--tw-ring-color:color-mix(in srgb,var(--hoya-focus) 28%,transparent)}
body:has(#app) :where(.focus\:border-primary-500,.focus\:border-blue-500):focus{border-color:var(--hoya-focus)}
body:has(#app) .peer:checked~:where(.peer-checked\:border-primary-500,.dark\:peer-checked\:border-primary-500,.peer-checked\:dark\:border-primary-500){border-color:var(--hoya-focus)}
body:has(#app) .peer:checked~.peer-checked\:ring-primary-500{--tw-ring-color:var(--hoya-focus)}
body:has(#app) .peer:checked~:where(.peer-checked\:bg-primary-50\/60,.peer-checked\:bg-primary-500\/10){background-color:var(--hoya-soft-strong)}
body:has(#app) .peer:checked~:where(.peer-checked\:bg-primary-500,.peer-checked\:bg-primary-600){background-color:var(--hoya-solid)}
body:has(#app) :where(.divide-gray-100,.divide-gray-200,.dark\:divide-dark-700)>:not([hidden])~:not([hidden]){border-color:var(--hoya-border)}
html.dark body:has(#app) :where(.dark\:hover\:bg-dark-700,.dark\:hover\:bg-dark-800,.dark\:hover\:bg-gray-700,.dark\:hover\:bg-primary-900\/30,.dark\:hover\:bg-primary-900\/50):hover{background-color:var(--hoya-row-hover)}
body:has(#app) .sidebar > .border-t{background:var(--hoya-sidebar);border-color:var(--hoya-border)}
body:has(#app) .table-page-layout :where(.table-header,.table-footer){background:var(--hoya-panel);border-color:var(--hoya-border)}

body:has(#app) :where(.dropdown,.absolute.z-50.rounded-xl.bg-white,.absolute.right-0.rounded-lg.bg-white){background:var(--hoya-panel);border:1px solid var(--hoya-border-strong);border-radius:10px;box-shadow:var(--hoya-shadow-lg);color:var(--hoya-text)}
body:has(#app) .dropdown-item{color:var(--hoya-text-secondary);border-radius:6px}
body:has(#app) .dropdown-item:hover{background:var(--hoya-soft-strong);color:var(--hoya-text)}
body:has(#app) .dropdown > :where(.border-b,.border-t){border-color:var(--hoya-border)}
body:has(#app) .modal-overlay{background:var(--hoya-overlay);backdrop-filter:blur(8px)}
body:has(#app) .modal-content{background:var(--hoya-panel);border:1px solid var(--hoya-border-strong);border-radius:6px;box-shadow:var(--hoya-shadow-lg);color:var(--hoya-text)}
body:has(#app) :where(.modal-header,.modal-footer){background:var(--hoya-soft);border-color:var(--hoya-border)}
body:has(#app) .modal-title{font-family:var(--serif);font-size:1.3rem;font-weight:500;color:var(--hoya-text)}
body:has(#app) :where(.fixed.inset-0 .rounded-xl.bg-white,.fixed.inset-0 .rounded-3xl.bg-white){background:var(--hoya-panel);border:1px solid var(--hoya-border-strong);box-shadow:var(--hoya-shadow-lg);color:var(--hoya-text)}
body:has(#app) dialog[open]{background-color:var(--hoya-panel);color:var(--hoya-text);border-color:var(--hoya-border-strong);box-shadow:var(--hoya-shadow-lg)}
body:has(#app) dialog::backdrop{background:var(--hoya-overlay);backdrop-filter:blur(8px)}
body:has(#app) .toast{background:var(--hoya-glass);color:var(--hoya-text);border:1px solid var(--hoya-border-strong);border-left:4px solid var(--mocha);border-radius:10px;box-shadow:var(--hoya-shadow-lg);backdrop-filter:blur(18px)}
body:has(#app) :where(.toast-success,.toast.success,.toast[data-type="success"]){border-left-color:var(--hoya-success)}
body:has(#app) :where(.toast-warning,.toast.warning,.toast[data-type="warning"]){border-left-color:var(--hoya-warning)}
body:has(#app) :where(.toast-error,.toast.error,.toast[data-type="error"]){border-left-color:var(--hoya-danger)}
body:has(#app) .toast-progress{background:var(--mocha)}

body:has(#app) .empty-state{border:1px dashed var(--hoya-border-strong);border-radius:12px;background:linear-gradient(145deg,var(--hoya-soft),var(--hoya-panel));color:var(--hoya-muted)}
body:has(#app) .empty-state > div:has(> .empty-state-icon){background:var(--hoya-soft-strong);border:1px solid var(--hoya-border);box-shadow:inset 0 1px 0 rgb(250 250 246/.5)}
body:has(#app) .empty-state-icon{color:var(--khaki)}
body:has(#app) .empty-state-title{font-family:var(--serif);font-size:1.25rem;font-weight:500;color:var(--hoya-text)}
body:has(#app) .empty-state-description{color:var(--hoya-muted);line-height:1.8}
body:has(#app) .spinner{color:var(--hoya-accent)}
body:has(#app) .skeleton{background:linear-gradient(100deg,var(--hoya-soft-strong) 20%,var(--sand) 42%,var(--hoya-soft-strong) 64%);background-size:220% 100%;animation:hoya-skeleton 2.2s ease-in-out infinite}

body:has(#app) .custom-page-layout{color:var(--hoya-text)}
body:has(#app) .toc-sidebar{background:var(--hoya-soft);border-right-color:var(--hoya-border)}
body:has(#app) .toc-header{border-bottom-color:var(--hoya-border)}
body:has(#app) .toc-title{font-family:var(--serif);color:var(--hoya-text)}
body:has(#app) :where(.toc-item,.toc-close-btn){color:var(--hoya-muted)}
body:has(#app) :where(.toc-item:hover,.toc-close-btn:hover){background:var(--hoya-soft-strong);color:var(--hoya-text)}
body:has(#app) .toc-item.toc-active{background:var(--sand);color:var(--tea)}
html.dark body:has(#app) .toc-item.toc-active{background:var(--mocha);color:var(--cloud)}
body:has(#app) .toc-toggle-btn{background:var(--hoya-glass);border-color:var(--hoya-border-strong);color:var(--hoya-text-secondary);box-shadow:var(--hoya-shadow)}
body:has(#app) .custom-embed-shell{background:var(--hoya-panel);border-color:var(--hoya-border)}
body:has(#app) .custom-open-fab{background:var(--hoya-glass);color:var(--hoya-text);border-color:var(--hoya-border-strong)}
body:has(#app) :where(.markdown-body,.markdown-page-content){color:var(--hoya-text-secondary)}
body:has(#app) :where(.markdown-body,.markdown-page-content) :where(h1,h2,h3,h4){font-family:var(--serif);font-weight:500;letter-spacing:-.02em;color:var(--hoya-text);border-color:var(--hoya-border)}
body:has(#app) :where(.markdown-body,.markdown-page-content) a{color:var(--hoya-accent);text-decoration-color:var(--wheat);text-underline-offset:3px}
body:has(#app) :where(.markdown-body,.markdown-page-content) a:hover{color:var(--hoya-accent-strong);text-decoration-color:var(--mocha)}
body:has(#app) :where(.markdown-body,.markdown-page-content) :where(p,li){color:var(--hoya-text-secondary)}
body:has(#app) :where(.markdown-body,.markdown-page-content) strong{color:var(--hoya-text)}
body:has(#app) :where(.markdown-body,.markdown-page-content) blockquote{background:var(--hoya-soft);border-left-color:var(--khaki);color:var(--hoya-muted)}
body:has(#app) :where(.markdown-body,.markdown-page-content) :where(th,td){background:var(--hoya-panel);border-color:var(--hoya-border);color:var(--hoya-text-secondary)}
body:has(#app) :where(.markdown-body,.markdown-page-content) th{background:var(--hoya-soft-strong)}
body:has(#app) :where(.markdown-body,.markdown-page-content) pre{background:var(--tea);border:1px solid var(--mocha);color:var(--apricot);box-shadow:var(--hoya-shadow)}
body:has(#app) :where(.markdown-body,.markdown-page-content) pre code{background:transparent;color:inherit;border:0}
body:has(#app) :where(.markdown-body,.markdown-page-content) hr{border-color:var(--hoya-border)}

body:has(#app) .driver-active-element{outline-color:color-mix(in srgb,var(--cocoa) 30%,transparent)!important;border-radius:7px!important}
body:has(#app) .driver-popover.theme-tour-popover{background:var(--hoya-panel)!important;border-color:var(--hoya-border-strong)!important;box-shadow:var(--hoya-shadow-lg)!important;color:var(--hoya-text)!important;border-radius:12px!important}
body:has(#app) .driver-popover-title-text{color:var(--hoya-text)!important;font-family:var(--serif)!important;font-weight:500!important}
body:has(#app) .theme-tour-popover .driver-popover-description{color:var(--hoya-text-secondary)!important}
body:has(#app) .theme-tour-popover .driver-popover-footer{background:var(--hoya-soft)!important;border-top-color:var(--hoya-border)!important}
body:has(#app) :where(.theme-tour-popover .driver-popover-progress-text,.shortcut-item){color:var(--hoya-muted)!important}
body:has(#app) .shortcut-item kbd{background:var(--hoya-panel)!important;border-color:var(--hoya-border-strong)!important;color:var(--hoya-text-secondary)!important;box-shadow:none!important}
body:has(#app) .footer-shortcuts{border-left-color:var(--hoya-border)!important}
body:has(#app) .theme-tour-popover .driver-popover-next-btn{background:var(--hoya-solid)!important;color:var(--hoya-on-solid)!important;border-radius:6px!important}
body:has(#app) .theme-tour-popover .driver-popover-next-btn:hover{background:var(--hoya-solid-hover)!important}
body:has(#app) .theme-tour-popover .driver-popover-prev-btn{background:var(--hoya-panel)!important;color:var(--hoya-text-secondary)!important;border-color:var(--hoya-border-strong)!important;border-radius:6px!important}
body:has(#app) .theme-tour-popover .driver-popover-prev-btn:hover{background:var(--hoya-soft-strong)!important;color:var(--hoya-text)!important}
body:has(#app) .theme-tour-popover .driver-popover-close-btn:hover{background:var(--hoya-soft-strong)!important;color:var(--hoya-text)!important}
body:has(#app) :where(.driver-popover-arrow-side-left.driver-popover-arrow){border-left-color:var(--hoya-panel)!important}
body:has(#app) :where(.driver-popover-arrow-side-right.driver-popover-arrow){border-right-color:var(--hoya-panel)!important}
body:has(#app) :where(.driver-popover-arrow-side-top.driver-popover-arrow){border-top-color:var(--hoya-panel)!important}
body:has(#app) :where(.driver-popover-arrow-side-bottom.driver-popover-arrow){border-bottom-color:var(--hoya-panel)!important}

body:has(#app) *:hover::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--linen) 55%,transparent)}
body:has(#app) *:hover::-webkit-scrollbar-thumb:hover{background:var(--linen)}
body:has(#app) .table-wrapper::-webkit-scrollbar-track{background:color-mix(in srgb,var(--sand) 28%,transparent)!important}
body:has(#app) .table-wrapper::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--linen) 62%,transparent)!important}
body:has(#app) .table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--linen)!important}
@supports (-moz-appearance:none){body:has(#app) *:hover,body:has(#app) *:focus-within{scrollbar-color:var(--linen) transparent}body:has(#app) .table-wrapper{scrollbar-color:var(--linen) color-mix(in srgb,var(--sand) 25%,transparent)!important}}

/* Editorial layout: the same paper, typography and page rhythm as HOYA home. */
html:has(#app .hoya-auth){
  color-scheme:light;
  --hoya-bg:var(--cloud);--hoya-panel:var(--cloud);--hoya-panel-strong:var(--cloud);
  --hoya-soft:#F6F3EE;--hoya-soft-strong:var(--apricot);--hoya-row-hover:#F5F1EA;
  --hoya-text:var(--tea);--hoya-text-secondary:var(--mocha);--hoya-muted:var(--cocoa);--hoya-faint:#847365;
  --hoya-accent:var(--mocha);--hoya-accent-strong:var(--tea);--hoya-accent-muted:var(--cocoa);
  --hoya-solid:var(--tea);--hoya-solid-hover:var(--gray);--hoya-on-solid:var(--cloud);
  --hoya-border:#E4DDD3;--hoya-border-strong:var(--sand);--hoya-focus:var(--cocoa);
  --hoya-glass:var(--cloud);--hoya-shadow:none;--hoya-shadow-lg:0 16px 48px rgb(31 31 31/.1);
  --hoya-success:#5F735C;--hoya-warning:#936C3E;--hoya-danger:#9B584F;--hoya-on-status:var(--cloud);
}
body:has(#app) #app .hoya-auth{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);grid-template-rows:88px 1fr 72px;
  align-items:center;justify-content:normal;column-gap:7%;min-height:100svh;padding:0 6vw;overflow:visible;background:var(--cloud);color:var(--tea);
}
body:has(#app) .hoya-auth > .absolute{display:none}
body:has(#app) .hoya-auth-header{grid-column:1/-1;grid-row:1;height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--hoya-border)}
body:has(#app) .hoya-wordmark{display:inline-flex;align-items:center;gap:11px;font:600 27px/1 Arial,sans-serif;letter-spacing:.1em;color:var(--tea)}
body:has(#app) .hoya-wordmark img{width:40px;height:40px;object-fit:contain}
body:has(#app) .hoya-home-link{display:flex;align-items:center;gap:30px;padding:13px 18px;border:1px solid var(--hoya-border);border-radius:4px;font-size:12px;color:var(--mocha);transition:background .2s}
body:has(#app) .hoya-home-link:hover{background:var(--apricot)}
body:has(#app) .hoya-auth-story{grid-column:1;grid-row:2;padding:38px 0;align-self:center;min-width:0}
body:has(#app) .hoya-eyebrow{display:flex;align-items:center;gap:12px;margin:0;font-size:10px;font-weight:400;letter-spacing:.14em;color:var(--hoya-muted)}
body:has(#app) .hoya-eyebrow>span{display:block;width:26px;height:1px;background:var(--khaki)}
body:has(#app) .hoya-auth-gallery-copy{padding-top:28px}
body:has(#app) .hoya-auth-story h1{margin:0;font:400 clamp(30px,2.9vw,42px)/1.5 var(--serif);letter-spacing:-.045em;color:var(--tea)}
body:has(#app) .hoya-auth-story h1 em{margin-left:.1em;font-weight:400;color:var(--cocoa)}
body:has(#app) .hoya-auth-gallery-copy>p{margin:12px 0 0;color:var(--cocoa);font-size:12px;line-height:1.9;letter-spacing:.025em}
body:has(#app) .hoya-editorial-link{display:inline-flex;align-items:center;gap:30px;padding:8px 0;border-bottom:1px solid var(--wheat);font-size:12px;color:var(--hoya-text-secondary)}
body:has(#app) .hoya-editorial-link:hover{border-bottom-color:var(--hoya-text);color:var(--hoya-text)}
body:has(#app) .hoya-auth-signature{display:flex;justify-content:space-between;gap:24px;max-width:440px;margin-top:66px;padding-top:18px;border-top:1px solid var(--hoya-border);font-size:9px;letter-spacing:.08em;color:var(--linen)}
body:has(#app) #app .hoya-auth-form{grid-column:2;grid-row:2;justify-self:center;align-self:center;width:100%;max-width:390px;margin:0;padding:44px 0;border:0}
body:has(#app) .hoya-auth-form > .mb-8.text-center,body:has(#app) .hoya-auth-form > .mt-8.text-center{display:none}
body:has(#app) #app .hoya-auth-form .card-glass{margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;color:var(--tea);opacity:1;translate:none}
body:has(#app) .hoya-form-eyebrow{margin:0 0 22px;font-size:9px;letter-spacing:.13em;color:var(--linen)}
body:has(#app) .hoya-auth-form .card-glass .text-center{text-align:left}
body:has(#app) #app .hoya-auth-form .card-glass h2{font:400 33px/1.4 var(--serif);letter-spacing:-.025em;color:var(--tea)}
body:has(#app) .hoya-auth-form .card-glass h2+p{margin-top:10px;font-size:12px;color:var(--cocoa);line-height:1.8}
body:has(#app) .hoya-auth-form form{margin-top:30px}
body:has(#app) .hoya-auth-form .input-label{margin-bottom:10px;font-size:12px;font-weight:400;letter-spacing:.035em;color:var(--mocha)}
body:has(#app) .hoya-auth-form .input{min-height:51px;border:1px solid var(--sand);border-radius:4px;background:#FFFEFB;color:var(--tea);box-shadow:none;font-size:13px}
body:has(#app) .hoya-auth-form .input:focus{border-color:var(--cocoa);outline:2px solid rgb(158 138 121/.12);outline-offset:1px}
body:has(#app) .hoya-auth-form .input::placeholder{color:var(--linen)}
body:has(#app) .hoya-auth-form .btn-primary{min-height:51px;margin-top:27px;border-radius:4px;background:linear-gradient(115deg,var(--gray),var(--tea));color:var(--cloud);font-size:13px;font-weight:400;box-shadow:0 6px 15px rgb(31 31 31/.08)}
body:has(#app) .hoya-auth-form .btn-primary:hover{background:var(--tea);color:var(--cloud);box-shadow:0 8px 20px rgb(31 31 31/.11)}
body:has(#app) .hoya-auth-form .btn-primary svg{width:17px;height:17px}
body:has(#app) .hoya-auth-form>.mt-6{text-align:left;font-size:12px;margin-top:24px}
body:has(#app) .hoya-auth-form>.mt-6 a{margin-left:5px;padding-bottom:3px;border-bottom:1px solid var(--wheat);color:var(--mocha)}
body:has(#app) .hoya-auth-footer{grid-column:1/-1;grid-row:3;height:72px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--hoya-border);color:var(--linen);font-size:10px;letter-spacing:.06em}
body.hoya-auth-page .hoya-motion-toggle,body.hoya-auth-page .hoya-cursor-halo,body.hoya-auth-page .hoya-scroll-progress{display:none}

body:has(#app) .hoya-workspace .sidebar-header{height:88px;padding:0 22px;gap:10px}
body:has(#app) .hoya-workspace .sidebar-header .sidebar-brand>.relative{display:none}
body:has(#app) .hoya-workspace .sidebar-header .sidebar-logo{width:32px;height:32px;min-width:32px;flex-basis:32px}
body:has(#app) .hoya-workspace .sidebar-brand-title{line-height:1.2}
body:has(#app) .hoya-workspace .sidebar-nav{padding-top:22px}
body:has(#app) .hoya-workspace header.glass>div{min-height:88px;padding-left:36px;padding-right:36px}
body:has(#app) .hoya-workspace header.glass p{font-size:10px;letter-spacing:.035em}
body:has(#app) .hoya-workspace main{padding:36px}
body:has(#app) .hoya-workspace-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid var(--hoya-border)}
body:has(#app) .hoya-workspace-intro h2{margin:16px 0 0;font:400 clamp(28px,2.65vw,40px)/1.5 var(--serif);letter-spacing:-.035em;color:var(--hoya-text)}
body:has(#app) .hoya-workspace-intro h2 em{color:var(--hoya-muted);font-weight:400}
body:has(#app) .hoya-workspace .card :where(.rounded-lg.bg-green-100,.rounded-lg.bg-primary-100,.rounded-lg.bg-amber-100,.rounded-lg.bg-rose-100){background:var(--hoya-soft);color:var(--hoya-muted);border-radius:4px}
body:has(#app) .hoya-workspace .card .text-xl.font-bold{font-size:30px;font-weight:400}
body:has(#app) .hoya-workspace .hoya-stat-strip{gap:0;padding:6px 0 24px;border-bottom:1px solid var(--hoya-border)}
body:has(#app) .hoya-workspace .hoya-stat{padding:12px 22px;background:transparent;border:0;border-left:1px solid var(--hoya-border);border-radius:0;box-shadow:none;translate:none}
body:has(#app) .hoya-workspace .hoya-stat:first-child{padding-left:0;border-left:0}
body:has(#app) .hoya-workspace .hoya-stat>div.flex{align-items:flex-start}
body:has(#app) .hoya-workspace .hoya-stat>div.flex>div:first-child{background:transparent;padding:3px 0;color:var(--hoya-muted)}
body:has(#app) .hoya-workspace .hoya-stat svg{width:18px;height:18px;color:var(--hoya-muted);stroke-width:1.4}
body:has(#app) .hoya-workspace .hoya-stat .text-xl.font-bold{color:var(--hoya-text);font-size:32px;margin:4px 0}
body:has(#app) .hoya-workspace .empty-state{border:0;border-radius:0;background:transparent}
body:has(#app) .hoya-workspace .empty-state>div:has(>.empty-state-icon){border-radius:50%;box-shadow:none}
body:has(#app) .hoya-workspace .table th{font-weight:400;letter-spacing:.025em}
@media(min-width:1024px){
  body:has(#app) .hoya-workspace .sidebar:not([class~="w-[72px]"]){width:232px}
  body:has(#app) .hoya-workspace>.relative.min-h-screen.lg\:ml-64{margin-left:232px}
  body:has(#app) .hoya-workspace .sidebar-header-collapsed{padding:0 20px;gap:0}
}
@media(max-width:1100px){
  body:has(#app) #app .hoya-auth{column-gap:6%}
  body:has(#app) #app .hoya-auth-form{padding-left:0}
  body:has(#app) .hoya-auth-story h1{font-size:32px}
}
@media(max-width:850px){
  body:has(#app) #app .hoya-auth{grid-template-columns:minmax(0,1fr);grid-template-rows:76px auto 1fr 64px;padding:0 7vw}
  body:has(#app) .hoya-auth-header{grid-row:1;height:76px}
  body:has(#app) .hoya-wordmark{font-size:23px;gap:9px}
  body:has(#app) .hoya-wordmark img{width:32px;height:32px}
  body:has(#app) .hoya-home-link{padding:10px 12px;gap:18px;font-size:11px}
  body:has(#app) .hoya-auth-story{grid-column:1;grid-row:2;padding:25px 0 20px}
  body:has(#app) .hoya-auth-gallery-copy{padding-top:20px}
  body:has(#app) .hoya-auth-story h1{font-size:27px;margin:0;line-height:1.5}
  body:has(#app) .hoya-auth-gallery-copy>p{font-size:10px;margin-top:8px}
  body:has(#app) .hoya-auth-signature{display:none}
  body:has(#app) #app .hoya-auth-form{grid-column:1;grid-row:3;justify-self:start;max-width:520px;padding:24px 0 40px;border:0}
  body:has(#app) .hoya-form-eyebrow{font-size:8px;margin-bottom:14px}
  body:has(#app) #app .hoya-auth-form .card-glass h2{font-size:28px}
  body:has(#app) .hoya-auth-footer{grid-row:4;height:64px;font-size:9px}
}
@media(max-width:640px){
  body:has(#app) .hoya-workspace main{padding:22px 16px}
  body:has(#app) .hoya-workspace header.glass>div{min-height:72px;padding-left:16px;padding-right:16px}
  body:has(#app) .hoya-workspace-intro{align-items:start;flex-direction:column;gap:14px;padding-bottom:22px;margin-bottom:22px}
  body:has(#app) .hoya-workspace-intro h2{font-size:27px}
  body:has(#app) .hoya-workspace .hoya-stat{padding:12px 14px}
  body:has(#app) .hoya-workspace .hoya-stat:nth-child(odd){padding-left:0;border-left:0}
  body:has(#app) .hoya-workspace .hoya-stat:nth-child(n+3){margin-top:20px}
  body:has(#app) .hoya-workspace .hoya-stat .text-xl.font-bold{font-size:28px}
  body:has(#app) .hoya-auth-story .hoya-editorial-link{display:none}
  body:has(#app) .hoya-auth-story{padding-bottom:26px}
}

.hoya-scroll-progress{position:fixed;z-index:9999;top:0;left:0;right:0;height:2px;pointer-events:none;background:color-mix(in srgb,var(--linen) 12%,transparent)}
.hoya-scroll-progress>span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--mocha),var(--khaki) 55%,var(--mocha));box-shadow:0 0 8px rgb(184 159 141/.2)}
.hoya-scroll-progress.hoya-progress-idle{opacity:0}
.hoya-cursor-halo{position:fixed;z-index:38;top:0;left:0;width:128px;height:128px;pointer-events:none;opacity:0;transform:translate3d(-200px,-200px,0);border-radius:50%;background:radial-gradient(circle,rgb(184 159 141/.14),rgb(201 185 168/.055) 38%,transparent 70%);transition:opacity .35s ease;will-change:transform}
html.dark .hoya-cursor-halo{background:radial-gradient(circle,rgb(201 185 168/.11),rgb(158 138 121/.04) 40%,transparent 70%)}
.hoya-cursor-halo.hoya-cursor-visible{opacity:1}
.hoya-cursor-halo.hoya-cursor-soft{opacity:.42}
.hoya-motion-toggle{position:fixed;z-index:38;right:20px;bottom:20px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:42px;height:38px;padding:0 12px;border:1px solid var(--hoya-border-strong,var(--wheat));border-radius:999px;background:var(--hoya-glass,var(--cloud));color:var(--hoya-muted,var(--mocha));box-shadow:var(--hoya-shadow,0 6px 20px rgb(92 79 70/.08));backdrop-filter:blur(16px);font:11px/1 Arial,"Microsoft YaHei",sans-serif;letter-spacing:.08em;cursor:pointer;transition:background-color .25s,border-color .25s,box-shadow .25s,color .25s,translate .25s var(--hoya-ease)}
.hoya-motion-toggle:hover{background:var(--hoya-soft-strong,var(--apricot));border-color:var(--khaki);color:var(--hoya-text,var(--tea));box-shadow:var(--hoya-shadow-hover)}
.hoya-motion-toggle:focus-visible{outline:2px solid var(--hoya-focus,var(--cocoa));outline-offset:3px}
.hoya-motion-toggle:disabled{cursor:default;opacity:.68}
.hoya-motion-toggle-symbol{font:17px/1 Georgia,serif;color:var(--khaki);transition:transform .45s var(--hoya-ease)}
.hoya-motion-toggle:hover .hoya-motion-toggle-symbol{transform:rotate(45deg)}
.hoya-motion-toggle[aria-pressed="false"] .hoya-motion-toggle-symbol{color:var(--linen)}
.hoya-reveal{opacity:1;translate:0 0}
body.hoya-motion-ready:not(.hoya-motion-off) .hoya-reveal:not(.hoya-visible){opacity:0;translate:0 15px}
body.hoya-motion-ready:not(.hoya-motion-off) .hoya-reveal{transition:opacity .62s var(--hoya-ease) var(--hoya-reveal-delay,0ms),translate .62s var(--hoya-ease) var(--hoya-reveal-delay,0ms);will-change:opacity,translate}
body.hoya-motion-ready:not(.hoya-motion-off) .hoya-reveal.hoya-visible{opacity:1;translate:0 0;will-change:auto}
body.hoya-motion-paused .hoya-loop,body.hoya-motion-hidden .hoya-loop,.hoya-loop.hoya-offstage{animation-play-state:paused!important}
body.hoya-motion-hidden *,body.hoya-motion-hidden *::before,body.hoya-motion-hidden *::after{animation-play-state:paused!important}
body.hoya-motion-off .hoya-cursor-halo,body.hoya-motion-off .hoya-scroll-progress,body.hoya-motion-off .hoya-reveal{transition:none}

@media(hover:hover) and (pointer:fine){
  body:has(#app):not(.hoya-motion-off) .card:hover,body:has(#app):not(.hoya-motion-off) .stat-card:hover{translate:0 -3px;border-color:var(--hoya-border-strong);box-shadow:var(--hoya-shadow-hover)}
  body:has(#app):not(.hoya-motion-off) .btn:hover{translate:0 -2px}
  body:has(#app):not(.hoya-motion-off) .btn:active{translate:0 0}
  body:not(.hoya-motion-off) .hoya-motion-toggle:hover{translate:0 -2px}
}

@keyframes hoya-ambient{0%{opacity:.5;background-position:0% 0%}100%{opacity:.82;background-position:3% 2%}}
@keyframes hoya-auth-orb{0%{opacity:.32}100%{opacity:.68}}
@keyframes hoya-sheen{from{transform:translateX(-135%) skewX(-18deg)}to{transform:translateX(135%) skewX(-18deg)}}
@keyframes hoya-skeleton{0%{background-position:110% 0}100%{background-position:-110% 0}}

@media(max-width:767px){
  body:has(#app) .page-title{font-size:1.65rem;letter-spacing:-.025em}
  body:has(#app) #app header.glass h1{font-size:1.2rem}
  body:has(#app) .toast{min-width:min(320px,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}
  .hoya-motion-toggle{right:14px;bottom:14px}
}
@media(max-width:640px){
  .hoya-motion-toggle{width:40px;min-width:40px;height:40px;padding:0}
  .hoya-motion-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  body:has(#app) .card .text-xl.font-bold{font-size:1.45rem}
  body:has(#app) .driver-popover.theme-tour-popover{position:fixed!important;left:16px!important;right:auto!important;top:50%!important;width:calc(100vw - 32px)!important;max-width:none!important;max-height:calc(100dvh - 32px)!important;margin:0!important;overflow-y:auto!important;transform:translateY(-50%)!important}
  body:has(#app) .driver-popover.theme-tour-popover .driver-popover-arrow{display:none!important}
  body:has(#app) .theme-tour-popover .driver-popover-footer.reorganized{flex-wrap:wrap!important;gap:10px!important}
  body:has(#app) .theme-tour-popover .driver-popover-footer .footer-left,body:has(#app) .theme-tour-popover .driver-popover-footer .footer-right{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:8px!important}
  body:has(#app) .theme-tour-popover .driver-popover-footer .footer-right{margin-left:auto!important}
  body:has(#app) .theme-tour-popover .driver-popover-footer .footer-shortcuts{gap:8px!important;flex-wrap:wrap!important;border-left:0!important;padding-left:0!important;margin-left:0!important}
}

body.hoya-motion-off *,body.hoya-motion-off *::before,body.hoya-motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.hoya-motion-off .hoya-reveal{opacity:1!important;translate:none!important;pointer-events:auto!important}
body.hoya-motion-off .hoya-cursor-halo,body.hoya-motion-off .hoya-scroll-progress{display:none}
body.hoya-motion-off .card,body.hoya-motion-off .stat-card,body.hoya-motion-off .btn,body.hoya-motion-off .hoya-motion-toggle{translate:none!important}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body *,body *::before,body *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hoya-reveal{opacity:1!important;translate:none!important;pointer-events:auto!important}
  .hoya-cursor-halo,.hoya-scroll-progress{display:none}
}
