:root{
  --bg:#0e1116;
  --panel:#161a22;
  --panel-2:#1b2030;
  --line:#262c3a;
  --text:#e9ecf3;
  --muted:#8a93a6;
  --accent:#ff6363;
  --accent-2:#ff8a5c;
  --good:#5be29b;
  --gold:#f4c95d;
  --silver:#c9d1de;
  --bronze:#cd7f54;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,sans-serif;
  background:radial-gradient(1200px 600px at 80% -10%,rgba(255,99,99,.12),transparent 60%),
             radial-gradient(900px 500px at -10% 110%,rgba(91,226,155,.08),transparent 60%),
             var(--bg);
  color:var(--text);
  min-height:100vh;
}

header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px}
.logo{
  width:24px;height:24px;border-radius:7px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  box-shadow:0 0 24px rgba(255,99,99,.45);
}
h1{font-size:18px;margin:0;letter-spacing:.4px}
.who{color:var(--muted);font-size:14px}
.who b{color:var(--text);font-weight:600}
.who a{color:var(--muted);margin-left:10px;text-decoration:none;border-bottom:1px dashed var(--line)}
.who a:hover{color:var(--text)}

main{
  max-width:1180px;margin:0 auto;padding:24px 28px 60px;
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(280px,1fr);
  grid-template-rows:auto auto;
  gap:22px;
}
.timer-card{grid-column:1;grid-row:1;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:30px 28px}
.tasks-card{grid-column:2;grid-row:1 / span 2;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;min-height:520px}
.board-card{grid-column:1;grid-row:2;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px}

@media (max-width:880px){
  main{grid-template-columns:1fr}
  .timer-card,.tasks-card,.board-card{grid-column:1}
  .tasks-card{grid-row:auto;min-height:0}
}

/* Timer */
.modes{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.mode{
  background:var(--panel-2);color:var(--muted);border:1px solid var(--line);
  padding:8px 14px;border-radius:999px;cursor:pointer;font-size:13px;
}
.mode.active{color:var(--text);border-color:var(--accent);background:rgba(255,99,99,.08)}
.clock{
  font-variant-numeric:tabular-nums;
  font-size:140px;font-weight:700;letter-spacing:-3px;
  text-align:center;margin:10px 0 6px;line-height:1;
  background:linear-gradient(180deg,#fff,#cfd6e6);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.active-task{text-align:center;color:var(--muted);min-height:22px;margin-bottom:18px}
.active-task.has{color:var(--text)}
.controls{display:flex;gap:10px;justify-content:center;margin-bottom:24px}
button{
  font:inherit;cursor:pointer;border:1px solid var(--line);
  background:var(--panel-2);color:var(--text);
  padding:10px 18px;border-radius:10px;
}
button:hover{border-color:#3a4255}
button.primary{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#1b0c0c;border:0;font-weight:600;padding:10px 24px;
  box-shadow:0 6px 18px rgba(255,99,99,.35);
}
button.ghost{background:transparent}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stat{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.stat-num{font-size:26px;font-weight:700}
.stat-label{color:var(--muted);font-size:12px;margin-top:2px}

/* Tasks */
.tasks-card h2,.board-card h2{margin:0 0 14px;font-size:15px;letter-spacing:.4px;color:var(--muted);text-transform:uppercase}
.task-form{display:flex;gap:8px;margin-bottom:14px}
.task-form input{
  flex:1;background:var(--panel-2);color:var(--text);
  border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none;
}
.task-form input:focus{border-color:var(--accent)}
.task-form button{padding:10px 14px}
.task-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}
.task-list li{
  display:flex;align-items:center;gap:10px;
  padding:10px 8px;border-bottom:1px solid var(--line);
}
.task-list li:last-child{border-bottom:0}
.task-list li.active{background:rgba(255,99,99,.06);border-radius:8px;border-bottom-color:transparent}
.task-list .check{
  width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;
}
.task-list .check.done{background:var(--good);border-color:var(--good);color:#06301c}
.task-list .label{flex:1;cursor:pointer;font-size:14px}
.task-list li.done .label{color:var(--muted);text-decoration:line-through}
.task-list .del{color:var(--muted);background:transparent;border:0;padding:4px 6px;border-radius:6px;font-size:14px}
.task-list .del:hover{color:var(--accent)}
.empty{color:var(--muted);font-size:13px;text-align:center;padding:18px 0}

/* Leaderboard */
.board-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.board-sub{color:var(--muted);font-size:12px}
.leaderboard{list-style:none;padding:0;margin:0}
.leaderboard li{
  display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;
  padding:10px 8px;border-bottom:1px solid var(--line);
}
.leaderboard li:last-child{border-bottom:0}
.rank{
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--panel-2);border:1px solid var(--line);font-weight:600;font-size:13px;
}
.rank.r1{background:rgba(244,201,93,.15);border-color:var(--gold);color:var(--gold)}
.rank.r2{background:rgba(201,209,222,.12);border-color:var(--silver);color:var(--silver)}
.rank.r3{background:rgba(205,127,84,.15);border-color:var(--bronze);color:var(--bronze)}
.lname{font-size:14px}
.lname.me{color:var(--accent);font-weight:600}
.lmin{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}
.lmin small{color:var(--muted);font-weight:400;margin-left:4px}

/* Modal */
.modal{
  position:fixed;inset:0;background:rgba(8,10,15,.7);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;
}
.modal.hidden{display:none}
.modal-card{
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:28px;max-width:420px;width:100%;
}
.modal-card h2{margin:0 0 6px;font-size:20px;color:var(--text);text-transform:none;letter-spacing:0}
.modal-card p{color:var(--muted);margin:0 0 16px;font-size:14px}
.modal-card form{display:flex;gap:8px}
.modal-card input{
  flex:1;background:var(--panel-2);color:var(--text);
  border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none;
}
.modal-card input:focus{border-color:var(--accent)}
.err{color:var(--accent);font-size:13px;min-height:18px;margin:8px 0 0!important}

body.running .clock{text-shadow:0 0 60px rgba(255,99,99,.35)}
