:root{--bg:#0f1420;--card:#171e2e;--fg:#e6e9f0;--mut:#9aa3b5;--acc:#7fb8a4;--dan:#d9826b;--r:14px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 system-ui,-apple-system,"Noto Sans TC","PingFang TC",sans-serif;min-height:100%}
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
main{flex:1;width:100%;max-width:560px;margin:0 auto;padding:1rem 1.25rem}
.top{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;max-width:560px;margin:0 auto;width:100%}
.brand{color:var(--mut);letter-spacing:.1em}
h1{font-size:1.6rem;line-height:1.35;font-weight:600;margin:1.5rem 0 .5rem}
h2{font-size:1rem;color:var(--mut);font-weight:500}
.sub{color:var(--mut)}
button{font:inherit;border-radius:var(--r);border:1px solid #2c364c;background:var(--card);color:var(--fg);padding:.7rem 1.1rem;cursor:pointer;min-height:44px}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.primary{background:var(--acc);color:#0b1a14;border:none;font-weight:600}
.big{width:100%;font-size:1.3rem;padding:1.1rem;margin:1.2rem 0 .4rem}
.ghost{background:transparent}
.small{font-size:.85rem;padding:.4rem .8rem;min-height:36px}
.danger{background:transparent;border-color:#5a3a33;color:var(--dan);font-size:.9rem}
.durations{border:none;padding:0;margin:1.2rem 0 0;display:flex;gap:.5rem;flex-wrap:wrap}
.durations legend{color:var(--mut);margin-bottom:.4rem;font-size:.9rem}
.durations label{flex:1}
.durations input{position:absolute;opacity:0}
.durations span{display:block;text-align:center;padding:.7rem;border:1px solid #2c364c;border-radius:var(--r);cursor:pointer}
.durations input:checked+span{border-color:var(--acc);color:var(--acc);background:#14241f}
.durations input:focus-visible+span{outline:3px solid var(--acc)}
.hint{color:var(--mut);font-size:.85rem;text-align:center;min-height:1.2em}
.row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}
.history{margin-top:2rem}
.history ul{list-style:none;padding:0;margin:0}
.history li{background:var(--card);border-radius:var(--r);padding:.7rem .9rem;margin:.5rem 0;font-size:.9rem}
.history li .meta{color:var(--mut);font-size:.8rem}
#session{min-height:75vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem;position:relative}
#session[hidden],.screen[hidden]{display:none}
.clock{font-size:clamp(4rem,22vw,8rem);font-weight:200;font-variant-numeric:tabular-nums;letter-spacing:.02em;z-index:1}
.breath{position:absolute;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#1d3a33 0%,transparent 70%);animation:breathe 8s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(.8);opacity:.5}50%{transform:scale(1.15);opacity:1}}
.gentle{color:var(--mut);max-width:22em;z-index:1}
.counter{color:var(--mut);font-size:.9rem;z-index:1}
.stat{background:var(--card);border-radius:var(--r);padding:.8rem 1rem;font-size:.9rem}
.q{display:block;margin:1.2rem 0 .4rem;font-size:1.2rem}
.small-q{font-size:.95rem;color:var(--mut)}
textarea{width:100%;font:inherit;background:var(--card);color:var(--fg);border:1px solid #2c364c;border-radius:var(--r);padding:.7rem}
footer{color:#6b7488;font-size:.75rem;text-align:center;padding:1rem}
body.in-session .top,body.in-session footer{visibility:hidden}
@media (prefers-reduced-motion:reduce){.breath{animation:none;opacity:.7}*{transition:none!important}}
