:root{color-scheme:dark;--bg: #0d1117;--ink: #e6edf3;--muted: #8b949e;--panel: #161b22;--panel-raised: #1f2630;--field: #0f1620;--line: #30363d;--accent: #2fcb8f;--accent-strong: #40e0a5;--accent-soft: rgba(47, 203, 143, .14);--warn: #f2cc60;--warn-soft: rgba(242, 204, 96, .14);--danger: #ff7b72;--shadow: 0 16px 42px rgba(0, 0, 0, .34)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at 12% 0%,rgba(47,203,143,.12),transparent 30%),radial-gradient(circle at 86% 12%,rgba(91,141,239,.1),transparent 34%),var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button{border:1px solid var(--line);background:var(--panel-raised);color:var(--ink);border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .16s ease,background .16s ease}button:hover{border-color:var(--accent);background:#27313d}button:disabled{opacity:.45;cursor:not-allowed}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:var(--field);color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid rgba(47,203,143,.22);border-color:var(--accent)}input::placeholder,textarea::placeholder{color:#66717d}textarea{min-height:120px;resize:vertical}label{display:grid;gap:6px;color:var(--muted);font-size:.88rem}h1,h2{margin:0;letter-spacing:0}h1{font-size:1.8rem}h2{font-size:1rem}.single-shell{min-height:100vh}.topbar{min-height:64px;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line);background:#0d1117d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar span{display:block;color:var(--muted);font-size:.78rem}.single-main{width:min(920px,100%);margin:0 auto;padding:24px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:20px}.login-page{min-height:100vh;display:grid;place-items:center;padding:18px}.login-card,.capture-card{display:grid;gap:14px}.login-card{width:min(420px,100%)}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.eyebrow{display:block;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:800;margin-bottom:8px}.primary{background:var(--accent);color:#06120d;border-color:var(--accent);font-weight:700}.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.ghost{background:transparent}.icon-text{display:inline-flex;gap:8px;align-items:center;justify-content:center}.button-spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.expand-button svg{transition:transform .16s ease}.expand-button.open svg{transform:rotate(180deg)}.score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.score-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.score-grid.temporal-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.switch-row{display:flex;gap:14px;flex-wrap:wrap}.switch-row label,.check-row{display:flex;gap:8px;align-items:center}.switch-row input,.check-row input{width:auto}.subpanel{display:grid;gap:10px;padding:12px;border:1px solid rgba(91,141,239,.34);border-radius:8px;background:#5b8def1a}.subpanel.warm{border-color:#f2cc6057;background:var(--warn-soft)}.week-day-row{display:flex;gap:8px;flex-wrap:wrap}.week-day-row button{width:38px;height:38px;padding:0;font-weight:800}.week-day-row button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.divider{height:1px;background:var(--line)}.alert-message{margin:0;padding:11px 12px;border:1px solid var(--line);border-radius:8px}.alert-message.success{border-color:#2fcb8f6b;background:var(--accent-soft);color:var(--accent-strong)}.alert-message.error,.danger-text{color:var(--danger)}.alert-message.error{border-color:#ff7b726b;background:#ff7b721f}.danger-text{margin:0}@media(max-width:720px){.single-main,.topbar{padding:14px}.section-head{display:grid}.score-grid,.score-grid.two{grid-template-columns:1fr}}
