@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--color-blue-100:#eaf2fb;--color-gray-50:#f9fafb;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-brand:#1f4e79;--color-brand-hi:#2d6da8;--color-brand-weak:#eaf2fb;--color-ink:#0d1b2e;--color-muted:#5d6b80;--color-line:#e9edf4;--color-line-strong:#d4dce7;--color-card:#fff;--color-bg:#e7edf5}@supports (color:lab(0% 0 0)){:root,:host{--color-gray-50:lab(98.2596% -.247031 -.706708)}}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.left-0{left:0}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.m-0{margin:0}.mx-auto{margin-inline:auto}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[82vh\]{max-height:82vh}.max-h-\[350px\]{max-height:350px}.max-h-\[360px\]{max-height:360px}.max-h-\[380px\]{max-height:380px}.max-h-\[420px\]{max-height:420px}.max-h-\[460px\]{max-height:460px}.max-h-\[520px\]{max-height:520px}.max-h-\[560px\]{max-height:560px}.min-h-full{min-height:100%}.w-20{width:calc(var(--spacing) * 20)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[360px\]{max-width:360px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-\[110px\]{min-width:110px}.min-w-\[120px\]{min-width:120px}.min-w-\[220px\]{min-width:220px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[5rem_1fr\]{grid-template-columns:5rem 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-line{border-color:var(--color-line)}.border-line-strong{border-color:var(--color-line-strong)}.bg-\[\#f8fafc\]{background-color:#f8fafc}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-brand{background-color:var(--color-brand)}.bg-card{background-color:var(--color-card)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-100{--tw-gradient-from:var(--color-blue-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bg{--tw-gradient-to:var(--color-bg);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:0}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-brand{color:var(--color-brand)}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.text-white{color:var(--color-white)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.accent-brand{accent-color:var(--color-brand)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.even\:bg-\[\#fbfcfe\]:nth-child(2n){background-color:#fbfcfe}@media (hover:hover){.hover\:border-brand-hi:hover{border-color:var(--color-brand-hi)}}@media (hover:hover){.hover\:bg-brand-hi:hover{background-color:var(--color-brand-hi)}}@media (hover:hover){.hover\:bg-brand-weak:hover{background-color:var(--color-brand-weak)}}@media (hover:hover){.hover\:text-brand:hover{color:var(--color-brand)}}@media (hover:hover){.hover\:text-ink:hover{color:var(--color-ink)}}@media (min-width:40rem){.sm\:ml-auto{margin-left:auto}}@media (min-width:40rem){.sm\:w-44{width:calc(var(--spacing) * 44)}}@media (min-width:40rem){.sm\:w-\[260px\]{width:260px}}@media (min-width:40rem){.sm\:w-auto{width:auto}}@media (min-width:40rem){.sm\:max-w-3xl{max-width:var(--container-3xl)}}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}}@media (min-width:40rem){.sm\:min-w-\[220px\]{min-width:220px}}@media (min-width:40rem){.sm\:min-w-\[260px\]{min-width:260px}}@media (min-width:40rem){.sm\:flex-1{flex:1}}@media (min-width:40rem){.sm\:flex-none{flex:none}}@media (min-width:40rem){.sm\:flex-shrink-0{flex-shrink:0}}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}}@media (min-width:40rem){.sm\:flex-wrap{flex-wrap:wrap}}@media (min-width:40rem){.sm\:items-center{align-items:center}}@media (min-width:40rem){.sm\:gap-4{gap:calc(var(--spacing) * 4)}}@media (min-width:40rem){.sm\:py-2{padding-block:calc(var(--spacing) * 2)}}@media (min-width:40rem){.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:#1f4e79;--brand-hi:#2d6da8;--brand-weak:#eef4fb;--brand-weak2:#f6fafe;--ink:#1c2433;--muted:#5b6a82;--faint:#7e8ba0;--line:#edf0f5;--line-strong:#dde3ea;--bg:#f4f6f8;--card:#fff;--surface-2:#fafbfd;--surface-3:#eef2f7;--ok-fg:#166534;--ok-bg:#e8f6ee;--err:#b91c1c;--err-bg:#fbeaea;--warn-fg:#92400e;--warn-bg:#fdf3e1;--info-fg:#1d6fd8;--info-bg:#e8f1fc;--dim-fg:#62718a;--dim-bg:#eef2f7;--bad-fg:#b91c1c;--bad-bg:#fbeaea;--chart-1:#1f4e79;--chart-2:#b3a06b;--chart-3:#5b8aa6;--chart-4:#a9743b;--chart-5:#6f7d6a;--chart-6:#8a6d8f;--chart-7:#c2b280;--chart-8:#45606e;--radius:10px}@theme{--color-brand: var(--brand); --color-brand-hi: var(--brand-hi); --color-brand-weak: var(--brand-weak); --color-ink: var(--ink); --color-muted: var(--muted); --color-faint: var(--faint); --color-line: var(--line); --color-line-strong: var(--line-strong); --color-card: var(--card); --color-bg: var(--bg);  --color-blue-100: var(--brand-weak); --color-blue-500: var(--brand-hi); --color-blue-600: var(--brand); --color-blue-700: #1a4368; --color-blue-800: #163a5a;}:root{--primary:var(--brand);--primary-weak:var(--brand-weak);--accent:var(--brand-hi);--surface:var(--card);--text:var(--ink);--text-muted:var(--muted);--text-faint:var(--faint);--border:var(--line);--border-2:var(--line-strong);--danger:var(--err);--danger-weak:var(--err-bg);--success:var(--ok-fg);--success-weak:var(--ok-bg);--warning:var(--warn-fg);--warning-weak:var(--warn-bg)}
:root{--brand-deep:#15375a;--sky:#4f93d6;--sky-soft:#6aa9e6;--ink-2:#243348;--canvas:var(--bg);--nav-bg:var(--bg);--nav-bg-2:var(--bg);--nav-ink:var(--muted);--nav-ink-dim:var(--faint);--nav-line:var(--line);--fs-xs:11.5px;--fs-sm:12.5px;--fs-base:13.5px;--fs-md:15px;--fs-lg:15px;--fs-xl:17px;--fs-kpi:24px;--fs-display:27px;--lh-tight:1.25;--lh-snug:1.4;--lh-normal:1.6;--lh-relaxed:1.7;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--r-sm:8px;--r:10px;--r-lg:12px;--r-xl:14px;--radius:10px;--shadow-xs:0 1px 2px #1018280a;--shadow:0 1px 2px #1018280d;--shadow-md:0 6px 18px #10182812;--shadow-lg:0 12px 30px #1018281a;--shadow-nav:none;--glow:none;--control-h:38px;--control-radius:9px;--primary:var(--brand);--primary-weak:var(--brand-weak);--accent:var(--brand-hi);--surface:var(--card);--text:var(--ink);--text-muted:var(--muted);--text-faint:var(--faint);--border:var(--line);--border-2:var(--line-strong);--danger:var(--err);--danger-weak:var(--err-bg);--color-danger:var(--err);--success:var(--ok-fg);--success-weak:var(--ok-bg);--warning:var(--warn-fg);--warning-weak:var(--warn-bg);--color-bg:var(--bg);--color-card:var(--card);--color-line:var(--line);--color-line-strong:var(--line-strong);--color-brand:var(--brand);--color-brand-hi:var(--brand-hi);--color-brand-weak:var(--brand-weak);--color-ink:var(--ink);--color-muted:var(--muted);--color-white:#fff}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--ink);font-family:Inter,Noto Sans TC,-apple-system,BlinkMacSystemFont,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;font-size:var(--fs-md);line-height:var(--lh-normal);background:var(--canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{font:inherit;cursor:pointer}@layer theme{button{appearance:none;background:0 0;border:0}}input,select,textarea{font:inherit;color:var(--ink)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--sky) 26%, transparent);outline-offset:0;border-color:var(--sky)!important}button:focus-visible,a:focus-visible,.side-item:focus-visible,.tabs button:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb, var(--sky) 38%, transparent);outline-offset:2px;border-radius:var(--control-radius)}a{color:var(--brand-hi);text-decoration:none}a:hover{color:var(--brand)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cdd6e1 padding-box padding-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#b6c2d0 padding-box padding-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-wrap{background:var(--bg);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);width:372px;max-width:100%;box-shadow:var(--shadow);flex-direction:column;gap:13px;padding:38px 34px;display:flex}.login-card h1{color:var(--brand);letter-spacing:.2px;text-align:center;font-size:20px;font-weight:700}.login-card input{border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--card);height:46px;padding:11px 13px;font-size:14px;transition:border-color .15s}.login-card input:focus{background:var(--card)}.login-card button{background:var(--brand);color:#fff;border-radius:var(--control-radius);letter-spacing:.5px;height:46px;padding:12px;font-size:14px;font-weight:600;transition:background .15s,transform 60ms}.login-card button:hover:not(:disabled){background:var(--brand-hi)}.login-card button:active:not(:disabled){transform:translateY(1px)}.login-card button:disabled{opacity:.5;cursor:default}.captcha-row{align-items:stretch;gap:10px;display:flex}.captcha-code{letter-spacing:5px;min-width:116px;color:var(--brand);background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:var(--control-radius);-webkit-user-select:none;user-select:none;cursor:pointer;text-decoration:line-through;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);flex-shrink:0;justify-content:center;align-items:center;padding:8px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,Courier New,monospace;font-size:21px;font-style:italic;font-weight:800;display:flex}.captcha-in{flex:1;min-width:0}.login-card input::placeholder{color:#7e8ba0;opacity:1}.layout{grid-template-columns:214px minmax(0,1fr);height:100%;display:grid}.sidebar{background:var(--bg);flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.sidebar-brand{height:56px;color:var(--brand);font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:.2px;white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;padding:0 18px;text-decoration:none;display:flex}.sidebar-brand img{object-fit:contain;width:auto;max-width:148px;height:26px}.sidebar-brand .dot{background:var(--brand);color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:14px;font-weight:900;display:grid}.sidebar-brand .dot:before{content:"J"}.sidebar-brand:hover{color:var(--brand-hi)}.sidebar-scroll{flex:1;min-height:0;padding:10px 10px 20px;overflow-y:auto}.side-group{margin-bottom:4px}.side-group+.side-group{margin-top:14px}.side-group-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.3px;color:var(--faint);padding:2px 10px 6px}.side-item{text-align:left;width:100%;color:var(--muted);font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:var(--lh-snug);cursor:pointer;background:0 0;border-radius:9px;align-items:center;gap:10px;margin-bottom:1px;padding:8px 10px;text-decoration:none;transition:background .14s,color .14s;display:flex;position:relative}.side-item:hover{background:var(--card);color:var(--ink)}.side-item.on{background:var(--brand-weak);color:var(--brand);font-weight:var(--fw-semibold)}.side-ext{color:var(--faint);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:center;gap:8px;margin:14px 4px 0;padding:8px 11px;text-decoration:none;display:flex}.side-ext:hover{color:var(--brand)}.main-col{flex-direction:column;min-width:0;min-height:0;display:flex}.topbar{background:var(--bg);flex-shrink:0;align-items:center;gap:14px;min-height:56px;padding:0 24px;display:flex}.tb-menu-btn{display:none}.tb-title{flex-direction:column;justify-content:center;min-width:0;display:flex}.tb-title h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.1px;line-height:var(--lh-tight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tb-title p{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-tight);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.tb-right{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.spacer{flex:1}main{flex:1;min-width:0;padding:8px 24px 0;overflow:auto}.page-wrap{width:100%;padding-bottom:28px}.page-wrap>*+*{margin-top:16px}.tb-account{display:inline-flex;position:relative}.tb-account-btn{gap:8px}.tb-account-btn .caret{opacity:.7;font-size:10px}.tb-menu-backdrop{z-index:55;position:fixed;inset:0}.tb-menu{z-index:60;background:var(--card);border:1px solid var(--line-strong);min-width:200px;box-shadow:var(--shadow-md);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.tb-menu-head{font-size:var(--fs-sm);color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px;padding:8px 12px}.tb-menu a,.tb-menu button{text-align:left;width:100%;color:var(--ink);font-size:var(--fs-base);cursor:pointer;background:0 0;border-radius:8px;padding:9px 11px;text-decoration:none;display:block}.tb-menu a:hover,.tb-menu button:hover{background:var(--brand-weak);color:var(--brand)}@media (max-width:900px){.layout{grid-template-columns:1fr}.sidebar{z-index:60;background:var(--card);width:268px;box-shadow:var(--shadow-lg);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.topbar{min-height:54px;padding:0 14px}main{padding:6px 14px 0}.tb-menu-btn{border:1px solid var(--line-strong);background:var(--card);width:38px;height:38px;color:var(--brand);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.backdrop{z-index:55;background:#10182852;display:block;position:fixed;inset:0}}.backdrop{display:none}.sec{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.1px;align-items:center;margin:24px 0 13px;display:flex}.sec:first-child{margin-top:2px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}.panel+.panel{margin-top:16px}.grid>.panel+.panel{margin-top:0}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:13px;padding:14px 18px;display:flex}.panel-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.1px;align-items:center;display:inline-flex}.panel-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.panel-head .toolbar{margin-bottom:0}.panel-body{padding:16px 18px}.modal-overlay{z-index:35;background:#10182873;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:68rem;max-height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.modal-box[data-w=lg]{max-width:34rem}.modal-box[data-w="2xl"]{max-width:48rem}.modal-box[data-w="3xl"]{max-width:68rem}.modal-box>.panel-head{flex:none}.modal-box>.panel-body{flex:auto;overflow:auto}.gua{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.gua th,.gua td{border-bottom:1px solid var(--line,#e5e8ec);white-space:nowrap;padding:7px 9px}.gua th{background:var(--surface-2,#f4f6f8);text-align:left;color:var(--muted,#667085);font-weight:600;position:sticky;top:0}.gua td.num{text-align:right;font-variant-numeric:tabular-nums}.gua tr.on td{background:var(--brand-weak,#1f4e7914)}.gua tr.ov td{background:var(--brand-weak,#1f4e791a)}.gua select{border:1px solid var(--line,#d0d5dd);font:inherit;background:#fff;border-radius:6px;padding:4px 6px}.gua tr.on select{border-color:var(--brand,#1f4e79);font-weight:600}.panel>:is(div,form,section,fieldset):not(.panel-head):not(.panel-body):not([class*=overflow]):not([style*=overflow]){padding:16px 18px}.panel-body>*,.card>*,.section-body>*{margin-bottom:0}.panel-body>*+*{margin-top:16px}.card>*+*{margin-top:14px}.section-body>*+*{margin-top:12px}.panel-body>form:not(.section-body)>*+*,.page-body>form:not(.section-body)>*+*{margin-top:16px}.section-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--brand);letter-spacing:.1px;align-items:center;margin:0 0 10px;display:flex}.section-hint{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-relaxed);margin:0 0 10px}.form-grid{grid-template-columns:1fr;gap:12px 14px;display:grid}@media (min-width:640px){.form-grid-2,.form-grid-3,.form-grid-4{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-grid-4{grid-template-columns:repeat(4,1fr)}}.weekday-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);margin-bottom:12px;padding:14px 16px}.weekday-card:last-child{margin-bottom:0}.weekday-card-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.weekday-shift{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--brand)}.weekday-sum{font-size:var(--fs-sm);color:var(--muted)}.weekday-sum b{color:var(--ink);font-weight:var(--fw-semibold)}.weekday-quick{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.weekday-quick-lbl{font-size:var(--fs-sm);color:var(--muted)}.weekday-quick input{border:1px solid var(--line-strong);background:var(--card);border-radius:8px;width:84px;padding:5px 8px}.weekday-grid{grid-template-columns:repeat(4,1fr);gap:6px 8px;display:grid}@media (min-width:720px){.weekday-grid{grid-template-columns:repeat(7,1fr)}}.wcell{flex-direction:column;gap:2px;min-width:0;display:flex}.wcell-lbl{color:var(--muted);font-size:12px}.wcell-sat .wcell-lbl{color:var(--sky);font-weight:var(--fw-semibold)}.wcell-sun .wcell-lbl{color:var(--err);font-weight:var(--fw-semibold)}.wcell input{text-align:center;border:1px solid var(--line-strong);background:var(--card);border-radius:8px;width:100%;min-width:0;padding:6px 4px;transition:border-color .15s}.wcell input:focus{border-color:var(--sky);outline:none}.wcell input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.wcell input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.wcell input{appearance:textfield}.cal-legend{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.cal-lg{font-size:var(--fs-xs);border:1px solid #0000;border-radius:999px;padding:2px 8px}.cal-hint{font-size:var(--fs-sm);color:var(--muted)}.cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-headrow{margin-bottom:6px}.cal-hcell{text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--muted);padding:4px 0}.cal-hcell.cal-sat{color:var(--sky)}.cal-hcell.cal-sun{color:var(--err)}.cal-cell{border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;min-height:74px;font:inherit;color:var(--ink);border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px;transition:box-shadow .15s,transform 50ms;display:flex}.cal-cell:hover{box-shadow:var(--shadow-md)}.cal-cell:active{transform:translateY(1px)}.cal-blank{cursor:default;box-shadow:none;background:0 0;border:none;min-height:0}.cal-day{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--muted)}.cal-kpi{font-size:var(--fs-md);font-weight:var(--fw-bold)}.cal-rate{font-size:var(--fs-xs);color:var(--muted)}.cal-green{background:var(--ok-bg);border-color:var(--ok-fg)}.cal-green .cal-kpi{color:var(--ok-fg)}.cal-yellow{background:var(--warn-bg);border-color:var(--warn-fg)}.cal-yellow .cal-kpi{color:var(--warn-fg)}.cal-red{background:var(--err-bg);border-color:var(--err)}.cal-red .cal-kpi{color:var(--err)}.cal-lg.cal-green{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-fg)}.cal-lg.cal-yellow{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-fg)}.cal-lg.cal-red{background:var(--err-bg);color:var(--err);border-color:var(--err)}.cal-today{outline:2px solid var(--brand);outline-offset:-1px}.cal-editor-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.cal-editor-bar select{border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--card);padding:6px 10px}.cal-editor-scroll{max-height:60vh;overflow:auto}.form-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);margin-top:16px;padding:18px 20px}.card.inner{background:var(--surface-2);box-shadow:none}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;max-width:240px;padding:11px 15px;overflow:hidden}td.wrap,th.wrap{white-space:normal;max-width:none}thead th{background:var(--surface-2);z-index:1;font-size:var(--fs-xs);color:var(--muted);font-weight:var(--fw-semibold);letter-spacing:.4px;border-bottom:1px solid var(--line-strong);position:sticky;top:0}.addrow{border:0;border-top:1px dashed var(--line-strong);background:var(--surface-2);width:100%;color:var(--brand);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.3px;cursor:pointer;padding:11px 14px;transition:background .15s,color .15s;display:block}.addrow:hover:not(:disabled){background:var(--brand-weak);color:var(--brand-hi)}.addrow:disabled{color:var(--muted);cursor:not-allowed}tbody tr{transition:background .12s}tbody tr:last-child td{border-bottom:0}tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}tbody.pickable tr{cursor:pointer}tbody.pickable tr:hover td{background:var(--brand-weak)}tbody tr.sel td{box-shadow:inset 3px 0 0 var(--sky);background:var(--brand-weak)!important}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.num.neg{color:#b91c1c}.freeze-col{z-index:2;background:var(--card)}thead .freeze-col{z-index:3;background:var(--surface-2)}tbody tr:nth-child(2n) .freeze-col{background:#f5f8fb}tbody.pickable tr:hover .freeze-col,tbody tr.sel .freeze-col{background:var(--brand-weak)}.freeze-last{box-shadow:6px 0 8px -6px #10182824}tbody tr.rowhl td{box-shadow:inset 3px 0 #d9a514;background:var(--warn-bg)!important}tbody tr.row-terminated td{color:var(--muted)}.tag-terminated{background:var(--danger-weak);color:var(--danger);letter-spacing:.3px;vertical-align:middle;border-radius:999px;margin-right:6px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}tbody tr.rowneg td{font-weight:var(--fw-semibold);background:#b91c1c14!important}tbody tr.row-subtotal td{font-weight:var(--fw-bold,700);border-top:2px solid var(--brand,#1f4e79);background:var(--brand-weak,#1f4e7914)!important}tbody tr.ref-row:hover td,tbody.fg-approve-rows tr:hover td{background:var(--brand-weak)}tbody.fg-approve-rows tr.sel td{box-shadow:inset 3px 0 0 var(--sky);background:var(--brand-weak)!important}.result-file-row{border:1px solid var(--line);border-radius:var(--control-radius);padding:7px 11px;transition:border-color .14s,background .14s}.result-file-row:hover{border-color:var(--sky);background:var(--brand-weak2)}.center{text-align:center}.muted{color:var(--muted)}.faint{color:var(--faint)}.err{color:var(--err)}.small{font-size:var(--fs-sm)}.total{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.badge{font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;line-height:1.5;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:999px;width:6px;height:6px}.badge-ok{background:var(--ok-bg);color:var(--ok-fg);border-color:color-mix(in srgb, var(--ok-fg) 20%, transparent)}.badge-bad{background:var(--bad-bg);color:var(--bad-fg);border-color:color-mix(in srgb, var(--bad-fg) 20%, transparent)}.badge-warn{background:var(--warn-bg);color:var(--warn-fg);border-color:color-mix(in srgb, var(--warn-fg) 20%, transparent)}.badge-info{background:var(--info-bg);color:var(--info-fg);border-color:color-mix(in srgb, var(--info-fg) 20%, transparent)}.badge-dim{background:var(--dim-bg);color:var(--dim-fg);border-color:color-mix(in srgb, var(--dim-fg) 18%, transparent)}.hint,.ok,.warn{border-radius:var(--r);font-size:var(--fs-base);line-height:var(--lh-relaxed);border:1px solid #0000;border-left-width:3px;margin-bottom:16px;padding:12px 15px 12px 16px}.hint{background:var(--brand-weak);border-color:color-mix(in srgb, var(--brand) 20%, transparent);color:var(--brand)}.ok{background:var(--ok-bg);border-color:color-mix(in srgb, var(--ok-fg) 30%, transparent);color:var(--ok-fg)}.warn{background:var(--warn-bg);border-color:color-mix(in srgb, var(--warn-fg) 32%, transparent);color:var(--warn-fg)}.page-err{margin-bottom:14px}.kpis{flex-wrap:nowrap;gap:14px;margin-bottom:16px;display:flex}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex:1 1 0;min-width:0;padding:15px 18px;position:relative;overflow:hidden}.kpi-k{color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.2px}.kpi-v{font-size:var(--fs-kpi);font-weight:var(--fw-bold);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.2px;margin-top:5px;line-height:1.14;overflow:hidden}.kpi-sub{font-size:var(--fs-sm);color:var(--ok-fg);font-weight:var(--fw-semibold)}.kpi.click{cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}.kpi.click:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi.click:after{content:"›";color:var(--muted);font-size:16px;line-height:1;position:absolute;top:8px;right:12px}.page{flex-direction:column;display:flex}.page>*+*{margin-top:14px}.page-meta{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.page-crumb{font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-semibold)}.page-sub{font-size:var(--fs-sm);color:var(--muted)}.page-top{z-index:20;background:var(--bg);flex-direction:column;gap:12px;display:flex;position:sticky;top:0}.page-top:before{content:"";inset-inline:0;background:var(--bg);height:8px;position:absolute;bottom:100%}.page-bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-bar-l{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.page-actions{flex-wrap:wrap;align-self:flex-start;align-items:center;gap:10px;margin-left:auto;display:flex}.page-filters{margin-bottom:0}.page-body{flex-direction:column;display:flex}.page-body>*+*{margin-top:16px}.space-y-1>:not(:last-child){margin-bottom:4px}.space-y-2>:not(:last-child){margin-bottom:8px}.space-y-3>:not(:last-child){margin-bottom:12px}.space-y-4>:not(:last-child){margin-bottom:16px}.space-y-6>:not(:last-child){margin-bottom:24px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .export-btn,.toolbar .spacer+.export-btn{margin-left:auto}.kwbox,.toolbar select,.toolbar input{height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--card);padding:0 13px;transition:border-color .15s}.kwbox{width:262px;max-width:100%}.kwbox:hover,.toolbar select:hover{border-color:var(--sky)}.layout input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not(.cell),.layout select:not(.cell){height:var(--control-h);box-sizing:border-box}.layout textarea:not(.cell){min-height:var(--control-h);box-sizing:border-box}.chk{color:var(--muted);font-size:var(--fs-base);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.chk input[type=checkbox],.chk input[type=radio]{accent-color:var(--brand);width:16px;height:16px}.chk input[type=date]{border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--card);color:var(--ink);padding:7px 9px}.tabs{background:var(--surface-3);border:1px solid var(--line);border-radius:11px;flex-wrap:wrap;gap:4px;max-width:100%;padding:4px;display:inline-flex}.tabs button{color:var(--muted);font-size:var(--fs-base);font-weight:var(--fw-semibold);white-space:nowrap;background:0 0;border-radius:8px;padding:8px 16px;transition:background .15s,color .15s}.tabs button:hover:not(.on){color:var(--brand)}.tabs button.on{background:var(--card);color:var(--brand);box-shadow:var(--shadow-xs)}.subnav{margin-bottom:16px}.tabstack{flex-direction:column;align-items:flex-start;gap:8px;width:100%;display:flex}.exp{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}.exp-head{text-align:left;width:100%;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--ink);background:0 0;align-items:center;gap:10px;padding:13px 16px;display:flex}.exp-head:hover{background:var(--surface-2);color:var(--brand)}.chev{color:var(--sky);transition:transform .18s;display:inline-block}.chev.open{transform:rotate(90deg)}.exp-body{border-top:1px solid var(--line);padding:10px 16px 16px}.exp ul{padding-left:18px;line-height:1.95}.grid4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.field{flex-direction:column;gap:6px;margin-bottom:0;display:flex}.flabel{font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-semibold);letter-spacing:.1px}.flabel em{color:var(--err);font-style:normal}.field input,.field select,.field textarea{border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--card);resize:vertical;padding:9px 11px;transition:border-color .15s}.field select[multiple]{min-height:130px}button.primary,.card button[type=submit],.btnrow button:not(.ghost):not(.danger),.form-actions button:not(.ghost):not(.danger){background:var(--brand);color:#fff;border-radius:var(--control-radius);height:var(--control-h);font-size:var(--fs-base);font-weight:var(--fw-semibold);letter-spacing:.2px;box-shadow:none;justify-content:center;align-items:center;gap:8px;padding:0 18px;transition:background .15s,transform 60ms;display:inline-flex}button.primary:hover:not(:disabled),.card button[type=submit]:hover:not(:disabled),.btnrow button:not(.ghost):not(.danger):hover:not(:disabled),.form-actions button:not(.ghost):not(.danger):hover:not(:disabled){background:var(--brand-hi)}button.primary:active:not(:disabled),.card button[type=submit]:active:not(:disabled),.form-actions button:not(.ghost):not(.danger):active:not(:disabled){transform:translateY(1px)}.card button:disabled,button.primary:disabled,.form-actions button:not(.ghost):not(.danger):disabled{opacity:.45;cursor:default}button.danger{background:var(--err);color:#fff;border-radius:var(--control-radius);height:var(--control-h);font-size:var(--fs-base);font-weight:var(--fw-semibold);padding:0 18px}button.danger:hover:not(:disabled){filter:brightness(1.06)}button.ghost.danger{color:var(--err);border:1px solid var(--err);background:0 0}button.ghost.danger:hover:not(:disabled){background:var(--err-bg,#fee2e2);color:var(--err)}.ghost,button.ghost{background:var(--card);border:1px solid var(--line-strong);border-radius:var(--control-radius);height:var(--control-h);color:var(--muted);font-size:var(--fs-base);font-weight:var(--fw-semibold);justify-content:center;align-items:center;gap:8px;padding:0 14px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.ghost:hover,button.ghost:hover{border-color:var(--sky);color:var(--brand);background:var(--brand-weak2)}.ghost.on{border-color:var(--sky);color:var(--brand);background:var(--brand-weak)}.btnrow{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.combo{min-width:164px;display:inline-block;position:relative}.combo-input{width:100%;height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--card);color:var(--ink);padding:0 32px 0 13px;transition:border-color .15s}.combo-input:hover{border-color:var(--sky)}.combo-input::placeholder{color:var(--ink);opacity:1}.combo-caret{color:var(--muted);pointer-events:none;font-size:11px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.combo-clear{color:var(--muted);cursor:pointer;background:0 0;padding:0 2px;font-size:16px;line-height:1;position:absolute;top:50%;right:27px;transform:translateY(-50%)}.combo-clear:hover{color:var(--err)}.combo-list{z-index:40;background:var(--card);border:1px solid var(--line-strong);max-height:270px;box-shadow:var(--shadow-md);border-radius:11px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto}.combo-opt{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:9px 12px;overflow:hidden}.combo-opt.on{background:var(--brand-weak);color:var(--brand)}.combo-opt.sel{font-weight:var(--fw-semibold)}.combo-empty{color:var(--muted);padding:9px 12px}td .combo{width:100%;min-width:0}td .combo-input{border-radius:8px;height:auto;padding:6px 24px 6px 9px}input.cell,select.cell{border:1px solid var(--line);background:var(--card);border-radius:8px;width:100%;padding:7px 9px}input.cell:focus,select.cell:focus{border-color:var(--sky)}.home-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:10px;display:grid}.home-link{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);min-height:80px;color:var(--ink);box-shadow:var(--shadow);flex-direction:column;justify-content:center;gap:5px;padding:18px 20px;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.home-link:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.home-link-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--brand);letter-spacing:.1px}.home-link-desc{font-size:var(--fs-sm);color:var(--muted)}.home-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);box-shadow:var(--shadow);align-items:center;gap:13px;padding:16px 18px;text-decoration:none;transition:border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.home-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.home-ic{background:var(--brand-weak);width:42px;height:42px;color:var(--brand);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.home-card-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--brand);margin-bottom:2px;display:block}.todo-card .home-ic{background:var(--warn-bg);color:var(--warn-fg)}.todo-body{flex-direction:column;min-width:0;display:flex}.todo-count{font-size:var(--fs-display);font-weight:var(--fw-bold);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.2px;line-height:1.1}.ann-hint{display:block}.ann-title{font-weight:var(--fw-bold);font-size:var(--fs-md);margin-bottom:5px}.ann-body{white-space:pre-wrap;line-height:var(--lh-relaxed);color:var(--ink)}.ann-time{opacity:.8;margin-top:8px}.bars{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);margin-bottom:16px;padding:16px 18px}.bar-row{align-items:center;gap:12px;margin:8px 0;display:flex}.bar-label{text-align:right;width:160px;min-width:120px;font-size:var(--fs-sm);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar-track{background:var(--surface-3);border-radius:7px;flex:1;height:20px;overflow:hidden}.bar-fill{background:var(--brand);border-radius:7px;min-width:2px;height:100%}.bar-val{width:92px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.legend{font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;gap:16px;margin:8px 2px 16px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:11px;height:11px;margin-right:6px;display:inline-block}.ai-wrap{flex-direction:column;height:calc(100vh - 220px);display:flex}.chat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex:1;padding:16px;overflow:auto}.bubble{border-radius:14px;max-width:78%;margin-bottom:12px;padding:10px 14px;line-height:1.6}.bubble pre{background:0 0;border:0;margin:0;padding:0}.bubble.user{background:var(--brand);color:#fff;margin-left:auto}.bubble.assistant{background:var(--surface-3)}.chat-input{gap:10px;margin-top:12px;display:flex}.chat-input input{border:1px solid var(--line-strong);border-radius:var(--control-radius);flex:1;padding:11px 13px}.chat-input button{background:var(--brand);color:#fff;border-radius:var(--control-radius);font-size:var(--fs-base);font-weight:var(--fw-semibold);padding:0 20px}pre{white-space:pre-wrap;font:inherit;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;margin:4px 0;padding:10px 12px}code{background:var(--surface-3);font-size:var(--fs-base);border-radius:6px;padding:1px 6px}input[type=file]{border:1.5px dashed var(--line-strong);border-radius:var(--r);background:var(--surface-2);width:100%;padding:16px}input[type=file]:hover{border-color:var(--sky)}input:disabled{background:var(--surface-3);color:var(--muted)}input[type=range]{accent-color:var(--brand)}.dlrow{align-items:center;gap:12px;margin:8px 0;display:flex}.hist{border-bottom:1px dashed var(--line);padding:10px 0}.bs-top{grid-template-columns:1fr 1fr;align-items:start;gap:14px;margin-bottom:14px;display:grid}@media (max-width:1000px){.bs-top{grid-template-columns:1fr}}.footer-hint{margin-top:20px}.loading{color:var(--muted);font-size:var(--fs-base);justify-content:center;align-items:center;gap:10px;padding:40px 16px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--brand);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:44px 16px;display:flex}.empty-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--muted)}.empty-hint{font-size:var(--fs-sm);color:var(--faint);max-width:380px;line-height:var(--lh-relaxed)}.empty-hint button{margin-top:10px}.toaster{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;max-width:min(460px,100vw - 32px);display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r);font-size:var(--fs-base);font-weight:var(--fw-semibold);box-shadow:var(--shadow-lg);border:1px solid #0000;padding:11px 15px;line-height:1.5;animation:.18s toast-in}.toast-ok{background:var(--ok-bg);color:var(--ok-fg);border-color:color-mix(in srgb, var(--ok-fg) 28%, transparent)}.toast-err{background:var(--bad-bg);color:var(--bad-fg);border-color:color-mix(in srgb, var(--bad-fg) 28%, transparent)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.tb-unlock{align-items:center;display:inline-flex;position:relative}
