:root{--bg:#090d18;--panel:#111827e8;--panel2:#161e2f;--border:#263044;--text:#f5f7fb;--muted:#8f9bb0;--accent:#8b9cff;--accent2:#b9c2ff;--work:#55c2ff;--school:#9d8cff;--fitness:#52d69b;--meal:#ffbf69;--personal:#ef83ff;--free:#7ce0dc;--danger:#ff7777}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,#172143 0,transparent 34%),radial-gradient(circle at 90% 5%,#22204b 0,transparent 26%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.hidden{display:none!important}.app{width:min(1180px,calc(100% - 28px));margin:auto;padding:34px 0 60px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px}.eyebrow,.label{margin:0 0 7px;color:var(--accent2);font-size:.7rem;font-weight:800;letter-spacing:.16em}.topbar h1{font-size:clamp(2rem,5vw,4.2rem);letter-spacing:-.055em;line-height:.95;margin:0}.muted{color:var(--muted);margin:10px 0 0}.header-actions,.timer-actions,.form-actions,.mode-buttons{display:flex;gap:8px;flex-wrap:wrap}.card{background:linear-gradient(180deg,#141c2cdd,#0f1624dd);border:1px solid var(--border);border-radius:22px;padding:20px;box-shadow:0 20px 60px #0005;backdrop-filter:blur(16px)}.status-grid{display:grid;grid-template-columns:1.6fr .75fr .75fr;gap:12px;margin-bottom:12px}.now-card{min-height:150px;display:flex;flex-direction:column;justify-content:center}.now-title{font-size:clamp(1.7rem,4vw,2.7rem);letter-spacing:-.04em;margin:0}.now-sub{color:var(--muted);font-size:.82rem;margin-top:7px}.countdown{color:var(--accent2);font-weight:800;margin-top:14px}.metric{display:flex;flex-direction:column;justify-content:center}.metric strong{font-size:1.7rem;letter-spacing:-.04em}.metric span{font-size:.76rem;color:var(--muted);margin-top:6px}.main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:12px}.column{display:flex;flex-direction:column;gap:12px}.side{position:sticky;top:12px;align-self:start}.card-head,.week-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card h2,.week-head h2{margin:0;font-size:1.15rem}.primary,.ghost,.add,.link-btn,.mode{border:0;border-radius:11px;font:inherit;font-weight:750;cursor:pointer}.primary{background:#f5f7fb;color:#101522;padding:10px 15px}.ghost{background:#ffffff0c;border:1px solid var(--border);color:var(--text);padding:10px 14px}.add{background:#8b9cff20;color:#cbd1ff;padding:8px 11px}.link-btn{background:transparent;color:var(--muted);padding:7px}.pill{font-size:.68rem;color:var(--muted);background:#ffffff0a;padding:6px 9px;border-radius:99px}.priority{display:grid;grid-template-columns:18px 28px minmax(0,1fr);gap:9px;align-items:center;background:#ffffff08;border:1px solid transparent;border-radius:14px;padding:10px;margin-top:8px}.priority:focus-within{border-color:#8b9cff77}.priority input[type=checkbox]{accent-color:var(--accent)}.priority.done{opacity:.5}.priority.done input[type=text]{text-decoration:line-through}.priority-number{height:25px;width:25px;display:grid;place-items:center;border-radius:8px;background:#8b9cff22;color:#cbd1ff;font-size:.7rem;font-weight:800}.priority input[type=text],.assignment-form input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.priority input[type=text]::placeholder,.assignment-form input::placeholder{color:#657188}.timeline{display:flex;flex-direction:column;gap:8px}.event{display:grid;grid-template-columns:74px 5px minmax(0,1fr) 22px;gap:11px;align-items:center;background:#ffffff07;border:1px solid transparent;padding:10px 11px;border-radius:14px}.event.current{border-color:#8b9cff88;background:#8b9cff14}.event.finished{opacity:.43}.event time{font-size:.7rem;color:var(--muted)}.event-bar{height:32px;border-radius:99px}.event strong{font-size:.86rem}.event small{display:block;color:var(--muted);font-size:.66rem;margin-top:3px}.status-mark{font-size:.8rem;color:var(--accent2);font-weight:900}.work .event-bar,.badge.work{background:var(--work)}.school .event-bar,.badge.school{background:var(--school)}.fitness .event-bar,.badge.fitness{background:var(--fitness)}.meal .event-bar,.badge.meal{background:var(--meal)}.personal .event-bar,.badge.personal{background:var(--personal)}.free .event-bar,.badge.free{background:var(--free)}.timer-ring{width:190px;aspect-ratio:1;border-radius:50%;margin:16px auto 18px;display:grid;place-items:center;background:radial-gradient(circle,#141c2c 58%,transparent 59%),conic-gradient(var(--accent) var(--timer-progress,0%),#273149 0);box-shadow:inset 0 0 35px #0006}.timer-ring div{text-align:center}.timer-ring strong{display:block;font-size:2.5rem;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.timer-ring span{display:block;color:var(--muted);font-size:.75rem;margin-top:3px}.mode-buttons{justify-content:center}.mode{background:#ffffff0a;color:var(--muted);padding:8px 10px;font-size:.72rem}.mode.active{background:#8b9cff24;color:#d9ddff}.timer-actions{justify-content:center;margin-top:14px}.assignment-form{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:8px}.assignment-form input{background:#ffffff08;border:1px solid var(--border);padding:10px;border-radius:10px}.assignment{display:grid;grid-template-columns:24px minmax(0,1fr) auto 22px;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #ffffff0b}.assignment:last-child{border-bottom:0}.assignment.done{opacity:.45}.assignment.done strong{text-decoration:line-through}.check,.delete{border:0;background:transparent;color:var(--text);cursor:pointer}.check{width:24px;height:24px;border:1px solid var(--border);border-radius:8px}.delete{color:#69758b;font-size:1.1rem}.assignment strong{display:block;font-size:.82rem}.assignment small{display:block;color:var(--muted);font-size:.67rem;margin-top:3px}.due{font-size:.62rem;padding:5px 7px;border-radius:99px;background:#ffffff0a;color:var(--muted);white-space:nowrap}.due.urgent{background:#ff77771a;color:#ff9b9b}.due.soon{background:#ffbf6918;color:#ffd28f}.empty{color:var(--muted);font-size:.78rem;padding:10px 0}.week-head{margin:8px 0 14px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:10px;overflow-x:auto;padding-bottom:10px}.day{background:#111827e8;border:1px solid var(--border);border-radius:18px;padding:13px;min-height:260px}.day.today{border-color:#8b9cff88}.day h3{margin:0 0 10px}.mini-event{background:#ffffff07;border-radius:10px;padding:8px;margin-bottom:7px}.mini-event div{display:flex;gap:7px;align-items:center}.badge{width:7px;height:7px;border-radius:50%}.mini-event strong{font-size:.7rem}.mini-event time{display:block;color:var(--muted);font-size:.62rem;margin-top:4px}.lock-screen{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 0,#222c58 0,transparent 40%),#080c16;z-index:20}.lock-card{width:min(380px,100%);background:#111827e8;border:1px solid var(--border);border-radius:26px;padding:28px;box-shadow:0 30px 80px #0008;text-align:center}.logo{width:54px;height:54px;border-radius:17px;background:linear-gradient(145deg,#9aa8ff,#6d7cff);color:white;display:grid;place-items:center;font-size:1.5rem;font-weight:900;margin:0 auto 18px}.lock-card h1{margin:0;font-size:2rem}.lock-card form{display:flex;flex-direction:column;gap:9px;margin-top:20px}.lock-card input{font:inherit;text-align:center;letter-spacing:.18em;padding:13px;border-radius:12px;border:1px solid var(--border);background:#ffffff08;outline:0}.lock-card input:focus{border-color:#8b9cff88}.error{min-height:20px;color:var(--danger);font-size:.76rem}.tiny{font-size:.65rem;color:#657188;line-height:1.4}.shake{animation:shake .28s linear}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@media(max-width:900px){.status-grid{grid-template-columns:1fr 1fr}.now-card{grid-column:1/-1}.main-grid{grid-template-columns:1fr}.side{position:static}.week-grid{grid-template-columns:repeat(7,220px)}}@media(max-width:600px){.app{width:min(100% - 16px,600px);padding-top:18px}.topbar{align-items:flex-start;flex-direction:column}.header-actions{width:100%}.header-actions button{flex:1}.status-grid{grid-template-columns:1fr}.now-card{grid-column:auto}.card{padding:16px;border-radius:18px}.event{grid-template-columns:66px 4px minmax(0,1fr) 18px}.timer-ring{width:170px}}

.time-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assignment-form select{width:100%;background:#ffffff08;border:1px solid var(--border);padding:10px;border-radius:10px;color:var(--text)}.event-delete{border:0;background:transparent;color:#69758b;cursor:pointer;font-size:1rem}.event-delete:hover,.delete:hover{color:var(--danger)}

.week-selector{background:#ffffff0c;border:1px solid var(--border);color:var(--text);border-radius:11px;padding:10px 12px;font:inherit;font-weight:700}.week-block-form{margin-bottom:12px}.week-form-grid{display:grid;grid-template-columns:1fr 2fr 1fr 1fr 1fr;gap:8px}.week-form-grid input,.week-form-grid select{width:100%;background:#ffffff08;border:1px solid var(--border);padding:10px;border-radius:10px;color:var(--text);font:inherit}.day-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px}.day-head h3{margin:0}.day-head small{color:var(--muted);font-size:.68rem}.day-head .add{padding:6px 8px;font-size:.68rem}.mini-event .delete{margin-left:auto}@media(max-width:900px){.week-form-grid{grid-template-columns:1fr 1fr}.week-form-grid input:nth-child(2){grid-column:1/-1}}@media(max-width:600px){.week-form-grid{grid-template-columns:1fr}.week-form-grid input:nth-child(2){grid-column:auto}.week-head{align-items:flex-start;flex-direction:column}.week-head .header-actions{width:100%}.week-selector{flex:1}}


/* Work dashboard */
.work-header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.work-main-grid{grid-template-columns:minmax(0,2fr) minmax(280px,.75fr)}.work-status-grid{margin-bottom:14px}.work-day{border-top:2px solid #66d9b055}.work-mini{border-left:3px solid #66d9b0}.work-day.today{border-color:#66d9b0aa}.work-header .label,#workView .label{color:#7be0bd}@media(max-width:900px){.work-main-grid{grid-template-columns:1fr}}@media(max-width:600px){.work-header{align-items:flex-start;flex-direction:column}.work-header .header-actions{width:100%}}
