.btn{--btn-bg:var(--surface-white);--btn-fg:var(--text-primary);--btn-border:var(--brand-forest);--btn-edge:var(--brand-forest);--btn-hover:var(--surface-mint);--btn-pressed:#d6e3c6;--btn-ring:var(--brand-lime);--btn-edge-h:0px;border:2px solid var(--btn-border);border-radius:var(--radius-button);background:var(--btn-bg);min-width:44px;height:44px;color:var(--btn-fg);font:700 14px/1 var(--font-ui);white-space:nowrap;box-shadow:0 var(--btn-edge-h) 0 var(--btn-edge);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;transition:transform .1s,box-shadow .1s,background-color .15s;display:inline-flex;position:relative}.btn:hover:not(:disabled){background:var(--btn-hover)}.btn:active:not(:disabled){background:var(--btn-pressed);box-shadow:0 max(0px, calc(var(--btn-edge-h) - 2px)) 0 var(--btn-edge);transform:translateY(2px)}.btn:focus-visible{outline:3px solid var(--btn-ring);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.btn[data-loading]{opacity:1;cursor:progress;box-shadow:0 var(--btn-edge-h) 0 var(--btn-edge)}.btn--primary{--btn-bg:var(--brand-lime);--btn-hover:var(--brand-lime-hover);--btn-pressed:var(--brand-lime-pressed);--btn-ring:var(--brand-leaf);--btn-edge-h:3px}.btn--dark{--btn-bg:var(--brand-forest);--btn-fg:var(--text-on-dark);--btn-border:var(--brand-forest);--btn-edge:var(--brand-forest-deep);--btn-hover:var(--brand-forest-2);--btn-pressed:var(--brand-forest-deep)}.btn--orange{--btn-bg:var(--brand-orange);--btn-fg:#fff;--btn-border:var(--brand-orange);--btn-edge:var(--brand-orange-deep);--btn-hover:#ff7a3d;--btn-pressed:var(--brand-orange-pressed);--btn-ring:var(--brand-forest)}.btn--danger{--btn-bg:var(--state-error);--btn-fg:#fff;--btn-border:var(--state-error);--btn-edge:#8c2a12;--btn-hover:#c4421f;--btn-pressed:#9c2f15;--btn-ring:var(--state-error-bg)}.btn--ghost{--btn-bg:transparent;--btn-border:transparent;--btn-edge:transparent;--btn-pressed:#dbe8cc;box-shadow:none}.btn--ghost:active:not(:disabled){box-shadow:none;transform:none}.btn--sm{border-radius:10px;height:36px;padding:0 14px;font-size:13px}.btn--lg{border-radius:14px;height:56px;padding:0 24px;font-size:16px}.btn--block{width:100%;display:flex}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (pointer:coarse){.btn--sm{height:44px}}.icon-btn{border-radius:var(--radius-button);border:1px solid var(--line-default);background:var(--surface-white);width:44px;height:44px;color:var(--text-primary);-webkit-tap-highlight-color:transparent;place-items:center;padding:0;transition:background-color .15s,transform .1s;display:inline-grid;position:relative}.icon-btn:hover{background:var(--surface-mint)}.icon-btn:active{transform:translateY(1px)}.icon-btn--sm{border-radius:10px;width:36px;height:36px}.chip{border-radius:var(--radius-chip);height:28px;font:600 13px/1 var(--font-ui);white-space:nowrap;background:var(--surface-mint);color:var(--text-primary);border:1px solid #0000;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.chip__dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.chip--live{background:var(--brand-lime);color:var(--brand-forest)}.chip--waiting{background:var(--surface-peach);border-color:var(--line-peach);color:var(--text-orange-deep)}.chip--waiting .chip__dot{background:var(--brand-orange)}.chip--success{background:var(--state-success-bg);color:var(--state-success)}.chip--error{background:var(--state-error-bg);color:var(--state-error)}.chip--outline{background:var(--surface-white);border-color:var(--line-default);color:var(--text-primary)}.chip--selected{background:var(--brand-forest);color:var(--text-on-dark)}.chip--muted{background:var(--board-column);color:var(--text-faint)}.chip--sm{height:22px;padding:0 9px;font-size:12px}.badge{border-radius:var(--radius-chip);background:var(--brand-orange);color:#fff;min-width:24px;height:20px;font:700 12px/1 var(--font-ui);font-variant-numeric:tabular-nums;place-items:center;padding:0 7px;display:inline-grid}.kbd{border:1px solid var(--line-default);background:var(--surface-paper);min-width:26px;height:22px;color:var(--text-primary);font:600 11px/1 var(--font-mono);border-bottom-width:2px;border-radius:6px;place-items:center;padding:0 6px;display:inline-grid}.avatar{background:var(--brand-lime);border:2px solid var(--brand-forest);color:var(--brand-forest);font-family:var(--font-ui);border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{font:600 14px/1.3 var(--font-ui);color:var(--text-primary)}.field__help{font:400 13px/1.4 var(--font-ui);color:var(--text-muted)}.field__error{font:400 13px/1.4 var(--font-ui);color:var(--state-error);animation:.2s ease-out m-slide-down}.input,.select{align-items:center;display:flex;position:relative}.input input,.select select,.textarea{border:1.5px solid var(--line-default);border-radius:var(--radius-input);background:var(--surface-white);width:100%;height:44px;color:var(--text-primary);font:400 15px/1.4 var(--font-ui);appearance:none;padding:0 14px;transition:border-color .12s,box-shadow .12s}.select select{cursor:pointer;padding-right:40px;font-weight:500}.textarea{resize:vertical;height:auto;min-height:88px;padding:10px 14px}.input input::placeholder,.textarea::placeholder{color:var(--text-faint);opacity:.85}.input input:hover:not(:disabled),.select select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--line-dashed)}.input input:focus,.select select:focus,.textarea:focus{border-color:var(--brand-forest);box-shadow:0 0 0 3px var(--brand-lime);outline:none}.input input:disabled,.select select:disabled,.textarea:disabled{color:var(--text-faint);cursor:not-allowed;background:#f1f1e8}.field--error .input input,.field--error .select select{border-color:var(--state-error);border-width:2px;padding-right:40px}.field--error .input input:focus{box-shadow:0 0 0 3px var(--state-error-bg)}.input--date input{color:#0000;cursor:pointer;padding-right:40px}.input--date input::-webkit-datetime-edit{color:#0000}.input--date input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:auto;height:auto;margin:0;position:absolute;inset:0}.input__date{pointer-events:none;font:500 15px/1.4 var(--font-ui);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;position:absolute;left:15px;right:40px;overflow:hidden}.input__date--empty{color:var(--text-faint);font-weight:400}.input__alert{color:var(--state-error);pointer-events:none;position:absolute;right:12px}.select__chevron{color:var(--text-primary);pointer-events:none;position:absolute;right:12px}@media (width<=720px){.input input,.select select,.textarea,.input__date{font-size:16px}}.checkbox{cursor:pointer;align-items:flex-start;gap:12px;min-height:22px;display:inline-flex}.checkbox__box{flex:none;width:22px;height:22px;position:relative}.checkbox__box input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.checkbox__mark{border:1.5px solid var(--line-dashed);background:var(--surface-white);color:var(--brand-lime);pointer-events:none;border-radius:6px;place-items:center;transition:background-color .16s,border-color .16s;display:grid;position:absolute;inset:0}.checkbox__mark svg path{stroke-dasharray:24;stroke-dashoffset:24px;transition:stroke-dashoffset .24s ease-out}.checkbox:hover .checkbox__mark{border-color:var(--brand-forest)}.checkbox__box input:checked+.checkbox__mark{background:var(--brand-forest);border-color:var(--brand-forest)}.checkbox__box input:checked+.checkbox__mark svg path{stroke-dashoffset:0}.checkbox__box input:focus-visible+.checkbox__mark{outline:3px solid var(--brand-lime);outline-offset:2px}.checkbox__box input:disabled+.checkbox__mark{opacity:.5}.checkbox__label{font:400 14px/1.35 var(--font-ui);color:var(--text-primary);padding-top:1px}.toggle{cursor:pointer;align-items:center;gap:12px;display:inline-flex;position:relative}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle__track{background:#cdd8c6;border-radius:999px;flex:none;width:40px;height:24px;transition:background-color .2s;position:relative}.toggle__thumb{width:18px;height:18px;transition:transform .2s var(--ease-out-back);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #003f2e40}.toggle input:checked+.toggle__track{background:var(--brand-leaf)}.toggle input:checked+.toggle__track .toggle__thumb{transform:translate(16px)}.toggle input:focus-visible+.toggle__track{outline:3px solid var(--brand-lime);outline-offset:2px}.toggle__label{font:500 14px/1.3 var(--font-ui);color:var(--text-primary)}.tabs{align-items:center;gap:4px;min-width:0;display:flex}.tab{border-radius:var(--radius-button);height:44px;color:var(--text-primary);font:600 14px/1 var(--font-ui);white-space:nowrap;align-items:center;gap:8px;padding:0 14px;text-decoration:none;transition:background-color .15s;display:inline-flex}a.tab:hover{background:var(--surface-mint)}.tab--active,a.tab--active:hover{background:var(--brand-forest);color:var(--text-on-dark)}.tab--soon{color:var(--text-muted);cursor:default;font-weight:400}.tab__live{width:8px;height:8px;color:var(--brand-lime);display:none}.tab--active .tab__live{display:block}.subtabs{border-bottom:1px solid var(--line-default);align-items:flex-end;gap:16px;display:flex}.subtabs__list{scrollbar-width:none;overscroll-behavior-x:contain;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.subtabs__list::-webkit-scrollbar{display:none}.subtab{height:46px;color:var(--text-muted);font:500 16px/1 var(--font-ui);white-space:nowrap;flex:none;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex;position:relative}.subtab:after{content:"";background:0 0;border-radius:3px 3px 0 0;height:3px;transition:background-color .2s;position:absolute;bottom:-1px;left:8px;right:8px}.subtab:hover{color:var(--text-primary)}.subtab:hover:after{background:var(--line-default)}.subtab--active{color:var(--text-primary);font-weight:600}.subtab--active:after,.subtab--active:hover:after{background:var(--brand-orange)}button.subtab{cursor:pointer;background:0 0;border:0}button.subtab:focus-visible{outline:3px solid var(--brand-lime);outline-offset:-3px;border-radius:8px}.segmented{background:var(--surface-cream);border-radius:12px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented__opt{height:36px;color:var(--text-primary);font:500 15px/1 var(--font-ui);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:9px;transition:background-color .15s,color .15s}.segmented__opt:hover{background:var(--surface-mint)}.segmented__opt[aria-checked=true]{background:var(--brand-forest);color:var(--text-on-dark)}.segmented__opt:focus-visible{outline:3px solid var(--brand-lime);outline-offset:1px}@media (pointer:coarse){.segmented__opt{height:44px}}.phasebar{gap:6px;margin:30px 0 0;padding:0;list-style:none;display:flex}.phasebar__seg{flex-direction:column;flex:1 1 0;gap:10px;min-width:0;display:flex}.phasebar__bar{background:var(--brand-forest-2);border-radius:6px;height:12px}.phasebar__seg--past .phasebar__bar{background:var(--brand-lime-deep)}.phasebar__seg--now .phasebar__bar{background:var(--brand-lime)}.phasebar__label{font:400 14px/1.2 var(--font-ui);color:var(--text-on-dark-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.phasebar__seg--now .phasebar__label{color:var(--brand-lime);font-weight:600}.phasebar__detail{font:500 11px/1.2 var(--font-mono);letter-spacing:.02em;color:var(--text-on-dark);white-space:nowrap;text-overflow:ellipsis;margin-top:-2px;overflow:hidden}.phasebar__seg--close .phasebar__detail{color:var(--brand-orange)}.card{background:var(--surface-white);border:1px solid var(--line-default);border-radius:var(--radius-card);min-width:0;padding:24px}.card--forest{background:var(--brand-forest);border-color:var(--brand-forest);color:var(--text-on-dark)}.card--forest h2,.card--forest h3{color:var(--text-on-dark)}.card--lime{background:var(--brand-lime);border-color:var(--brand-lime);color:var(--brand-forest)}.card--peach{background:var(--surface-peach);border-color:var(--line-peach)}.card--mint{background:var(--state-success-bg);border-color:var(--brand-leaf)}.card--paper{background:var(--surface-paper)}.kpi-card{border-radius:var(--radius-card);background:var(--surface-white);border:1px solid var(--line-default);flex-direction:column;gap:8px;min-width:0;padding:20px;display:flex}.kpi-card__label{font:600 13px/1.3 var(--font-ui);color:var(--text-secondary)}.kpi-card__value{font:800 40px/1 var(--font-display);color:var(--text-primary);letter-spacing:-.01em}.kpi-card__note{font:400 14px/1.4 var(--font-ui);color:var(--text-muted)}.kpi-card--good{background:var(--state-success-bg);border-color:var(--state-success-bg)}.kpi-card--good .kpi-card__value{color:var(--state-success)}.kpi-card--warning{background:var(--surface-peach);border-color:var(--line-peach)}.kpi-card--warning .kpi-card__value,.kpi-card--warning .kpi-card__note{color:var(--text-orange-deep)}.toast-region{left:0;right:0;bottom:calc(24px + env(safe-area-inset-bottom,0px));pointer-events:none;z-index:80;justify-content:center;padding:0 16px;display:flex;position:fixed}@media (width>=721px){.toast-region{justify-content:flex-end;padding:0 32px;bottom:28px}}.toast{background:var(--brand-forest);min-width:min(420px,100%);max-width:min(560px,100%);min-height:64px;color:var(--text-on-dark);font:600 15px/1.35 var(--font-ui);pointer-events:auto;animation:m-toast-in .32s var(--ease-out-back);border-radius:16px;align-items:center;gap:12px;padding:10px 20px 10px 12px;display:flex;box-shadow:0 16px 36px -14px #00000080}.toast--leaving{animation:.2s ease-in forwards m-toast-out}.toast__msg{flex:1;min-width:0}.toast__icon{background:var(--brand-lime);width:40px;height:40px;color:var(--brand-forest);border-radius:50%;flex:none;place-items:center;display:grid}.toast__cheer{flex:none;width:56px;height:auto;margin:-16px -2px -10px -6px}.toast__illo{flex:none;margin-left:4px}.toast__action{font:700 15px/1 var(--font-ui);color:var(--brand-lime);white-space:nowrap;background:0 0;border:0;margin-left:4px;padding:10px 4px 10px 12px}.toast--error,.toast--info{background:var(--surface-white);color:var(--text-primary);border:1.5px solid var(--line-default)}.toast--error{border-color:var(--state-error);animation:m-toast-in .32s var(--ease-out-back), m-shake-x .4s .32s ease-in-out}.toast--error .toast__icon{background:var(--state-error-bg);color:var(--brand-forest)}.toast--info .toast__icon{background:var(--surface-mint);color:var(--brand-forest)}.toast--error .toast__action,.toast--info .toast__action{color:var(--brand-orange)}@media (prefers-reduced-motion:reduce){.toast,.toast--error{animation:.2s ease-out m-fade}.toast--leaving{opacity:0;animation:none}}@media (pointer:coarse){.icon-btn--sm{width:44px;height:44px}}
