
:root{--sky:#3b9dd7;--coral:#e82e61;--ink:#1a1d28;--panel:#fff;--line:#c9cad3;--bg:#edeff4}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
header{background:var(--ink);color:#fff;padding:.9rem 1.4rem;display:flex;
  align-items:center;gap:1rem}
header b{font-weight:800;letter-spacing:-.02em}
header .who{margin-left:auto;font-size:.85rem;opacity:.75}
main{max-width:52rem;margin:2rem auto;padding:0 1.2rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.6rem}
h1{font-size:1.35rem;margin:0 0 1rem;letter-spacing:-.02em}
label{display:block;margin:.9rem 0 .3rem;font-size:.85rem;font-weight:600}
input{width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:7px;
  font-size:1rem;background:#fff;color:var(--ink)}
input:focus{outline:2px solid var(--sky);outline-offset:1px}
button{margin-top:1.2rem;width:100%;padding:.7rem;border:0;border-radius:7px;
  background:var(--sky);color:#fff;font-size:1rem;font-weight:700;cursor:pointer}
button:hover{background:#2f8fca}
.err{margin:0 0 1rem;padding:.7rem .85rem;border-radius:7px;
  background:#fdeaf0;color:#b0173f;border:1px solid #f3c2d1;font-size:.9rem}
.logout{margin-left:.6rem}
.logout button{width:auto;margin:0;padding:.3rem .7rem;font-size:.8rem;background:#3a3f52}
footer{max-width:52rem;margin:1.4rem auto;padding:0 1.2rem;font-size:.78rem;opacity:.6}
main.wide{max-width:60rem}
.capture{display:flex;gap:.6rem;align-items:stretch}
.capture input{flex:1;font-size:1.05rem}
.capture button{margin:0;width:auto;padding:0 1.4rem}
.hint{margin:.55rem 0 0;font-size:.8rem;color:#5b6274}
.hint code{background:var(--bg);padding:.1rem .35rem;border-radius:4px}
.stats{display:flex;gap:1.6rem;margin:1.4rem 0 0;flex-wrap:wrap}
.stat b{display:block;font-size:1.5rem;letter-spacing:-.02em}
.stat span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#5b6274}
.day{margin:1.8rem 0 .5rem;font-size:.8rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:#5b6274;border-bottom:1px solid var(--line);padding-bottom:.35rem}
.entry{display:flex;gap:.9rem;align-items:baseline;padding:.55rem 0;
  border-bottom:1px solid #eef0f4}
.entry .meta{font-size:.78rem;color:#5b6274;white-space:nowrap;min-width:5.5rem}
.entry .txt{flex:1}
.entry .proj{display:inline-block;font-size:.72rem;background:#e7f2fa;color:#1d6b9c;
  padding:.1rem .45rem;border-radius:4px;margin-right:.4rem}
.entry .tag{font-size:.72rem;color:#8b90a0;margin-left:.35rem}
.entry form{margin:0}
.entry button{margin:0;width:auto;padding:.15rem .5rem;font-size:.72rem;background:none;
  color:#b0b4c0;border:1px solid transparent}
.entry button:hover{background:var(--coral);color:#fff}
.empty{color:#5b6274;font-style:italic;margin:1.6rem 0}
nav.tabs{display:flex;gap:1.2rem;margin-left:1.4rem}
nav.tabs a{color:#c9cad3;text-decoration:none;font-size:.9rem}
nav.tabs a:hover,nav.tabs a.on{color:#fff;text-decoration:underline}
table{width:100%;border-collapse:collapse;margin-top:1rem}
th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;
  color:#5b6274;padding:.4rem .5rem;border-bottom:1px solid var(--line)}
td{padding:.55rem .5rem;border-bottom:1px solid #eef0f4;vertical-align:top}
td a{color:#1d6b9c;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.8rem}
.grid label{margin:0 0 .25rem}
.inline{display:inline;margin:0}
.inline button{width:auto;margin:0;padding:.2rem .55rem;font-size:.72rem;background:#3a3f52}
.inline button.danger{background:none;color:#b0b4c0;border:1px solid transparent}
.inline button.danger:hover{background:var(--coral);color:#fff}
.pill{font-size:.7rem;padding:.1rem .45rem;border-radius:4px;background:#e7f2fa;color:#1d6b9c}
.pill.done{background:#eef0f4;color:#5b6274}
.pill.paused{background:#fdf3e7;color:#9a6516}
.muted{color:#5b6274;font-size:.85rem}
h3.sect{margin:2rem 0 .4rem;font-size:1rem}
.blk{border:1px solid var(--line);border-radius:10px;margin:1.2rem 0;overflow:hidden}
.blk>header{display:flex;gap:.7rem;align-items:baseline;padding:.7rem 1rem;
  background:#f6f8fb;border-bottom:1px solid #eef0f4;position:static}
.blk>header b{font-size:.95rem}
.blk>header .n{font-size:.7rem;font-weight:700;color:#fff;background:var(--sky);
  border-radius:4px;padding:.1rem .4rem}
.blk>header .sub{margin-left:auto;font-size:.75rem;color:#8b90a0}
.blk .body{padding:1rem}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.8rem}
.g1{display:grid;gap:.8rem}
select{width:100%;padding:.55rem .6rem;border:1px solid var(--line);border-radius:7px;
  font-size:.95rem;background:#fff;color:var(--ink)}
textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:7px;
  font:inherit;font-size:.95rem;min-height:4.2rem;resize:vertical;background:#fff;color:var(--ink)}
.acts{display:grid;gap:.3rem}
.act{display:flex;gap:.55rem;align-items:flex-start;font-size:.88rem;padding:.15rem 0}
.act input{width:auto;margin:.25rem 0 0}
.act .min{margin-left:auto;font-size:.72rem;color:#8b90a0;white-space:nowrap}
.topic{margin:.9rem 0 .3rem;font-size:.8rem;font-weight:700;color:#5b6274}
.cmp{border:1px solid #eef0f4;border-radius:8px;padding:.7rem .8rem;margin:.5rem 0}
.cmp .nm{font-size:.86rem;font-weight:650;margin-bottom:.1rem}
.cmp .gen{font-size:.76rem;color:#8b90a0;margin-bottom:.45rem}
.scale{display:flex;gap:.25rem}
.scale label{flex:1;margin:0;text-align:center;font-size:.7rem;font-weight:600;
  border:1px solid var(--line);border-radius:6px;padding:.3rem .1rem;cursor:pointer;
  background:#fff;color:#8b90a0}
.scale input{display:none}
.scale input:checked+span{color:#fff}
.scale label:has(input:checked){background:var(--sky);border-color:var(--sky);color:#fff}
.scale label.target{border-color:var(--sky);border-style:dashed}
.scale label.target::after{content:" CF";font-size:.6rem;color:var(--sky)}
.pace{display:flex;gap:.25rem}
.pace label{flex:1;margin:0;text-align:center;font-size:.72rem;font-weight:600;
  border:1px solid var(--line);border-radius:6px;padding:.35rem .2rem;cursor:pointer;
background:#fff}
.pace label:has(input:checked){background:#3a3f52;border-color:#3a3f52;color:#fff}
.pace input{display:none}
.warnbox{border-left:3px solid var(--coral);background:#fdeaf0;padding:.65rem .8rem;
  border-radius:0 7px 7px 0;font-size:.85rem;margin:.6rem 0}
.linkrow{display:grid;grid-template-columns:9rem 1fr 9rem;gap:.4rem;margin-bottom:.35rem}
.langbar{margin-left:.8rem;font-size:.78rem}
.langbar a{color:#c9cad3;text-decoration:none;border:1px solid #3a3f52;
  padding:.1rem .4rem;border-radius:4px}
.langbar a:hover{color:#fff}
.hint{font-size:.78rem;color:#8b90a0;margin:.3rem 0 0}
