:root{color-scheme:light;--sheet: #e4ece6;--ink: #14332a;--mute: #5b7268;--rule: #c3d4cb;--stamp: #0f6b4a;--warn: #b56a12;--halt: #b42318;--coupon: #14332a;--coupon-ink: #eef6f1;--stub: #e2b93b;--tile: #d3ddd6;--display: "Saira Extra Condensed", "Noto Sans SC", sans-serif;--ui: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--token: "Cascadia Mono", "Sarasa Mono SC", "Consolas", ui-monospace, monospace;font-family:var(--ui);color:var(--ink);background:var(--sheet);font-synthesis:none;line-height:1.45}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--stamp);outline-offset:2px}.desk,.auth-shell{min-height:100vh;background:var(--sheet)}.desk-top{display:flex;align-items:baseline;gap:28px;padding:22px 32px 16px;border-bottom:3px solid var(--ink)}.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:inherit}.brand strong{font-family:var(--display);font-size:34px;font-weight:700;letter-spacing:.08em;line-height:1}.brand-sub{color:var(--mute);font-size:13px}.admin-nav{margin-left:auto;display:flex;align-items:center;gap:20px}.admin-nav a,.admin-nav button{border:0;background:transparent;color:var(--mute);text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0}.admin-nav a.active{color:var(--ink);box-shadow:inset 0 -3px 0 var(--stamp)}.admin-nav a:hover,.admin-nav button:hover{color:var(--ink)}.auth-shell{display:grid;place-items:center;padding:32px 16px}.auth-card{width:min(420px,calc(100vw - 32px));display:grid;gap:14px}.auth-card h1{margin:18px 0 0;font-size:28px;font-weight:700}.auth-card p{margin:0;color:var(--mute);font-size:14px}.auth-card label{display:grid;gap:6px;font-size:13px;color:var(--mute)}.auth-card input[type=text],.auth-card input[type=password],.key-form input:not([type=checkbox]){height:44px;padding:0 0 4px;border:0;border-bottom:2px solid var(--ink);background:transparent;border-radius:0}.auth-submit,.key-form button[type=submit]{height:42px;padding:0 18px;border:3px solid var(--stamp);background:var(--stamp);color:#f3faf6;font-weight:700;cursor:pointer}.auth-submit:disabled,.key-form button:disabled{opacity:.45;cursor:default}.auth-error{color:var(--halt);font-size:13px}.admin-body,.status-body{padding:36px 32px 72px}.admin-body{max-width:920px}.admin-body h1,.calendar-head h2{margin:0 0 8px;font-weight:700}.admin-body h1{font-size:32px}.admin-body p{color:var(--mute);max-width:46ch}.key-form{display:flex;gap:16px;align-items:end;margin:24px 0 28px;flex-wrap:wrap}.key-form input:not([type=checkbox]){min-width:240px}.scope-row{display:inline-flex;align-items:center;gap:14px;height:32px}.scope-chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border:0;color:var(--mute);font-size:13px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none}.scope-chip.on{color:var(--ink)}.scope-chip input{appearance:none;width:13px;height:13px;margin:0;border:1px solid var(--ink);background:transparent;flex:none}.scope-chip input:checked{background:var(--stamp);border-color:var(--stamp);box-shadow:inset 0 0 0 2px var(--sheet)}.key-list{list-style:none;margin:0;padding:0;display:grid;gap:28px}.key-card{display:grid;gap:10px}.key-card.revoked{opacity:.58}.key-card-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.key-card-head strong{font-size:18px}.key-state{color:var(--mute);font-size:13px}.key-state.on{color:var(--stamp)}.key-scopes{font-size:13px;color:var(--mute)}.key-revoke{margin-left:auto;border:0;background:transparent;color:var(--halt);cursor:pointer;padding:0}.key-coupon{display:flex;align-items:stretch;min-height:56px;background:var(--coupon);color:var(--coupon-ink)}.key-coupon code{flex:1;display:flex;align-items:center;padding:14px 16px;font-family:var(--token);font-size:13.5px;line-height:1.4;word-break:break-all;-webkit-user-select:all;user-select:all;cursor:pointer}.key-coupon button{flex:0 0 auto;min-width:92px;border:0;border-left:1px dashed #c9a42c;background:var(--stub);color:var(--ink);font-weight:700;cursor:pointer}.key-coupon.copied button{background:var(--stamp);color:#f3faf6;border-left-color:var(--stamp)}.key-missing{margin:0;color:var(--mute);font-size:13px}.key-missing code{font-family:var(--token);margin-right:8px}.key-meta{margin:0;color:var(--mute);font-size:13px}.empty{color:var(--mute)}.status-blotter{display:grid;grid-template-columns:minmax(280px,.88fr) minmax(320px,1.12fr);gap:40px 56px;align-items:start}.health-word{display:inline-block;margin:0 0 28px;padding:8px 16px 10px;border:3px solid currentColor;font-size:clamp(40px,7vw,68px);font-weight:700;letter-spacing:.04em;line-height:1}.health-word.healthy{color:var(--stamp)}.health-word.stale{color:var(--halt)}.health-word.waiting{color:var(--mute)}.status-log{margin:0;display:grid;gap:16px}.status-log div{display:grid;grid-template-columns:108px 1fr;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--rule)}.status-log dt{color:var(--mute);font-size:14px}.status-log dd{margin:0;font-size:18px;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline}.log-kind,.log-result{font-size:13px;color:var(--mute)}.status-note{margin:28px 0 0;color:var(--mute);max-width:42ch;line-height:1.55}.calendar-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.calendar-head h2{font-size:22px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav button{width:32px;height:32px;border:1px solid var(--rule);background:transparent;display:grid;place-items:center;cursor:pointer}.calendar-nav button:disabled,.month-field select:disabled{opacity:.35;cursor:default}.month-field{display:inline-flex;align-items:baseline;gap:4px;color:var(--mute);font-size:12px}.month-field select{appearance:none;height:32px;padding:0 18px 0 4px;border:0;border-bottom:2px solid var(--ink);border-radius:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2314332a'/%3E%3C/svg%3E") no-repeat right 2px center;color:var(--ink);font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:.04em;cursor:pointer}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:0 0 14px;color:var(--mute);font-size:12px}.cal-swatch{display:inline-flex;align-items:center;gap:6px}.cal-swatch:before{content:"";width:10px;height:10px;border:1px solid transparent}.cal-swatch.complete:before{background:var(--stamp)}.cal-swatch.incomplete:before{background:#edc27a}.cal-swatch.missing:before{background:var(--tile)}.cal-swatch.in_progress:before{background:transparent;border-color:var(--stamp)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:8px;color:var(--mute);font-size:12px;text-align:center}.cal-pad{min-height:44px}.cal-day{min-height:44px;border:1px solid transparent;background:var(--tile);color:var(--mute);cursor:pointer;font-family:var(--display);font-size:20px;font-weight:600}.cal-day.closed,.cal-day.future{background:transparent;color:#93a59c;cursor:default}.cal-day.missing{background:var(--tile);color:var(--ink)}.cal-day.incomplete{background:#edc27a;color:var(--warn)}.cal-day.complete{background:var(--stamp);color:#f3faf6}.cal-day.in_progress{background:transparent;border-color:var(--stamp);color:var(--stamp)}.cal-day.selected{box-shadow:inset 0 0 0 2px var(--ink)}.calendar-detail{margin:18px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.calendar-detail dt{color:var(--mute);font-size:13px}.calendar-detail dd{margin:4px 0 0;font-family:var(--display);font-size:24px;font-weight:600;letter-spacing:.03em}.calendar-hint{margin:16px 0 0;color:var(--mute);font-size:13px}.calendar-error{margin-top:16px;color:var(--halt);font-size:13px}.calendar-error button{margin-top:8px;border:0;background:transparent;color:var(--stamp);cursor:pointer}@media(max-width:860px){.desk-top,.admin-body,.status-body{padding-left:16px;padding-right:16px}.status-blotter{grid-template-columns:1fr;gap:36px}.status-log div{grid-template-columns:1fr;gap:4px}.key-form input:not([type=checkbox]){min-width:0;width:100%}.calendar-detail{grid-template-columns:1fr 1fr}.key-coupon{flex-direction:column}.key-coupon button{min-height:44px;border-left:0;border-top:1px dashed #c9a42c}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
