:root{color-scheme:light dark;--bg: #f6f7fb;--surface: #ffffff;--surface-2: #eef1f8;--text: #1b1f2a;--muted: #5f6b83;--line: #d9dfef;--accent: #4b6bfb;--accent-contrast: #ffffff;--good: #2e9e6b;--warn: #c9772a;--bad: #cf4b4b;--radius: 14px;--shadow: 0 1px 2px rgba(20, 30, 60, .08), 0 6px 20px rgba(20, 30, 60, .06)}@media(prefers-color-scheme:dark){:root{--bg: #12141b;--surface: #1b1e28;--surface-2: #232734;--text: #eef1f8;--muted: #9aa5bd;--line: #2f3444;--accent: #7f95ff;--accent-contrast: #10121a;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:720px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.view{flex:1;padding:16px 16px calc(84px + env(safe-area-inset-bottom))}h1{font-size:1.4rem;margin:0 0 4px}h2{font-size:1.1rem;margin:24px 0 8px}p{margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:.85rem}.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;gap:4px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);max-width:720px;margin:0 auto}.tabs button{flex:1;border:0;background:none;color:var(--muted);font:inherit;font-size:.75rem;padding:8px 4px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}.tabs button[aria-current=page]{color:var(--accent);background:var(--surface-2)}.tabs .ico{font-size:1.15rem;line-height:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stack>*+*{margin-top:12px}button.btn,a.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-weight:600;padding:12px 16px;border-radius:12px;cursor:pointer;text-decoration:none}button.btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:transparent}button.btn.danger{color:var(--bad)}button.btn.ghost{background:none;border-color:transparent}button.btn:disabled{opacity:.5;cursor:default}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.score-hero{text-align:center;padding:24px 16px}.score-hero .value{font-size:3.5rem;font-weight:800;line-height:1}.score-hero .unit{font-size:1.25rem;color:var(--muted);font-weight:600}.subscores{display:flex;justify-content:center;gap:24px;margin-top:12px;color:var(--muted)}.progress{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);transition:width .2s}.card-word{text-align:center;padding:32px 16px 24px}.card-word .word{font-size:2rem;font-weight:800;text-transform:capitalize}.choices{display:grid;gap:10px}.choices button{text-align:left;padding:16px}.choices button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.chart{width:100%;height:auto;display:block;touch-action:pan-y}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis-label{fill:var(--muted);font-size:10px}.chart .series{fill:none;stroke:var(--accent);stroke-width:2}.chart .series-na{stroke:var(--bad)}.chart .series-pa{stroke:var(--good)}.chart .roll{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 3}.chart .avg{stroke:var(--muted);stroke-dasharray:2 4;stroke-width:1}.chart .dot{fill:var(--accent)}.stat-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.stat{flex:1 1 30%;background:var(--surface-2);border-radius:10px;padding:10px;text-align:center}.stat .k{font-size:.75rem;color:var(--muted)}.stat .v{font-size:1.25rem;font-weight:700}.entry{display:flex;align-items:center;gap:12px;padding:12px}.entry .date{font-variant-numeric:tabular-nums;min-width:6.5em}.entry .sc{font-weight:800;font-size:1.25rem;margin-left:auto}.entry .note{color:var(--muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12em}.badge{font-size:.7rem;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--muted)}textarea,input[type=text],input[type=time],select{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}label.field{display:block;margin-bottom:8px}label.field>span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}.toast{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:.9rem;z-index:50;box-shadow:var(--shadow)}.affect-grid{display:grid;grid-template-columns:7em repeat(auto-fit,minmax(8px,1fr));gap:2px;font-size:.7rem}.affect-grid .cell{height:14px;border-radius:2px;background:var(--surface-2)}.affect-grid .label{color:var(--muted);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:center}.tagcloud{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}.tagcloud .w{color:var(--accent)}.tagcloud .w.na{color:var(--bad)}.tag-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chip{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:.85rem;padding:6px 12px;border-radius:999px;cursor:pointer}.chip.on{background:var(--accent);color:var(--accent-contrast);border-color:transparent}.chip.static{cursor:default}.tag-group+.tag-group{margin-top:10px}.tag-group-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
