:root{--color-primary: #006271;--color-primary-dark: #004e5d;--color-primary-soft: #e0f2f6;--color-accent: #b85e31;--color-accent-dark: #9c4c23;--color-bg: #f6f9fb;--color-surface: #ffffff;--color-text: #1f1f1f;--color-ink-soft: #555555;--color-ink-muted: #808080;--color-line: #dbdfe1;--color-danger: #b02a2d;--color-danger-soft: #ffebe8;--color-success: #2b7440;--color-success-soft: #e4f8e7;--color-warn: #9d6400;--color-focus-ring: rgba(0, 98, 113, .35);--shadow-card: 0 2px 12px rgba(0, 0, 0, .08);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .12);--text-xs: 1.125rem;--text-sm: 1.25rem;--text-base: 1.375rem;--text-lg: 1.625rem;--text-xl: 2rem;--text-2xl: clamp(2rem, 1.5rem + 2vw, 2.75rem);--font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--space-1: .375rem;--space-2: .75rem;--space-3: 1.125rem;--space-4: 1.75rem;--space-5: 2.5rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem}@supports (color: oklch(.5 .1 250)){:root{--color-primary: oklch(.45 .09 210);--color-primary-dark: oklch(.38 .09 210);--color-primary-soft: oklch(.95 .02 210);--color-accent: oklch(.58 .13 45);--color-accent-dark: oklch(.51 .12 45);--color-bg: oklch(.98 .004 230);--color-surface: oklch(1 0 0);--color-text: oklch(.24 0 0);--color-ink-soft: oklch(.45 0 0);--color-ink-muted: oklch(.6 0 0);--color-line: oklch(.9 .005 230);--color-danger: oklch(.5 .17 25);--color-danger-soft: oklch(.96 .03 25);--color-success: oklch(.5 .11 150);--color-success-soft: oklch(.96 .03 150);--color-warn: oklch(.55 .13 75);--color-focus-ring: oklch(.45 .09 210 / .35);--shadow-card: 0 2px 12px oklch(0 0 0 / .08);--shadow-card-hover: 0 8px 24px oklch(0 0 0 / .12)}}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-text-size-adjust:100%}body{margin:0;font-size:var(--text-base);line-height:1.7}h1{font-size:var(--text-xl);line-height:1.3;margin:0 0 var(--space-3)}h2{font-size:var(--text-lg);line-height:1.4;margin:0 0 var(--space-3)}h3{font-size:var(--text-base);line-height:1.4;margin:0 0 var(--space-2);color:var(--color-ink-soft)}p{margin:0 0 var(--space-2)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) clamp(var(--space-2),4vw,var(--space-4));background:var(--color-primary);color:var(--color-surface)}.app-header__brand{font-size:var(--text-sm);font-weight:700;margin-inline-end:auto}.app-header__user{font-size:var(--text-sm)}.app-main{width:100%;max-width:72rem;margin-inline:auto;padding:clamp(var(--space-3),4vw,var(--space-5)) clamp(var(--space-2),4vw,var(--space-4))}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:clamp(var(--space-3),3vw,var(--space-4));margin-block-end:var(--space-4)}.card:last-child{margin-block-end:0}.card--sub{box-shadow:none;border-radius:var(--radius-md);background:var(--color-bg);margin-block-end:var(--space-3)}.form-grid{display:grid;gap:var(--space-3);grid-template-columns:1fr}@media(min-width:640px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label,.field>span,label.field{font-size:var(--text-sm);color:var(--color-ink-soft)}label.field input{color:var(--color-text)}.field__code{font-size:var(--text-xs);color:var(--color-ink-muted)}input,select{font:inherit;font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);min-height:2.75rem;width:100%}input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}button{font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--color-surface);background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);min-height:2.75rem;cursor:pointer}button:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}button:disabled{background:var(--color-line);border-color:var(--color-line);color:var(--color-ink-muted);cursor:not-allowed}.btn-ghost{color:var(--color-primary);background:transparent;border-color:var(--color-primary)}.btn-ghost:hover:not(:disabled){color:var(--color-surface)}.btn-on-dark{color:var(--color-surface);background:transparent;border-color:var(--color-surface)}.btn-on-dark:hover:not(:disabled){color:var(--color-primary);background:var(--color-surface);border-color:var(--color-surface)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block-start:var(--space-3)}.table-wrap{overflow-x:auto;border:1px solid var(--color-line);border-radius:var(--radius-md)}table{border-collapse:collapse;width:100%;min-width:40rem}th,td{text-align:start;padding:var(--space-2);border-block-end:1px solid var(--color-line)}th{font-size:var(--text-sm);background:var(--color-primary-soft);color:var(--color-primary-dark)}tbody tr:last-child td{border-block-end:none}td button{min-height:2.5rem}[role=alert]{color:var(--color-danger);background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-block:var(--space-2)}[role=status]{color:var(--color-success);background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-block:var(--space-2)}ul[role=alert]{margin-inline-start:0;padding-inline-start:var(--space-5)}.app-header [role=status],.app-header [role=alert]{background:transparent;border:none;padding:0}.metric{display:inline-flex;align-items:baseline;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-ink-soft);background:var(--color-primary-soft);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.metric strong{font-size:var(--text-base);color:var(--color-primary-dark)}.login{min-height:100vh;display:grid;place-items:center;padding:var(--space-3)}.login__card{width:min(30rem,100%);display:flex;flex-direction:column;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);padding:clamp(var(--space-3),5vw,var(--space-5))}.login__card h1{font-size:var(--text-2xl);margin:0}.loading{padding:var(--space-5);text-align:center;color:var(--color-ink-soft)}
