:root{--warm-50: #f6f1e7;--warm-100: #efe8da;--warm-150: #e7e0d2;--warm-200: #e0d7c5;--warm-300: #cdc1a9;--warm-600: #6f665a;--warm-700: #4c463d;--warm-900: #1f1b16;--white-warm: #fffdf8;--brick-100: #f2d9d0;--brick-500: #c0492b;--brick-600: #a83e24;--brick-300: #e06a4a;--moss-100: #dcecdf;--moss-600: #3f7d4e;--moss-300: #79b489;--amber-100: #f4e6cf;--amber-600: #b8791d;--amber-300: #dda94a;--slate-100: #d9e6ee;--slate-600: #3a6a86;--slate-300: #7fadc6;--text-xs: .78rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.35rem;--text-2xl: 1.7rem;--text-3xl: 2.2rem;--leading-tight: 1.2;--leading: 1.5;--weight-normal: 400;--weight-medium: 550;--weight-semibold: 620;--weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius: 10px;--radius-sm: 6px;--radius-pill: 999px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;--maxw: 1120px;--bp-cards: 760px}:root{--paper: var(--warm-50);--paper-2: var(--warm-100);--card: var(--white-warm);--ink: var(--warm-900);--ink-soft: var(--warm-700);--ink-faint: #8a8175;--line: var(--warm-200);--line-strong: var(--warm-300);--accent: var(--brick-500);--accent-hover: var(--brick-600);--accent-ink: #fff;--accent-soft: var(--brick-100);--good: var(--moss-600);--good-soft: var(--moss-100);--warn: var(--amber-600);--warn-soft: var(--amber-100);--info: var(--slate-600);--info-soft: var(--slate-100);--muted: var(--warm-600);--muted-soft: var(--warm-150);--danger: #b03427;--shadow: 0 1px 2px rgba(40, 30, 15, .06), 0 6px 20px rgba(40, 30, 15, .06);--shadow-lifted: 0 2px 6px rgba(40, 30, 15, .1), 0 18px 40px rgba(40, 30, 15, .14);--focus-ring: 0 0 0 3px var(--accent-soft);--space: var(--space-4)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #16130f;--paper-2: #1f1b15;--card: #24201a;--ink: #f3ece0;--ink-soft: #cbc3b4;--ink-faint: #928a7a;--line: #332e26;--line-strong: #473f34;--accent: var(--brick-300);--accent-hover: #ea7f61;--accent-ink: #1b1410;--accent-soft: #3b241d;--good: var(--moss-300);--good-soft: #1e2f23;--warn: var(--amber-300);--warn-soft: #322616;--info: var(--slate-300);--info-soft: #1b2b34;--muted: #a49a88;--muted-soft: #2a251e;--danger: #e8705f;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .35);--shadow-lifted: 0 2px 6px rgba(0, 0, 0, .5), 0 18px 40px rgba(0, 0, 0, .5);--focus-ring: 0 0 0 3px #4a2c22}}:root[data-theme=dark]{--paper: #16130f;--paper-2: #1f1b15;--card: #24201a;--ink: #f3ece0;--ink-soft: #cbc3b4;--ink-faint: #928a7a;--line: #332e26;--line-strong: #473f34;--accent: var(--brick-300);--accent-hover: #ea7f61;--accent-ink: #1b1410;--accent-soft: #3b241d;--good: var(--moss-300);--good-soft: #1e2f23;--warn: var(--amber-300);--warn-soft: #322616;--info: var(--slate-300);--info-soft: #1b2b34;--muted: #a49a88;--muted-soft: #2a251e;--danger: #e8705f;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .35);--shadow-lifted: 0 2px 6px rgba(0, 0, 0, .5), 0 18px 40px rgba(0, 0, 0, .5);--focus-ring: 0 0 0 3px #4a2c22}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:var(--leading);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}h1,h2,h3{font-weight:var(--weight-semibold);line-height:var(--leading-tight);margin:0 0 .4em;letter-spacing:-.01em}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}.skip-link{position:absolute;left:-9999px;top:var(--space-2);z-index:100;background:var(--card);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:var(--weight-medium)}.skip-link:focus{left:var(--space-4)}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.stack{display:flex;flex-direction:column;gap:var(--space)}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}.muted{color:var(--ink-faint)}.small{font-size:var(--text-sm)}.mono{font-variant-numeric:tabular-nums}.grid{display:grid;gap:14px}.grid-stats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-weight:var(--weight-medium);padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--card);color:var(--ink);cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .02s}.btn:hover{background:var(--paper-2);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--paper-2)}.btn-sm{padding:5px 10px;font-size:var(--text-sm)}.btn-danger{color:var(--danger);border-color:var(--line-strong)}.btn-danger:hover{background:var(--accent-soft)}label.field{display:flex;flex-direction:column;gap:var(--space-1);font-weight:var(--weight-medium);font-size:var(--text-sm)}input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 11px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{resize:vertical;min-height:72px}input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.field-error{color:var(--danger);font-size:var(--text-xs);font-weight:var(--weight-medium)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;border:1px solid transparent}.badge-good{background:var(--good-soft);color:var(--good)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-muted{background:var(--muted-soft);color:var(--muted)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data th,table.data td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}table.data th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);font-weight:var(--weight-semibold)}table.data tbody tr{cursor:pointer}table.data tbody tr:hover{background:var(--paper-2)}table.data tbody tr:last-child td{border-bottom:none}.expired{color:var(--danger);font-weight:var(--weight-semibold)}.empty{text-align:center;padding:var(--space-7) 20px;color:var(--ink-faint);border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--paper-2)}.empty .emoji{font-size:var(--text-3xl);display:block;margin-bottom:var(--space-2)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{display:flex;align-items:center;gap:10px;color:var(--ink-faint);padding:var(--space-5);justify-content:center}.error-box{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:12px 14px;font-weight:var(--weight-medium)}.warn-box{background:var(--warn-soft);border-color:var(--warn)}.stat .label{font-size:var(--text-xs);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.stat .value{font-size:1.9rem;font-weight:var(--weight-bold);letter-spacing:-.02em}.stat .sub{color:var(--ink-faint);font-size:var(--text-sm)}.stat .value .unit{font-size:.9rem;font-weight:var(--weight-normal);color:var(--ink-faint);margin-left:5px}.fg-rows{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden}.fg-rows__head,.fg-row{display:grid;grid-template-columns:var(--fg-row-template, 1fr);gap:var(--space-3);align-items:center;padding:11px 14px}.fg-rows__head{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);font-weight:var(--weight-semibold);border-bottom:1px solid var(--line)}.fg-row{border-bottom:1px solid var(--line);color:var(--ink);font-size:.92rem}.fg-row:last-child{border-bottom:none}.fg-row:hover{background:var(--paper-2);text-decoration:none}.fg-cell{min-width:0;overflow-wrap:anywhere}.fg-cell:before{display:none;content:attr(data-label);color:var(--ink-faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;font-weight:var(--weight-semibold)}@media(max-width:760px){.fg-rows{border:none;background:none;display:flex;flex-direction:column;gap:var(--space-3)}.fg-rows__head{display:none}.fg-row{grid-template-columns:1fr;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);padding:var(--space-4)}.fg-cell:before{display:block}}.pill-tabs{display:flex;gap:var(--space-1);flex-wrap:wrap}.pill-tabs a{padding:7px 14px;border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--ink-soft);font-weight:var(--weight-medium);font-size:.9rem;background:var(--card)}.pill-tabs a:hover{background:var(--paper-2);text-decoration:none}.pill-tabs a.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
