:root{--bg:#f0faff;--surface:#fff;--border:#d3e9f5;--text:#143246;--text-sub:#4a6b80;--text-faint:#8aa5b5;--accent:#06b6d4;--accent-soft:#e0f2fe;--ok:#16a34a;--shadow:0 1px 2px #0a3c5a0f, 0 4px 16px #0a3c5a14;--t-bg1:#0ea5e9;--t-bg2:#06b6d4;--t-ink:#fff}@media (prefers-color-scheme:dark){:root{--bg:#0f1b24;--surface:#17252f;--border:#24404f;--text:#dcecf5;--text-sub:#9dbccc;--text-faint:#6b8899;--accent:#22d3ee;--accent-soft:#103246;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,Malgun Gothic,sans-serif;font-size:17px;line-height:1.6}.wrap{max-width:560px;margin:0 auto;padding:28px 18px 48px}header.app{align-items:center;gap:12px;margin-bottom:14px;display:flex}header.app .logo{background:var(--accent);color:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:26px;display:grid}header.app h1{letter-spacing:-.02em;font-size:23px;font-weight:800}header.app .home{color:var(--text-faint);margin-left:auto;font-size:13px;text-decoration:none}.lede{color:var(--text-sub);margin-bottom:18px;font-size:15px}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;margin-top:14px;padding:20px}.card h2{color:var(--text-sub);margin-bottom:12px;font-size:15px;font-weight:800}.card h2 .month-lb{float:right;color:var(--text-faint);font-weight:700}.slots{gap:10px;display:flex}.slot{text-align:center;border:2px dashed var(--border);border-radius:14px;flex:1;padding:12px 4px}.slot.done{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.slot .s-icon{font-size:30px}.slot .s-lb{color:var(--text-sub);font-size:13px;font-weight:700}.btn{cursor:pointer;letter-spacing:-.01em;border:0;border-radius:16px;width:100%;padding:16px;font-family:inherit;font-size:19px;font-weight:800;transition:transform .1s;display:block}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#fff}.btn.big{margin-top:16px;padding:20px;font-size:22px}.cal-head{text-align:center;color:var(--text-faint);grid-template-columns:repeat(7,1fr);margin-bottom:6px;font-size:12px;font-weight:700;display:grid}.cal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .day{aspect-ratio:1;background:var(--bg);color:var(--text-faint);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:12px;display:flex}.cal .day.today{outline:2px solid var(--accent)}.cal .day .dots{letter-spacing:1px;font-size:9px;line-height:1}.cal .day.full{background:var(--accent-soft);color:var(--text);font-weight:800}#screen-timer{z-index:40;background:linear-gradient(160deg, var(--t-bg1), var(--t-bg2));color:var(--t-ink);padding:calc(14px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.t-top{align-items:center;width:100%;max-width:480px;display:flex}.t-quit{color:var(--t-ink);cursor:pointer;background:#ffffff38;border:0;border-radius:999px;padding:8px 14px;font-family:inherit;font-size:14px;font-weight:800}.t-time{font-variant-numeric:tabular-nums;margin-left:auto;font-size:34px;font-weight:800}.t-zone{text-shadow:0 2px 8px #00000026;margin-top:14px;font-size:30px;font-weight:900}.t-how{opacity:.95;min-height:28px;margin-top:6px;font-size:18px;font-weight:700}.t-mouth{width:min(76vw,320px);margin:auto;position:relative}.t-mouth svg{width:100%;height:auto;display:block}.m-face{fill:#ffffff2e}#m-upper rect,#m-lower rect{fill:#ffffff8c;transition:fill .3s}#m-upper.on rect,#m-lower.on rect{fill:#fff}#m-gumline-up,#m-gumline-low{stroke:#ffe65a00;stroke-width:4px;stroke-linecap:round;transition:stroke .3s}#m-gumline-up.on,#m-gumline-low.on{stroke:#ffe65a}#m-tongue{fill:#ff8ca080;transition:fill .3s}#m-tongue.on{fill:#ff8ca0}.scrub{width:0;height:0;transition:left .45s,top .45s;position:absolute}.scrub .spin{animation:1s linear infinite kit-rot}.scrub .arm{transform:translate(12px)}.scrub .brush{filter:drop-shadow(0 2px 4px #00000040);margin:-16px 0 0 -16px;font-size:32px;animation:1s linear infinite reverse kit-rot;display:inline-block}.scrub.line .spin{animation:none}.scrub.line .arm{animation:.9s ease-in-out infinite kit-stroke-y;transform:none}.scrub.line .brush{animation:none}@keyframes kit-rot{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes kit-stroke-y{0%{transform:translateY(-11px)}50%{transform:translateY(13px)}to{transform:translateY(-11px)}}.t-bar{background:#ffffff40;border-radius:6px;width:100%;max-width:480px;height:12px;margin-top:auto;overflow:hidden}.t-fill{background:#ffe65a;width:0%;height:100%;transition:width .25s linear}.t-step{opacity:.9;margin-top:8px;font-size:14px;font-weight:800}#overlay-praise{z-index:50;background:#08283cc7;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}#overlay-praise.show{display:flex}.p-box{background:var(--surface);text-align:center;width:100%;max-width:340px;box-shadow:var(--shadow);border-radius:22px;padding:30px 24px}.p-burst{font-size:56px;animation:.6s kit-pop}.p-box h2{margin-top:8px;font-size:24px;font-weight:900}.p-msg{color:var(--text-sub);margin:8px 0 14px;font-size:16px}.p-stamp{margin-bottom:16px;font-size:44px;animation:.5s .3s backwards kit-stamp}@keyframes kit-pop{0%{transform:scale(.3)}70%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes kit-stamp{0%{opacity:0;transform:scale(2.2)rotate(-14deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.scrub,.scrub .spin,.scrub .arm,.scrub .brush,.p-burst,.p-stamp{transition:none!important;animation:none!important}}
