:root{--bg: #f6f3ec;--surface: #fffdf8;--surface-2: #f1ece1;--ink: #1d2733;--muted: #5a6472;--border: #e2dacb;--primary: #1f3a5f;--primary-ink: #ffffff;--focus: #2f6fb3;--income: #9a6a12;--income-bg: #fbf1dc;--class: #1f4f8a;--class-bg: #e8eff8;--study: #22705f;--study-bg: #e3f2ee;--play: #6b4f8f;--play-bg: #f0eaf6;--danger: #a63b28;--danger-bg: #fbe9e5;--ok: #22705f;--bar-track: #e6dfd0;--bar-fill: linear-gradient(90deg, #22705f, #1f4f8a);--shadow: 0 1px 2px rgb(30 40 50 / 6%), 0 4px 14px rgb(30 40 50 / 6%);--radius: 14px;--font: system-ui, -apple-system, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Meiryo", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #11161d;--surface: #19212a;--surface-2: #212a35;--ink: #ebe6dc;--muted: #a6aeb9;--border: #2e3844;--primary: #9cc0ea;--primary-ink: #11161d;--focus: #9cc0ea;--income: #e8bd63;--income-bg: #2c2618;--class: #9cc0ea;--class-bg: #1b2738;--study: #79cdb7;--study-bg: #172b27;--play: #c5aee6;--play-bg: #261f31;--danger: #f0907d;--danger-bg: #351d19;--ok: #79cdb7;--bar-track: #2a333e;--bar-fill: linear-gradient(90deg, #79cdb7, #9cc0ea);--shadow: 0 1px 2px rgb(0 0 0 / 30%);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;overflow-x:hidden}h1,h2,h3{line-height:1.3;margin:0}p{margin:0}a{color:var(--class)}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-weight:600;cursor:pointer;text-align:center}.btn:hover{background:var(--surface-2)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn-primary:hover{background:var(--primary);filter:brightness(1.1)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger);filter:brightness(1.08)}.btn-quiet{background:transparent;border-color:transparent;color:var(--class);padding-inline:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field label,.field .label{font-size:.875rem;font-weight:600}.field input,.field textarea{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger);background:var(--danger-bg)}.hint{font-size:.8125rem;color:var(--muted)}.error{font-size:.8125rem;color:var(--danger);font-weight:600}.notice{border-radius:12px;padding:12px 14px;font-size:.9rem;border:1px solid var(--border);background:var(--surface-2)}.notice-warn{border-color:var(--danger);background:var(--danger-bg)}
