:root{
  color-scheme:dark;
  --bg:#090d12;--bg2:#0d131a;--surface:#111923;--surface2:#16212c;--surface3:#1b2935;
  --border:#263543;--border2:#334657;--text:#f3f7fa;--muted:#93a3b3;--muted2:#687889;
  --accent:#61ddb5;--accent2:#3bbd95;--blue:#63b7ff;--amber:#f0b65b;--orange:#f38d5c;--red:#ef6a70;--green:#5de29d;--purple:#9b8cff;
  --radius:14px;--radius-sm:9px;--shadow:0 12px 40px rgba(0,0,0,.28);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{min-height:100vh;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:active{transform:scale(.965)!important;transition-duration:.06s!important}.ui-icon{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.12em;overflow:visible}.drag-handle .ui-icon{width:13px;height:13px}button:disabled{opacity:.45;cursor:not-allowed}
::selection{background:rgba(97,221,181,.28)}
.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{height:68px;display:flex;align-items:center;gap:18px;padding:0 22px;border-bottom:1px solid var(--border);background:rgba(9,13,18,.92);backdrop-filter:blur(16px);position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:10px;min-width:190px}.brand-mark{width:34px;height:34px;border:4px solid var(--border2);border-right-color:var(--accent);border-top-color:var(--accent);border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:10px;transform:rotate(-18deg)}.brand-mark span{transform:rotate(18deg)}.brand h1{font-size:18px;margin:0;letter-spacing:-.03em}.brand small{display:block;color:var(--muted2);font-size:10px;margin-top:1px}
.nav{display:flex;gap:5px;flex:1}.nav button{border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:9px;display:flex;align-items:center;gap:8px;transition:.15s ease}.nav button:hover{background:var(--surface);color:var(--text)}.nav button.active{background:var(--surface2);color:var(--text)}
.top-actions{display:flex;align-items:center;gap:8px}.icon-btn,.soft-btn,.primary-btn,.danger-btn{border:1px solid var(--border);border-radius:10px;min-height:38px;padding:0 12px;background:var(--surface);transition:.15s ease}.icon-btn{width:38px;padding:0;display:grid;place-items:center}.soft-btn:hover,.icon-btn:hover{border-color:var(--border2);background:var(--surface2);transform:translateY(-1px)}.primary-btn{background:var(--accent);border-color:var(--accent);color:#07130f;font-weight:800}.primary-btn:hover{background:#79e7c2;transform:translateY(-1px)}.danger-btn{border-color:rgba(239,106,112,.35);color:#ff979c;background:rgba(239,106,112,.08)}
.content{padding:22px;max-width:1720px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:2px 0 20px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--accent);text-transform:uppercase}.page-head h2{font-size:28px;letter-spacing:-.04em;margin:4px 0}.page-head p{color:var(--muted);margin:0}.muted{color:var(--muted)}.tiny{font-size:11px;color:var(--muted2)}
.offline-banner{background:#5b3b17;border-bottom:1px solid #835922;color:#ffdba2;padding:7px 20px;text-align:center;font-size:12px;font-weight:700}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;box-shadow:0 0 0 0 rgba(93,226,157,0);transition:background .18s ease,box-shadow .18s ease,opacity .18s ease}.sync-dot.live{background:var(--green)}.sync-dot.connecting{background:var(--blue);animation:syncBreath 1.35s ease-in-out infinite}.sync-dot.reconnecting{background:var(--amber);animation:syncBreath 1.1s ease-in-out infinite}.sync-dot.offline{background:var(--amber);opacity:.72}.sync-dot.sync-flash{animation:syncFlash .5s ease-out}@keyframes syncBreath{0%,100%{opacity:.55;box-shadow:0 0 0 0 currentColor}50%{opacity:1;box-shadow:0 0 0 4px rgba(99,183,255,.08)}}@keyframes syncFlash{0%{box-shadow:0 0 0 0 rgba(93,226,157,.5)}100%{box-shadow:0 0 0 7px rgba(93,226,157,0)}}
.today-grid{display:grid;grid-template-columns:minmax(290px,360px) minmax(0,1fr);gap:18px;align-items:start}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 0 rgba(255,255,255,.02);overflow:hidden}.panel-head{padding:14px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h3{font-size:13px;margin:0}.panel-body{padding:14px}
.master-panel{position:sticky;top:90px;max-height:calc(100vh - 112px);display:flex;flex-direction:column}.master-panel .panel-body{overflow:auto}.search{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border);padding:0 10px;border-radius:9px}.search input{width:100%;border:0;background:transparent;outline:0;height:36px}.search i{color:var(--muted2)}
.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin-bottom:16px}.metric{background:linear-gradient(180deg,var(--surface),#0f171f);border:1px solid var(--border);border-radius:12px;padding:13px 14px}.metric .label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);font-weight:800}.metric strong{display:block;font-size:20px;margin-top:5px;letter-spacing:-.03em}.metric small{color:var(--muted);font-size:11px}
.hero-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:radial-gradient(circle at 6% 10%,rgba(97,221,181,.10),transparent 34%),var(--surface);border:1px solid var(--border);border-radius:16px;padding:17px 18px;margin-bottom:15px}.hero-card h3{margin:0 0 5px;font-size:18px}.hero-card p{margin:0;color:var(--muted);font-size:12px}.hero-card .xp{font-weight:900;font-size:20px;color:var(--accent);white-space:nowrap}.hero-card .xp small{display:block;color:var(--muted2);font-size:10px;text-align:right}
.progress-ring{--p:0;--ring:var(--accent);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--ring) calc(var(--p)*1%),var(--border) 0);transition:filter .28s ease,transform .28s cubic-bezier(.2,.8,.2,1);flex:0 0 auto;will-change:transform,filter}.progress-ring:after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--surface)}.progress-ring span{position:relative;z-index:2;font-size:12px;font-weight:900}.progress-ring.small{width:34px;height:34px}.progress-ring.small:after{inset:3px}.progress-ring.small span{font-size:9px}.progress-ring.big{width:76px;height:76px}.progress-ring.big:after{inset:6px}.progress-ring.big span{font-size:16px}.progress-ring[data-complete="true"]{--ring:var(--green);filter:drop-shadow(0 0 10px rgba(93,226,157,.16))}.progress-ring.progress-complete-pop{animation:ringComplete .62s cubic-bezier(.18,.88,.25,1.2)}@keyframes ringComplete{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(93,226,157,0))}45%{transform:scale(1.12);filter:drop-shadow(0 0 15px rgba(93,226,157,.38))}100%{transform:scale(1);filter:drop-shadow(0 0 10px rgba(93,226,157,.16))}}
.active-card{border:1px solid rgba(97,221,181,.35);background:linear-gradient(90deg,rgba(97,221,181,.08),transparent),var(--surface);border-radius:13px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.active-card .timer{font-variant-numeric:tabular-nums;font-size:23px;font-weight:800;letter-spacing:.02em}.active-card .active-title{font-weight:750}.active-card.break-active{border-color:rgba(240,182,91,.4);background:linear-gradient(90deg,rgba(240,182,91,.08),transparent),var(--surface)}
.blocks{display:grid;gap:11px}.time-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .16s ease,transform .16s ease}.time-block.current{border-color:rgba(97,221,181,.6);box-shadow:0 0 0 1px rgba(97,221,181,.08) inset}.time-block.drag-over{border-color:var(--blue);transform:scale(1.003)}.block-header{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}.block-time{font-variant-numeric:tabular-nums;font-weight:800;font-size:12px;color:var(--muted)}.block-title{display:flex;align-items:center;gap:9px}.block-title strong{font-size:13px;letter-spacing:.02em}.kind-pill{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted2);border:1px solid var(--border);border-radius:999px;padding:3px 6px}.block-actions{display:flex;align-items:center;gap:7px}.block-actions select,.block-actions button,.mode-switch button{height:31px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);font-size:11px;padding:0 9px}.block-body{padding:11px 13px}.block-progress{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.block-progress .mini-bar{height:4px;background:var(--border);border-radius:99px;flex:1;overflow:hidden}.mini-bar span{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .58s cubic-bezier(.2,.8,.2,1);will-change:width}.capacity{font-size:10px;color:var(--muted2);white-space:nowrap}.capacity.over{color:var(--red)}
.routine-list,.allocation-list,.task-list{display:grid;gap:4px}.check-row,.task-row,.allocation-row{min-height:43px;display:flex;align-items:center;gap:9px;padding:6px 8px;border:1px solid transparent;border-radius:9px;transition:.12s ease}.task-row:hover,.allocation-row:hover{background:var(--surface2);border-color:var(--border)}.check-row:hover{background:rgba(255,255,255,.02)}.check{appearance:none;width:18px;height:18px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);display:grid;place-items:center;transition:.12s ease}.check:checked{background:var(--accent);border-color:var(--accent)}.check:checked:after{content:"✓";font-weight:1000;color:#06130e;font-size:12px}.drag-handle{color:var(--muted2);cursor:grab;width:15px;text-align:center;touch-action:none}.drag-handle:active{cursor:grabbing}.task-main{min-width:0;flex:1}.task-title{font-size:12px;font-weight:680;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-meta{display:flex;gap:6px;align-items:center;margin-top:3px;font-size:9px;color:var(--muted2);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;padding:2px 6px;background:rgba(255,255,255,.02);font-size:9px}.chip.project{border-color:color-mix(in srgb,var(--project-color) 35%,var(--border));color:var(--project-color)}.priority{font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.priority-low{color:#7f91a2}.priority-normal{color:#6ec5ff}.priority-high{color:#f0b65b}.priority-urgent{color:#ff777e}.task-actions{display:flex;align-items:center;gap:4px;opacity:.5}.task-row:hover .task-actions,.allocation-row:hover .task-actions{opacity:1}.task-actions button{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--muted)}.task-actions button:hover{background:var(--surface3);color:var(--text)}.task-indent{border-left:1px solid var(--border);margin-left:13px;padding-left:8px}.empty{padding:22px;text-align:center;color:var(--muted2);font-size:11px;border:1px dashed var(--border);border-radius:10px}.empty i{display:block;font-size:20px;margin-bottom:7px}

.check-row.just-completed,.allocation-row.just-completed{animation:completionWash .62s ease}
.check-row.just-completed .check{animation:checkPop .48s cubic-bezier(.18,.88,.25,1.25)}
@keyframes completionWash{0%{background:rgba(93,226,157,0)}40%{background:rgba(93,226,157,.10)}100%{background:rgba(93,226,157,0)}}
@keyframes checkPop{0%{transform:scale(.72)}55%{transform:scale(1.22);box-shadow:0 0 0 6px rgba(93,226,157,.08)}100%{transform:scale(1);box-shadow:none}}
.motion-number{font-variant-numeric:tabular-nums}
.quick-add{display:flex;gap:7px;margin-top:10px}.quick-add input{flex:1;min-width:0;height:36px;border:1px solid var(--border);background:var(--bg2);border-radius:9px;padding:0 10px;outline:0}.quick-add input:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent)}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar .search{min-width:260px;flex:1}.segmented{display:flex;border:1px solid var(--border);border-radius:9px;padding:2px;background:var(--bg2)}.segmented button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:7px 9px;border-radius:7px}.segmented button.active{background:var(--surface3);color:var(--text)}
.task-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.tree-panel{padding:8px}.tree-project{margin:6px 0 12px}.tree-project-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px;font-weight:800}.project-dot{width:8px;height:8px;border-radius:50%;background:var(--project-color)}
.diary-grid,.settings-grid,.stats-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:13px}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:1/-1}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px}.card h3{margin:0 0 12px;font-size:13px}.card h4{margin:0;font-size:12px}.stat-hero{display:flex;gap:18px;align-items:center}.stat-hero strong{font-size:25px}.stat-table{width:100%;border-collapse:collapse;font-size:11px}.stat-table th{text-align:left;color:var(--muted2);font-size:9px;text-transform:uppercase;letter-spacing:.07em;padding:7px 6px;border-bottom:1px solid var(--border)}.stat-table td{padding:9px 6px;border-bottom:1px solid rgba(38,53,67,.65)}.stat-table tr:last-child td{border-bottom:0}.bar-row{display:grid;grid-template-columns:130px 1fr 60px;gap:10px;align-items:center;margin:9px 0;font-size:11px}.bar{height:7px;background:var(--border);border-radius:99px;overflow:hidden}.bar span{height:100%;display:block;background:var(--accent);border-radius:99px;transition:width .58s cubic-bezier(.2,.8,.2,1);will-change:width}
.commitment{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;margin:7px 0;background:var(--bg2)}.commitment-time{font-variant-numeric:tabular-nums;font-weight:800;color:var(--muted);font-size:11px;width:92px}.commitment-main{flex:1}.commitment-main strong{font-size:12px}.commitment-main div{font-size:10px;color:var(--muted2);margin-top:2px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted2)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--border);background:var(--bg2);border-radius:9px;min-height:39px;padding:8px 10px;outline:0}.field textarea{min-height:88px;resize:vertical}.priority-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.priority-buttons button{display:block;position:relative;opacity:1;visibility:visible;transform:none;border:1px solid var(--border);background:var(--bg2);height:36px;border-radius:8px;font-size:9px;font-weight:900;text-transform:uppercase;animation:none}.priority-buttons button.selected{border-color:currentColor;background:var(--surface3)}.tag-checks{display:flex;gap:5px;flex-wrap:wrap}.tag-check{position:relative}.tag-check input{position:absolute;opacity:0}.tag-check span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:99px;padding:6px 8px;font-size:10px;color:var(--muted)}.tag-check input:checked+span{border-color:var(--tag-color);color:var(--tag-color);background:color-mix(in srgb,var(--tag-color) 10%,transparent)}
.dialog{width:min(620px,calc(100vw - 26px));max-height:90vh;border:1px solid var(--border2);border-radius:16px;padding:0;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.dialog[open]{animation:dialogIn .18s cubic-bezier(.2,.8,.2,1)}.dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(3px);animation:backdropIn .18s ease}@keyframes dialogIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}@keyframes backdropIn{from{opacity:0}to{opacity:1}}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid var(--border)}.dialog-head h3{margin:0;font-size:14px}.dialog-body{padding:17px;overflow:auto;max-height:calc(90vh - 120px)}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 17px;border-top:1px solid var(--border)}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 25%,rgba(97,221,181,.08),transparent 25%),var(--bg)}.login-card{width:min(410px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:var(--shadow)}.login-logo{display:grid;place-items:center;margin-bottom:16px}.login-logo .brand-mark{width:58px;height:58px}.login-card h1{text-align:center;margin:8px 0 2px;letter-spacing:-.04em}.login-card>p{text-align:center;color:var(--muted);font-size:12px;margin:0 0 22px}.login-card .field{margin:11px 0}.login-card .primary-btn{width:100%;height:42px;margin-top:9px}.login-error{color:#ff9da2;font-size:11px;text-align:center;min-height:16px;margin-top:8px}
#toast-root{position:fixed;right:18px;bottom:18px;display:grid;gap:8px;z-index:1000}.toast{background:#18232e;border:1px solid var(--border2);border-radius:10px;padding:10px 13px;box-shadow:var(--shadow);font-size:11px;animation:toastin .2s ease}.toast.error{border-color:rgba(239,106,112,.5)}@keyframes toastin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.desktop-only{display:initial}.mobile-only{display:none}.kbd{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid var(--border2);border-bottom-width:2px;border-radius:5px;padding:1px 5px;color:var(--muted)}
@media(max-width:980px){.today-grid{grid-template-columns:1fr}.master-panel{position:static;max-height:none}.summary-strip{grid-template-columns:repeat(2,1fr)}.task-page-grid{grid-template-columns:1fr}.diary-grid,.settings-grid,.stats-grid{display:block}.diary-grid>.card,.settings-grid>.card,.stats-grid>.card{margin-bottom:12px}.topbar{height:62px}.brand{min-width:auto}.brand small{display:none}.nav button span{display:none}.content{padding:15px}.block-header{grid-template-columns:100px 1fr}.block-actions{grid-column:1/-1;justify-content:flex-end}.desktop-only{display:none!important}.mobile-only{display:initial}}
@media(max-width:620px){.topbar{padding:0 12px;gap:7px}.brand h1{font-size:15px}.brand-mark{width:28px;height:28px}.nav{justify-content:center}.nav button{padding:8px 10px}.top-actions .soft-btn{display:none}.content{padding:11px}.page-head h2{font-size:23px}.page-head{align-items:start}.summary-strip{gap:7px}.metric{padding:10px}.metric strong{font-size:16px}.hero-card{grid-template-columns:auto 1fr;padding:13px}.hero-card>.xp{grid-column:2}.block-header{grid-template-columns:82px 1fr;padding:10px}.block-time{font-size:10px}.block-body{padding:8px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.priority-buttons{grid-template-columns:repeat(2,1fr)}.task-actions{opacity:1}.master-panel{display:none}.today-grid{display:block}.progress-ring.big{width:64px;height:64px}.bar-row{grid-template-columns:90px 1fr 48px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.drag-ghost{position:fixed;z-index:2000;pointer-events:none;width:min(330px,80vw);opacity:.92;transform:translate(-24px,-20px);background:var(--surface2);border:1px solid var(--accent);border-radius:10px;padding:9px 11px;box-shadow:var(--shadow);font-size:12px;font-weight:700}.touch-drop-target{outline:1px solid var(--blue);outline-offset:2px}

.error-detail{margin:14px 0;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:rgba(0,0,0,.22);color:var(--danger,#ff8f96);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-word;text-align:left}

/* v0.1.3 — behaviour + sleep tracking */
.behaviour-banner{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;border:1px solid rgba(240,182,91,.34);background:linear-gradient(90deg,rgba(240,182,91,.085),transparent 55%),var(--surface);border-radius:13px;padding:12px 14px;margin-bottom:12px;animation:softRise .22s cubic-bezier(.2,.8,.2,1)}
.behaviour-banner.active-overrun{border-color:rgba(240,143,91,.46);box-shadow:inset 3px 0 rgba(240,143,91,.7)}
.behaviour-banner.needs-reason{border-color:rgba(137,151,169,.34);background:linear-gradient(90deg,rgba(137,151,169,.07),transparent 55%),var(--surface)}
.behaviour-banner strong{font-size:12px}.behaviour-banner p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.behaviour-icon,.sleep-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(240,182,91,.1);color:#f0b65b}.behaviour-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.sleep-card{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(260px,1.4fr) auto;gap:14px;align-items:center;border:1px solid var(--border);background:linear-gradient(90deg,rgba(155,140,255,.07),transparent 46%),var(--surface);border-radius:13px;padding:12px 14px;margin-bottom:12px}.sleep-title{display:flex;gap:10px;align-items:center}.sleep-icon{background:rgba(155,140,255,.1);color:#b9adff}.sleep-title strong{font-size:12px}.sleep-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sleep-metrics>div,.sleep-stat-grid>div{background:rgba(255,255,255,.018);border:1px solid rgba(255,255,255,.045);border-radius:9px;padding:7px 9px}.sleep-metrics span,.sleep-stat-grid span{display:block;color:var(--muted2);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.sleep-metrics strong,.sleep-stat-grid strong{display:block;font-size:13px;margin-top:2px}.sleep-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.reason-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.reason-btn{min-height:34px;border:1px solid var(--border2);background:var(--surface2);color:var(--muted);border-radius:9px;padding:6px 8px;font:inherit;font-size:10px;font-weight:700;cursor:pointer;transition:transform .13s ease,border-color .15s ease,background .15s ease,color .15s ease}.reason-btn:hover{transform:translateY(-1px);border-color:rgba(97,221,181,.45);color:var(--text)}.reason-btn.selected{background:rgba(97,221,181,.1);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px rgba(97,221,181,.1)}
.sleep-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sleep-stat-grid strong{font-size:18px}.insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.insight{display:flex;gap:9px;align-items:flex-start;background:rgba(97,221,181,.045);border:1px solid rgba(97,221,181,.12);border-radius:10px;padding:10px;color:var(--muted);font-size:11px;line-height:1.5}.insight .ui-icon{color:var(--accent);flex:0 0 auto;margin-top:1px}.warning-text{color:#f0b65b;margin-top:9px}
@keyframes softRise{from{opacity:.7;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:980px){.sleep-card{grid-template-columns:1fr}.sleep-actions{justify-content:flex-start}.behaviour-banner{grid-template-columns:auto 1fr}.behaviour-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:620px){.reason-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sleep-metrics,.sleep-stat-grid{grid-template-columns:repeat(2,1fr)}.insight-grid{grid-template-columns:1fr}.behaviour-banner{grid-template-columns:1fr}.behaviour-icon{display:none}}


/* v0.1.4 — routine blocks are flexible completion windows */
.window-stat-list{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.window-stat{display:grid;grid-template-columns:minmax(120px,1.4fr) repeat(3,minmax(80px,1fr));gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg2)}
.window-stat>div{display:grid;gap:2px}.window-stat span{font-size:9px;color:var(--muted2);text-transform:uppercase;letter-spacing:.05em}.window-stat strong{font-size:12px}
@media(max-width:620px){.window-stat{grid-template-columns:1fr 1fr}.window-stat>div:first-child{grid-column:1/-1}}


/* v0.1.5 — positive encouragements + schedule nudges */
#encouragement-root{position:fixed;right:18px;bottom:74px;width:min(390px,calc(100vw - 28px));z-index:1100;pointer-events:none}
.encouragement-card{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:start;background:linear-gradient(135deg,rgba(97,221,181,.11),rgba(155,140,255,.045) 54%,transparent),#14202a;border:1px solid rgba(97,221,181,.34);border-radius:15px;padding:13px 12px;box-shadow:0 18px 54px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.025) inset;animation:nudgeIn .34s cubic-bezier(.18,.89,.3,1.18)}
.encouragement-card.block_start,.encouragement-card.block_end,.encouragement-card.block_transition{background:linear-gradient(135deg,rgba(99,183,255,.095),transparent 58%),#14202a;border-color:rgba(99,183,255,.3)}
.encouragement-card.ready{background:linear-gradient(135deg,rgba(240,182,91,.1),rgba(97,221,181,.04) 62%),#14202a;border-color:rgba(240,182,91,.31)}
.nudge-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--accent);background:rgba(97,221,181,.095);box-shadow:0 0 22px rgba(97,221,181,.07)}
.block_start .nudge-icon,.block_end .nudge-icon,.block_transition .nudge-icon{color:var(--blue);background:rgba(99,183,255,.09)}.ready .nudge-icon{color:var(--amber);background:rgba(240,182,91,.09)}
.nudge-copy{min-width:0}.nudge-scope{font-size:8px;letter-spacing:.13em;font-weight:900;color:var(--muted2);margin:1px 0 3px}.nudge-copy strong{display:block;font-size:12px;line-height:1.3}.nudge-copy p{margin:4px 0 0;color:var(--muted);font-size:10.5px;line-height:1.48}.nudge-close{width:27px;height:27px;border:0;border-radius:8px;background:transparent;color:var(--muted2);display:grid;place-items:center}.nudge-close:hover{background:rgba(255,255,255,.05);color:var(--text)}
@keyframes nudgeIn{0%{opacity:0;transform:translateY(12px) scale(.97)}65%{opacity:1;transform:translateY(-2px) scale(1.006)}100%{transform:none}}
.nudge-history-btn{position:relative}.nudge-history{display:grid;gap:8px}.nudge-history-row{display:grid;grid-template-columns:auto 1fr;gap:10px;border:1px solid var(--border);border-radius:11px;padding:10px;background:var(--bg2)}.nudge-history-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--accent);background:rgba(97,221,181,.08)}.nudge-history-row strong{font-size:11px}.nudge-history-row p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.settings-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.settings-title-row h3{margin-bottom:3px}.settings-title-row p{margin:0;font-size:10px}.status-pill{font-size:8px;font-weight:900;letter-spacing:.08em;padding:4px 7px;border:1px solid var(--border2);border-radius:99px;color:var(--muted2)}.status-pill.on{color:var(--accent);border-color:rgba(97,221,181,.35);background:rgba(97,221,181,.06)}
.toggle-row{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--border);border-radius:10px;padding:9px 10px;background:rgba(255,255,255,.012);cursor:pointer}.toggle-row.full{grid-column:1/-1}.toggle-row input{accent-color:var(--accent);margin-top:2px}.toggle-row span{display:grid;gap:2px}.toggle-row strong{font-size:10px}.toggle-row small{font-size:9px;color:var(--muted2);line-height:1.4}.notification-permission{display:flex;align-items:center;gap:8px;min-height:39px}.notification-permission>span{flex:1;font-size:10px;color:var(--muted)}.notification-permission .soft-btn{min-height:32px}
@media(max-width:620px){#encouragement-root{left:12px;right:12px;bottom:68px;width:auto}.encouragement-card{grid-template-columns:auto 1fr auto;padding:11px}.nudge-icon{width:34px;height:34px}.encouragement-settings .form-grid{grid-template-columns:1fr}.toggle-row.full{grid-column:auto}}

/* v0.2.0 — Life XP levels, prestiges and graded achievements */
.rank-chip{height:38px;min-width:76px;border:1px solid rgba(155,140,255,.28);background:linear-gradient(135deg,rgba(155,140,255,.09),rgba(97,221,181,.035)),var(--surface);border-radius:10px;padding:5px 8px;display:grid;grid-template-columns:auto auto;grid-template-rows:auto 3px;align-items:center;column-gap:6px;color:var(--text);transition:transform .15s ease,border-color .15s ease,box-shadow .2s ease}.rank-chip:hover{transform:translateY(-1px);border-color:rgba(155,140,255,.55);box-shadow:0 0 22px rgba(155,140,255,.08)}.rank-chip-p{font-size:8px;color:#b8abff;font-weight:900;letter-spacing:.06em}.rank-chip strong{font-size:13px;text-align:right}.rank-chip-bar{grid-column:1/-1;height:3px;border-radius:99px;background:var(--border);overflow:visible;position:relative}.rank-chip-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--purple),#68c6ff,var(--accent));background-size:180% 100%;border-radius:inherit;position:relative;will-change:width,filter,transform;box-shadow:0 0 0 transparent}
.prestige-btn{min-height:38px;border:1px solid rgba(181,140,255,.55);border-radius:10px;padding:0 13px;color:#f4efff;font-weight:850;background:linear-gradient(110deg,rgba(155,140,255,.30),rgba(97,221,181,.10),rgba(155,140,255,.24));background-size:220% 100%;box-shadow:0 0 28px rgba(155,140,255,.08);transition:transform .15s ease,box-shadow .2s ease,background-position .7s ease}.prestige-btn:hover{transform:translateY(-1px);box-shadow:0 0 32px rgba(155,140,255,.2);background-position:100% 0}
.progression-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(280px,1fr) auto;gap:26px;align-items:center;padding:25px;background:radial-gradient(circle at 11% 8%,rgba(155,140,255,.17),transparent 33%),radial-gradient(circle at 78% 96%,rgba(97,221,181,.08),transparent 34%),var(--surface);border:1px solid rgba(155,140,255,.26);border-radius:18px;box-shadow:var(--shadow);margin-bottom:12px}.progression-hero:before{content:"";position:absolute;inset:-100%;background:conic-gradient(from 90deg,transparent,rgba(155,140,255,.025),transparent,rgba(97,221,181,.02),transparent);animation:heroDrift 18s linear infinite;pointer-events:none}@keyframes heroDrift{to{transform:rotate(360deg)}}
.rank-emblem{display:grid;place-items:center;position:relative;z-index:1}.rank-ring{--p:0;position:relative;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#a99aff calc(var(--p)*1%),rgba(255,255,255,.06) 0);filter:drop-shadow(0 0 18px rgba(155,140,255,.12))}.rank-ring:before{content:"";position:absolute;inset:6px;border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(155,140,255,.16),transparent 47%),var(--bg2);border:1px solid rgba(255,255,255,.04)}.rank-ring span{position:relative;z-index:1;display:grid;text-align:center}.rank-ring b{font-size:26px;letter-spacing:-.05em}.rank-ring small{font-size:7px;letter-spacing:.15em;color:var(--muted2)}.rank-ring.huge{width:126px;height:126px}.rank-ring.huge:before{inset:8px}.rank-ring.huge b{font-size:39px}.prestige-label{font-size:9px;text-transform:uppercase;letter-spacing:.15em;font-weight:900;color:#bcaeff;margin-top:9px}.mastery-badge,.ascension-badge{font-size:8px;font-weight:950;letter-spacing:.12em;border-radius:999px;padding:4px 7px;margin-top:5px}.mastery-badge{color:#f1d77f;border:1px solid rgba(241,215,127,.30);background:rgba(241,215,127,.05)}.ascension-badge{color:#bcaeff;border:1px solid rgba(188,174,255,.35);background:rgba(155,140,255,.08);box-shadow:0 0 16px rgba(155,140,255,.10)}
.progression-copy{position:relative;z-index:1}.progression-copy h3{font-size:25px;margin:4px 0 4px;letter-spacing:-.035em}.progression-copy p{margin:0 0 14px;color:var(--muted);font-size:11px}.xp-track{height:8px;background:rgba(255,255,255,.055);border-radius:99px;overflow:visible;border:1px solid rgba(255,255,255,.025);position:relative}.xp-track .motion-bar,.xp-track .xp-rail-fill{height:100%;display:block;background:linear-gradient(90deg,#8e7cff,#68c6ff,#61ddb5);background-size:180% 100%;border-radius:inherit;position:relative;will-change:width,filter,transform}.xp-track .motion-bar{transition:width .72s cubic-bezier(.2,.8,.2,1);animation:xpFlow 6s ease infinite alternate}@keyframes xpFlow{to{background-position:100% 0}}.xp-track-label{display:flex;justify-content:space-between;gap:12px;color:var(--muted2);font-size:9px;margin-top:5px}.xp-track-label strong{color:var(--text)}.banked-xp{display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center;margin-top:12px;border:1px solid rgba(240,182,91,.22);background:rgba(240,182,91,.045);border-radius:9px;padding:8px 9px;color:#f0c370;font-size:10px}.banked-xp span{grid-column:2;color:var(--muted2);font-size:9px;margin-top:2px}.lifetime-xp{position:relative;z-index:1;text-align:right;min-width:190px}.lifetime-xp span,.lifetime-xp small{display:block;color:var(--muted2);font-size:8px;letter-spacing:.1em}.lifetime-xp strong{display:block;font-size:31px;letter-spacing:-.045em;color:var(--accent);margin:3px 0}.lifetime-xp small{letter-spacing:0;line-height:1.4}

/* v0.2.7 — continuous Life XP rail with explicit motion-state isolation */
[data-xp-rail]{--xp-head:#8ef7d2}.xp-rail-fill,[data-xp-rail-fill]{position:relative;isolation:isolate;min-width:0;transform-origin:left center}
[data-xp-rail-fill]::after{content:"";position:absolute;right:-5px;top:50%;width:11px;height:170%;border-radius:999px;transform:translateY(-50%) scaleX(.55);opacity:0;background:radial-gradient(circle,var(--xp-head) 0 22%,rgba(142,247,210,.48) 42%,transparent 72%);filter:blur(.35px);pointer-events:none}
.xp-rail-charging [data-xp-rail-fill]{filter:brightness(1.18) saturate(1.16);box-shadow:0 0 12px rgba(97,221,181,.24);animation:xpRailGradient .8s linear infinite}
.xp-rail-charging [data-xp-rail-fill]::after{opacity:1;animation:xpRailHead .36s ease-in-out infinite alternate}
.xp-rail-reverse [data-xp-rail-fill]::after{right:auto;left:-5px;background:radial-gradient(circle,#b7a9ff 0 22%,rgba(183,169,255,.42) 42%,transparent 72%)}
.xp-rail-wrap .rank-chip-bar,.xp-rail-wrap .xp-track{animation:xpRailWrap .26s cubic-bezier(.16,.8,.24,1)}
.xp-rail-wrap [data-xp-rail-fill]{filter:brightness(1.65) saturate(1.35);box-shadow:0 0 17px rgba(111,226,200,.58)}
.xp-rail-landmark{animation:xpRailLandmark .64s ease-out}
.xp-level-roll{display:inline-block;animation:xpLevelRoll .22s cubic-bezier(.18,.9,.25,1.22)}
.rank-ring.xp-rail-charging{filter:drop-shadow(0 0 26px rgba(155,140,255,.23)) brightness(1.08)}
.xp-rail-maxed .rank-chip-bar,.progression-copy.xp-rail-maxed .xp-track,.xp-track.xp-rail-maxed{box-shadow:0 0 12px rgba(240,195,112,.11)}
.xp-rail-maxed [data-xp-rail-fill],.xp-track.xp-rail-maxed [data-xp-rail-fill]{background:linear-gradient(90deg,#8e7cff,#68c6ff,#61ddb5,#f0c370);background-size:220% 100%;animation:xpMaxShimmer 3.8s ease-in-out infinite}
.xp-rail-banked [data-xp-rail-fill]{box-shadow:0 0 13px rgba(240,195,112,.25)}
@keyframes xpRailGradient{to{background-position:100% 0}}
@keyframes xpRailHead{from{transform:translateY(-50%) scaleX(.45);filter:blur(.4px)}to{transform:translateY(-50%) scaleX(1.25);filter:blur(.8px)}}
@keyframes xpRailWrap{0%{filter:brightness(1);transform:scaleY(1)}42%{filter:brightness(1.55);transform:scaleY(1.22)}100%{filter:brightness(1);transform:scaleY(1)}}
@keyframes xpRailLandmark{0%{box-shadow:0 0 0 rgba(240,195,112,0)}40%{box-shadow:0 0 32px rgba(240,195,112,.25)}100%{box-shadow:0 0 0 rgba(240,195,112,0)}}
@keyframes xpLevelRoll{0%{opacity:.2;transform:translateY(6px) scale(.86)}55%{opacity:1;transform:translateY(-1px) scale(1.12)}100%{transform:none}}
@keyframes xpMaxShimmer{0%,100%{background-position:0 0;filter:brightness(1)}50%{background-position:100% 0;filter:brightness(1.16)}}
.prestige-pour{width:min(330px,72vw);margin:16px auto 4px}.prestige-pour-track{height:7px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.05);overflow:visible;box-shadow:0 0 20px rgba(155,140,255,.06)}.prestige-pour-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#9b8cff,#68c6ff,#61ddb5);box-shadow:0 0 15px rgba(97,221,181,.38);position:relative}.prestige-pour-track i:after{content:"";position:absolute;right:-6px;top:50%;width:13px;height:13px;border-radius:50%;transform:translateY(-50%);background:#bff8e3;box-shadow:0 0 15px rgba(97,221,181,.8)}.prestige-pour>span{display:block;margin-top:6px;font-size:8px;letter-spacing:.08em;color:#9edfc9;text-transform:uppercase}
.progress-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.progress-summary>div{border:1px solid var(--border);background:var(--surface);border-radius:11px;padding:11px 12px}.progress-summary span{display:block;font-size:8px;color:var(--muted2);text-transform:uppercase;letter-spacing:.09em}.progress-summary strong{display:block;font-size:14px;margin-top:3px}.progress-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);gap:14px;align-items:start}.achievement-section{min-width:0}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.section-head h3{margin-bottom:3px}.section-head p{margin:0;font-size:10px}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.achievement-card{--rarity:#758394;position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--rarity) 28%,var(--border));background:linear-gradient(120deg,color-mix(in srgb,var(--rarity) 6%,transparent),transparent 58%),var(--bg2);border-radius:13px;padding:11px;display:grid;grid-template-columns:auto 1fr;gap:11px;text-align:left;min-height:108px;color:var(--text);transition:transform .18s ease,border-color .22s ease,box-shadow .25s ease}.achievement-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--rarity) 58%,var(--border));box-shadow:0 12px 28px rgba(0,0,0,.22),0 0 24px color-mix(in srgb,var(--rarity) 9%,transparent)}.achievement-card:after,.achievement-detail-hero:after{content:"";position:absolute;inset:-60% -30%;background:linear-gradient(115deg,transparent 38%,color-mix(in srgb,var(--rarity) 13%,transparent) 49%,transparent 60%);transform:translateX(-55%) rotate(8deg);opacity:0;pointer-events:none}.achievement-card:hover:after,.achievement-detail-hero:hover:after{opacity:1;animation:raritySweep 2.6s ease-in-out infinite}@keyframes raritySweep{0%{transform:translateX(-60%) rotate(8deg)}70%,100%{transform:translateX(62%) rotate(8deg)}}
.rarity-locked{--rarity:#758394}.rarity-common{--rarity:#f3f6f8}.rarity-uncommon{--rarity:#65e39d}.rarity-rare{--rarity:#68b8ff}.rarity-epic{--rarity:#b58cff}.rarity-legendary{--rarity:#ffb65e}.achievement-icon-wrap{width:58px;height:58px;position:relative;display:grid;place-items:center}.achievement-icon{position:absolute;z-index:3;color:var(--rarity);font-size:23px;filter:drop-shadow(0 0 9px color-mix(in srgb,var(--rarity) 20%,transparent))}.achievement-ring{--p:0;position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--rarity) calc(var(--p)*1%),rgba(255,255,255,.055) 0);transition:filter .25s ease}.achievement-ring:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--bg2)}.achievement-ring span{display:none}.achievement-copy{min-width:0;position:relative;z-index:2}.achievement-copy strong{display:block;font-size:12px;margin:3px 0}.achievement-copy p{margin:0;color:var(--muted);font-size:9.5px;line-height:1.4}.achievement-rarity{font-size:8px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--rarity)}.achievement-count{display:flex;gap:5px;align-items:baseline;margin-top:8px;color:var(--muted)}.achievement-count span{font-size:10px;font-weight:800;color:var(--text)}.achievement-count b{font-size:8px;color:var(--muted2)}.achievement-card.maxed{border-color:color-mix(in srgb,var(--rarity) 46%,var(--border))}.progress-side{display:grid;gap:14px}.xp-source{display:grid;gap:5px;margin-top:10px}.xp-source>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:10px}.xp-source span{color:var(--muted2);font-size:9px}.xp-source .mini-bar{height:4px;background:var(--border);border-radius:99px;overflow:hidden}.xp-source .motion-bar{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--accent));transition:width .6s cubic-bezier(.2,.8,.2,1)}.progress-history{display:grid;gap:0;max-height:525px;overflow:auto;padding-right:3px}.history-row{display:grid;grid-template-columns:10px 1fr;gap:8px;position:relative;padding:7px 0}.history-row:before{content:"";position:absolute;left:4px;top:18px;bottom:-7px;width:1px;background:var(--border)}.history-row:last-child:before{display:none}.history-dot{width:9px;height:9px;border-radius:50%;background:var(--muted2);margin-top:3px;box-shadow:0 0 0 3px var(--surface)}.history-row.mastery .history-dot{background:#f0d476}.history-row.ascension .history-dot,.history-row.prestige_claim .history-dot{background:#aa98ff;box-shadow:0 0 8px rgba(170,152,255,.4),0 0 0 3px var(--surface)}.history-row.achievement .history-dot{background:var(--accent)}.history-row strong{font-size:9.5px}.history-row small{display:block;color:var(--muted2);font-size:8px;margin-top:2px;line-height:1.35}
.achievement-detail-hero{--rarity:#758394;position:relative;overflow:hidden;display:flex;gap:13px;align-items:center;border:1px solid color-mix(in srgb,var(--rarity) 35%,var(--border));border-radius:13px;padding:14px;background:linear-gradient(120deg,color-mix(in srgb,var(--rarity) 8%,transparent),transparent),var(--bg2)}.achievement-detail-hero .achievement-ring{position:relative;width:68px;height:68px;inset:auto;flex:0 0 auto}.achievement-detail-hero .achievement-ring:after{background:var(--bg2)}.achievement-detail-hero .achievement-ring span{display:grid;position:relative;z-index:2;place-items:center;height:100%;font-size:11px;font-weight:900}.achievement-detail-hero strong{display:block;margin:3px 0}.achievement-detail-hero p{margin:0;color:var(--muted);font-size:10px}.achievement-grade-list{display:grid;gap:7px;margin-top:12px}.achievement-grade{--rarity:#758394;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;border:1px solid color-mix(in srgb,var(--rarity) 20%,var(--border));border-radius:10px;padding:8px;background:rgba(255,255,255,.012)}.grade-gem{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;color:var(--rarity);background:color-mix(in srgb,var(--rarity) 8%,transparent)}.achievement-grade strong,.achievement-grade span{display:block}.achievement-grade strong{font-size:10px;color:var(--rarity)}.achievement-grade span,.grade-date{font-size:8.5px;color:var(--muted2)}.grade-date{text-align:right}.prestige-preview{text-align:center;padding:8px 6px}.prestige-preview h2{font-size:30px;margin:10px 0 6px;background:linear-gradient(90deg,#d6ccff,#8df0cf);-webkit-background-clip:text;background-clip:text;color:transparent}.prestige-preview p{color:var(--muted);font-size:10px;line-height:1.55}.prestige-orbit{width:86px;height:86px;border:1px solid rgba(155,140,255,.38);border-radius:50%;margin:auto;display:grid;place-items:center;color:#b7a9ff;font-size:28px;box-shadow:0 0 35px rgba(155,140,255,.14);animation:prestigeBreathe 2.7s ease-in-out infinite}@keyframes prestigeBreathe{50%{transform:scale(1.045);box-shadow:0 0 45px rgba(155,140,255,.25)}}.prestige-math{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0}.prestige-math span{display:grid;background:var(--bg2);border:1px solid var(--border);border-radius:9px;padding:9px;font-size:8px;color:var(--muted2)}.prestige-math strong{font-size:13px;color:var(--text);margin-top:2px}
#progression-fx-root{position:fixed;inset:0;z-index:1600;pointer-events:none}.progression-fx{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:9px}.gain-fx{background:radial-gradient(circle at 50% 48%,rgba(97,221,181,.07),transparent 28%);animation:fxFade 2.6s ease both}.xp-float{font-weight:950;font-size:21px;color:var(--accent);text-shadow:0 0 24px rgba(97,221,181,.35);animation:xpFloat 1.3s cubic-bezier(.16,.9,.25,1) both}.level-up{text-align:center;animation:levelPop .58s cubic-bezier(.15,.9,.2,1.25) .18s both}.level-up small{display:block;color:#b8aaff;font-size:9px;letter-spacing:.17em;font-weight:900}.level-up strong{display:block;font-size:42px;letter-spacing:-.06em;text-shadow:0 0 35px rgba(155,140,255,.25)}.level-up span{color:var(--muted2);font-size:.6em}.achievement-pop{--rarity:#f3f6f8;position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;min-width:min(390px,88vw);border:1px solid color-mix(in srgb,var(--rarity) 50%,var(--border));background:linear-gradient(110deg,color-mix(in srgb,var(--rarity) 10%,transparent),transparent),#14202a;border-radius:14px;padding:11px 14px;box-shadow:0 18px 55px rgba(0,0,0,.38),0 0 28px color-mix(in srgb,var(--rarity) 11%,transparent);animation:achievementPop .72s cubic-bezier(.16,.9,.24,1.2) .45s both}.achievement-pop:after{content:"";position:absolute;inset:-70%;background:linear-gradient(110deg,transparent 43%,color-mix(in srgb,var(--rarity) 21%,transparent) 49%,transparent 56%);animation:popShimmer 1.5s ease .8s both}.achievement-pop-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--rarity);background:color-mix(in srgb,var(--rarity) 10%,transparent);font-size:20px;position:relative;z-index:1}.achievement-pop>div:last-child{position:relative;z-index:1}.achievement-pop small,.achievement-pop span{display:block;font-size:8px;letter-spacing:.1em;color:var(--muted2)}.achievement-pop strong{display:block;font-size:12px;margin:2px 0;color:var(--text)}.achievement-pop span{color:var(--rarity);font-weight:900}.fx-glow{position:absolute;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(97,221,181,.13),transparent 68%);animation:glowPulse 1.3s ease-out both}.fx-particle{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 11px currentColor}.fx-particle-1{transform:translate(-110px,-60px);animation:particle 1.5s ease both}.fx-particle-2{transform:translate(120px,-20px);animation:particle 1.8s .15s ease both}.fx-particle-3{transform:translate(-80px,90px);animation:particle 1.6s .3s ease both}.fx-particle-4{transform:translate(100px,85px);animation:particle 1.9s .05s ease both}
@keyframes fxFade{0%{opacity:0}10%,78%{opacity:1}100%{opacity:0}}@keyframes xpFloat{0%{opacity:0;transform:translateY(18px) scale(.92)}28%{opacity:1;transform:translateY(-2px) scale(1.04)}100%{opacity:0;transform:translateY(-28px) scale(.98)}}@keyframes levelPop{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes achievementPop{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}@keyframes popShimmer{from{transform:translateX(-50%)}to{transform:translateX(50%)}}@keyframes glowPulse{from{opacity:0;transform:scale(.5)}45%{opacity:1}to{opacity:0;transform:scale(2)}}@keyframes particle{0%{opacity:0}30%{opacity:1}100%{opacity:0;transform:translate(0,0) scale(.2)}}
.prestige-fx{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.prestige-veil{position:absolute;inset:0;background:rgba(4,6,10,.92);backdrop-filter:blur(7px);animation:prestigeVeil 3.9s ease both}.prestige-rays{position:absolute;width:90vmin;height:90vmin;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(155,140,255,.08) 0 2deg,transparent 2deg 15deg);animation:raysSpin 8s linear infinite,prestigeAppear 3.6s ease both;mask-image:radial-gradient(circle,#000 0 18%,transparent 68%)}.prestige-core{position:relative;text-align:center;z-index:2;animation:prestigeCore 3.7s cubic-bezier(.16,.8,.2,1) both}.prestige-rings{width:170px;height:170px;margin:auto;position:relative;display:grid;place-items:center}.prestige-rings i{position:absolute;inset:0;border:1px solid rgba(174,157,255,.32);border-radius:50%;box-shadow:0 0 30px rgba(155,140,255,.09)}.prestige-rings i:nth-child(1){animation:orbitA 4s linear infinite}.prestige-rings i:nth-child(2){inset:15px;border-color:rgba(97,221,181,.25);animation:orbitB 3.2s linear infinite}.prestige-rings i:nth-child(3){inset:31px;border-style:dashed;animation:orbitA 6s linear reverse infinite}.prestige-rings>div{width:76px;height:76px;border-radius:24px;display:grid;place-items:center;font-size:34px;color:#c4b8ff;background:radial-gradient(circle at 30% 25%,rgba(155,140,255,.25),rgba(17,25,35,.95));border:1px solid rgba(197,185,255,.42);box-shadow:0 0 55px rgba(155,140,255,.28)}.prestige-core>small{display:block;font-size:9px;letter-spacing:.25em;color:#9d8dff;font-weight:900}.prestige-core h2{font-size:42px;letter-spacing:.02em;margin:5px 0;background:linear-gradient(90deg,#cbbfff,#7fe6c4,#cbbfff);background-size:200%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:xpFlow 2.5s ease infinite alternate}.prestige-core p{margin:0;color:var(--muted);font-size:11px}.prestige-level-count{font-size:10px;color:var(--muted2);margin-top:13px;letter-spacing:.1em}.prestige-level-count strong{font-size:25px;color:var(--text);vertical-align:-3px}.prestige-carry{margin-top:5px;font-size:9px;color:#8fe8c9}.prestige-fx.ludicrous .prestige-rays{width:120vmin;height:120vmin;filter:saturate(1.3)}
@keyframes prestigeVeil{0%{opacity:0}12%,82%{opacity:1}100%{opacity:0}}@keyframes prestigeAppear{0%{opacity:0;transform:scale(.4)}30%,75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.4)}}@keyframes prestigeCore{0%{opacity:0;transform:scale(.5)}24%{opacity:1;transform:scale(1.03)}35%,75%{transform:scale(1)}100%{opacity:0;transform:scale(.96)}}@keyframes raysSpin{to{transform:rotate(360deg)}}@keyframes orbitA{to{transform:rotate(360deg)}}@keyframes orbitB{to{transform:rotate(-360deg)}}
@media(max-width:1100px){.progression-hero{grid-template-columns:auto 1fr}.lifetime-xp{grid-column:2;text-align:left}.progress-layout{grid-template-columns:1fr}.progress-side{grid-template-columns:1fr 1fr}.progress-history{max-height:390px}}
@media(max-width:760px){.rank-chip{min-width:54px;padding:5px}.rank-chip-p{display:none}.progression-hero{grid-template-columns:1fr;text-align:center;padding:18px}.progression-copy{text-align:left}.lifetime-xp{grid-column:auto;text-align:center;min-width:0}.progress-summary{grid-template-columns:repeat(2,1fr)}.achievement-grid{grid-template-columns:1fr}.progress-side{grid-template-columns:1fr}.prestige-math{grid-template-columns:1fr}.achievement-grade{grid-template-columns:auto 1fr}.grade-date{grid-column:2;text-align:left}.nav button span{display:none}}
@media(prefers-reduced-motion:reduce){.progression-hero:before,.xp-track .motion-bar,.achievement-card:hover:after,.achievement-detail-hero:hover:after,.prestige-orbit,[data-xp-rail-fill],[data-xp-rail-fill]::after,.xp-level-roll,.prestige-pour-track i{animation:none!important;transition:none!important}}

.task-form-error{margin:0 17px 10px;padding:9px 11px;border:1px solid rgba(255,119,126,.45);background:rgba(255,119,126,.08);color:#ff9aa0;border-radius:9px;font-size:10px}.task-form-error[hidden]{display:none}.dialog-foot button:disabled{opacity:.58;cursor:wait}

/* v0.3.0 — Administrator Test Lab + prestigeable achievement frames */
.simulation-banner{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:center;gap:10px;padding:7px 12px;background:linear-gradient(90deg,rgba(255,153,91,.17),rgba(155,140,255,.14),rgba(255,153,91,.17)),#151c25;border-bottom:1px solid rgba(255,170,95,.34);color:#ffd1a8;font-size:9px;font-weight:850;letter-spacing:.035em;box-shadow:0 8px 26px rgba(0,0,0,.22)}.simulation-banner svg{width:12px;height:12px}.simulation-banner b{color:#fff0df}.simulation-banner .sim-write{color:#ffb56f}.simulation-banner .sim-safe{color:#8ce7c7}
.admin-role-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,170,95,.34);background:linear-gradient(135deg,rgba(255,170,95,.10),rgba(155,140,255,.07));color:#ffd1a8;border-radius:999px;padding:7px 11px;font-size:8px;letter-spacing:.12em;font-weight:950}.admin-role-pill svg{width:12px;height:12px}.admin-warning{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-bottom:12px;padding:11px 13px;border-radius:13px;border:1px solid rgba(255,170,95,.24);background:linear-gradient(110deg,rgba(255,170,95,.075),rgba(155,140,255,.035),transparent),var(--surface)}.admin-warning strong{color:#ffd1a8;font-size:10px}.admin-warning span{font-size:9px;color:var(--muted);line-height:1.45}.admin-warning b{color:var(--text)}
.admin-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}.admin-card{position:relative;overflow:hidden}.admin-card:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(155,140,255,.22),rgba(97,221,181,.15),transparent);pointer-events:none}.admin-card h3{margin-bottom:4px}.admin-form{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.05)}.admin-button-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.danger-soft-btn{min-height:34px;border:1px solid rgba(255,157,102,.32);border-radius:9px;padding:0 11px;background:linear-gradient(110deg,rgba(255,157,102,.09),rgba(255,255,255,.018));color:#ffd0b6;font-size:8px;font-weight:900;letter-spacing:.035em;transition:transform .14s ease,border-color .14s ease,box-shadow .18s ease}.danger-soft-btn:hover{transform:translateY(-1px);border-color:rgba(255,157,102,.58);box-shadow:0 0 20px rgba(255,157,102,.08)}.admin-danger-stack{display:grid;gap:8px;margin-top:12px}.admin-audit{display:grid;gap:6px;max-height:330px;overflow:auto;padding-right:4px}.admin-audit>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 9px;border:1px solid rgba(255,255,255,.045);background:rgba(255,255,255,.012);border-radius:9px}.admin-audit strong{font-size:9px;text-transform:capitalize}.admin-audit span{font-size:8px;color:var(--muted2);text-align:right}.prestige-admin-preview{display:flex;align-items:baseline;gap:10px;margin:14px 0;padding:12px;border:1px solid rgba(155,140,255,.17);border-radius:12px;background:radial-gradient(circle at 8% 25%,rgba(155,140,255,.12),transparent 38%),rgba(255,255,255,.012)}.prestige-admin-preview strong{font-size:28px;letter-spacing:-.04em;color:#c8bdff;text-shadow:0 0 25px rgba(155,140,255,.15)}.prestige-admin-preview span{font-size:9px;color:var(--muted2)}.status-pill.danger{border-color:rgba(255,170,95,.35);background:rgba(255,170,95,.08);color:#ffc38d}

.achievement-prestige-badge{position:absolute;z-index:5;top:9px;right:9px;min-width:28px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--rarity) 35%,var(--border));background:color-mix(in srgb,var(--rarity) 8%,#101720);color:color-mix(in srgb,var(--rarity) 88%,white);font-size:7px;font-weight:950;letter-spacing:.08em;box-shadow:0 0 calc(5px + min(var(--ap),8)*2px) color-mix(in srgb,var(--rarity) 12%,transparent)}
.achievement-card[data-achievement-prestige]:after{content:"";position:absolute;inset:3px;border-radius:calc(14px - 3px);pointer-events:none;opacity:min(.12,calc(var(--ap)*.018));background:conic-gradient(from 120deg,transparent 0 21%,color-mix(in srgb,var(--rarity) 24%,transparent) 27%,transparent 34% 67%,color-mix(in srgb,var(--rarity) 20%,transparent) 73%,transparent 80%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);padding:1px;mask-composite:exclude}
.achievement-card:not([data-achievement-prestige="0"]){box-shadow:0 12px 34px rgba(0,0,0,.16),0 0 calc(7px + min(var(--ap),8)*3px) color-mix(in srgb,var(--rarity) 6%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--rarity) 8%,transparent)}
.achievement-card:not([data-achievement-prestige="0"]):hover .achievement-prestige-badge{animation:prestigeBadgeShimmer 2.8s ease-in-out infinite}.achievement-prestige-badge:before{content:"";width:4px;height:4px;margin-right:4px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}@keyframes prestigeBadgeShimmer{0%,100%{filter:brightness(1);transform:translateY(0)}50%{filter:brightness(1.22);transform:translateY(-1px)}}
.achievement-detail-hero .achievement-prestige-badge{position:static;margin-left:auto;align-self:flex-start}.achievement-grade .grade-prestige{display:inline-flex;width:max-content;margin-top:3px;padding:2px 5px;border-radius:999px;border:1px solid color-mix(in srgb,var(--rarity) 20%,var(--border));font-size:7px;color:var(--muted2)}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr}.admin-grid>.span-6{grid-column:auto}.admin-warning{grid-template-columns:1fr}.admin-button-row>*{flex:1 1 auto}.admin-audit>div{align-items:flex-start;flex-direction:column}.admin-audit span{text-align:left}}

/* v0.3.1 — The Pretty Update: clearer progression language + persistent milestone celebrations */
.rank-chip{min-width:88px}.rank-chip-p{font-size:7.4px;white-space:nowrap;text-transform:uppercase;letter-spacing:.055em}
.concept-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}.concept-strip>div{padding:10px 11px;border:1px solid rgba(255,255,255,.055);border-radius:11px;background:linear-gradient(120deg,rgba(155,140,255,.045),transparent 58%),rgba(255,255,255,.012)}.concept-strip strong{display:block;font-size:9px;color:var(--text);margin-bottom:3px}.concept-strip span{display:block;font-size:8px;line-height:1.45;color:var(--muted2)}
.achievement-next{margin-top:5px;font-size:7.5px;color:color-mix(in srgb,var(--rarity) 68%,var(--muted2));font-weight:800}.achievement-help{display:grid;gap:3px;margin:12px 0 4px;padding:10px 11px;border:1px solid rgba(155,140,255,.14);border-radius:10px;background:rgba(155,140,255,.045)}.achievement-help strong{font-size:9px}.achievement-help span{font-size:8px;line-height:1.5;color:var(--muted2)}
.achievement-prestige-badge{min-width:auto;padding:0 8px;letter-spacing:.035em;text-transform:none}.empty strong,.empty span{display:block}.empty strong{color:var(--text);font-size:9px;margin-bottom:3px}.empty span{font-size:8px;line-height:1.45;color:var(--muted2)}
#progression-fx-root.milestone-open{pointer-events:auto}
/* Prestige now enters, settles, and waits for the user instead of fading away. */
.prestige-veil{animation:prettyPrestigeVeil .48s ease both}.prestige-rays{animation:raysSpin 8s linear infinite,prettyPrestigeReveal .9s ease both}.prestige-core{min-width:min(520px,92vw);padding:22px 24px 20px;border:1px solid rgba(197,185,255,.14);border-radius:22px;background:radial-gradient(circle at 50% 0,rgba(155,140,255,.09),transparent 35%),rgba(8,12,18,.28);animation:prettyPrestigeCore .9s cubic-bezier(.16,.8,.2,1) both}.prestige-core.settled{background:radial-gradient(circle at 50% 0,rgba(155,140,255,.08),transparent 38%),rgba(8,12,18,.52);box-shadow:0 28px 90px rgba(0,0,0,.28)}
@keyframes prettyPrestigeVeil{from{opacity:0}to{opacity:1}}@keyframes prettyPrestigeReveal{from{opacity:0}to{opacity:.92}}@keyframes prettyPrestigeCore{0%{opacity:0;transform:scale(.72) translateY(14px)}65%{opacity:1;transform:scale(1.025) translateY(0)}100%{opacity:1;transform:scale(1)}}
.prestige-lead{max-width:430px;margin:6px auto 0!important;line-height:1.55!important;color:var(--muted)!important}.prestige-facts{margin:12px auto 8px;max-width:420px}.prestige-continue{margin:13px auto 0}.prestige-close{top:14px;right:14px}
.milestone-fx{--rarity:#ffb65e;position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.milestone-veil{position:absolute;inset:0;background:rgba(4,6,10,.93);backdrop-filter:blur(8px);animation:prettyPrestigeVeil .42s ease both}.milestone-radiance{position:absolute;width:86vmin;height:86vmin;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--rarity) 13%,transparent),transparent 54%),repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--rarity) 5%,transparent) 0 2deg,transparent 2deg 18deg);animation:milestoneRadiance 14s linear infinite}.milestone-card{position:relative;z-index:2;width:min(520px,91vw);padding:28px 30px 24px;border:1px solid color-mix(in srgb,var(--rarity) 34%,var(--border));border-radius:22px;text-align:center;background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--rarity) 10%,transparent),transparent 36%),#0c1219;box-shadow:0 30px 100px rgba(0,0,0,.48),0 0 54px color-mix(in srgb,var(--rarity) 9%,transparent);animation:milestoneCardIn .72s cubic-bezier(.16,.9,.22,1.08) both}.milestone-icon{width:78px;height:78px;margin:0 auto 12px;border-radius:24px;display:grid;place-items:center;font-size:32px;color:var(--rarity);background:color-mix(in srgb,var(--rarity) 10%,#101720);border:1px solid color-mix(in srgb,var(--rarity) 34%,var(--border));box-shadow:0 0 38px color-mix(in srgb,var(--rarity) 12%,transparent)}.milestone-kicker{font-size:8px;letter-spacing:.22em;font-weight:950;color:var(--rarity)}.milestone-card h2{font-size:36px;margin:4px 0 2px;letter-spacing:-.04em}.milestone-card h3{font-size:14px;margin:0 0 8px}.milestone-lead{margin:0 auto 13px;max-width:410px;color:var(--muted);font-size:10px;line-height:1.55}.milestone-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.milestone-facts>div{padding:10px;border:1px solid color-mix(in srgb,var(--rarity) 15%,var(--border));border-radius:11px;background:rgba(255,255,255,.018)}.milestone-facts span,.milestone-facts strong{display:block}.milestone-facts span{font-size:7px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted2)}.milestone-facts strong{font-size:10px;margin-top:3px}.milestone-explainer{max-width:430px;margin:12px auto 0;font-size:8.5px;line-height:1.55;color:var(--muted2)}.milestone-continue{min-height:38px;margin-top:15px;padding:0 18px;border:1px solid color-mix(in srgb,var(--rarity) 44%,var(--border));border-radius:10px;background:linear-gradient(110deg,color-mix(in srgb,var(--rarity) 15%,transparent),rgba(255,255,255,.02));color:var(--text);font-size:9px;font-weight:950}.milestone-continue:hover{transform:translateY(-1px);box-shadow:0 0 24px color-mix(in srgb,var(--rarity) 12%,transparent)}.milestone-close{position:absolute;top:13px;right:13px;z-index:4;width:30px;height:30px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.025);color:var(--muted);display:grid;place-items:center}.milestone-close:hover{color:var(--text);border-color:rgba(255,255,255,.18)}
@keyframes milestoneRadiance{to{transform:rotate(360deg)}}@keyframes milestoneCardIn{0%{opacity:0;transform:translateY(18px) scale(.88)}70%{opacity:1;transform:translateY(0) scale(1.018)}100%{opacity:1;transform:scale(1)}}
@media(max-width:760px){.concept-strip{grid-template-columns:1fr}.rank-chip{min-width:56px}.milestone-card{padding:24px 18px 20px}.milestone-facts{grid-template-columns:1fr}.prestige-core{padding:18px 14px}.prestige-facts{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.milestone-radiance,.milestone-card,.milestone-veil,.prestige-veil,.prestige-rays,.prestige-core{animation:none!important}}
@media(max-width:760px){.rank-chip{min-width:72px}.rank-chip-p{display:block;font-size:6.6px;max-width:52px;overflow:hidden;text-overflow:ellipsis}}

/* v0.3.2 — Live Sync: server-authoritative timers + SSE device refresh */
.live-sync-explainer{display:grid;gap:7px;padding:13px 14px;border:1px solid rgba(97,221,181,.12);border-radius:12px;background:linear-gradient(135deg,rgba(97,221,181,.055),rgba(99,183,255,.025));font-size:11px}.live-sync-explainer strong{font-size:12px}.live-sync-explainer span{color:var(--muted);line-height:1.55}.live-sync-explainer small{color:var(--muted2);line-height:1.5}
