*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0d12;--surface: #101a28;--line: #263349;--line2: #1b2536;--text: #f2f6fb;--muted: #8b9bb0;--dimtext: #c6d2e0;--accent: #7fd0ff;--on-accent: #05131f;--sand: #e0b662;--red: #c25b52;--c-full: #f0f6fc;--c-wake: #6b7c92;--c-late: #e0b662;--c-miss: #c25b52;--c-idle: #1a2434}html,body{background:var(--bg);color:var(--text);font-family:Space Grotesk,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}.lbl{font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}.lbl.strong{color:var(--text)}.lbl.dim{opacity:.6}.app{max-width:480px;margin:0 auto;padding:24px 20px 110px;display:flex;flex-direction:column;gap:24px}header{display:flex;align-items:baseline;justify-content:space-between}.apptitle{font-weight:600;letter-spacing:4px;font-size:16px}.username{color:var(--muted);font-size:12px;margin-top:4px;letter-spacing:1px}.layout,.col{display:flex;flex-direction:column;gap:24px}.layout>.col{display:none}.layout>.col.active{display:flex}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:#0a0d12eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:5}.tabbar button{flex:1;position:relative;background:none;border:none;border-radius:0;padding:18px 0 calc(16px + env(safe-area-inset-bottom,0px));font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}.tabbar button.active{color:var(--text)}.tabbar button.active:before{content:"";position:absolute;top:-1px;left:30%;right:30%;height:1px;background:var(--accent)}@media (min-width: 900px){.app{max-width:1000px;padding-bottom:48px}.layout{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:26px 56px}.layout>.col{display:flex}.group-today{grid-column:1;grid-row:1 / span 2}.group-board,.group-arc{grid-column:2}.tabbar{display:none}}.card{background:transparent;border-top:1px solid var(--line);padding:20px 0 0}.card h2{font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.card p{font-size:14px;line-height:1.6}.secthead{display:flex;justify-content:space-between;align-items:baseline}.hero{padding-top:4px}.herorow{display:flex;align-items:baseline;gap:14px}.heroelo{font-size:84px;font-weight:300;line-height:1;letter-spacing:-3px;font-variant-numeric:tabular-nums}.herodelta{font-size:18px;font-weight:500;color:var(--accent)}.herodelta.neg{color:var(--red)}.bar{height:2px;background:var(--line);margin-top:18px}.fill{height:100%;background:var(--accent);transition:width .3s}.lvlmeta{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.lvlbadge{display:inline-flex;align-items:center;gap:8px}button{font:inherit;border:none;border-radius:2px;cursor:pointer}.primary{background:var(--accent);color:var(--on-accent);font-weight:600;letter-spacing:3px;text-transform:uppercase;padding:14px 20px;font-size:13px}.primary:disabled{opacity:.4;cursor:default}.primary.latebtn{background:var(--sand)}.secondary{background:transparent;color:var(--text);border:1px solid var(--line);font-weight:500;letter-spacing:2.5px;text-transform:uppercase;padding:14px 20px;font-size:12px}.ghost{background:transparent;color:var(--muted);padding:12px 16px;letter-spacing:1px}.big{width:100%;padding:20px;display:flex;flex-direction:column;gap:5px;align-items:center}.primary.big{font-size:20px}.secondary.big{font-size:13px}.big .sub{font-size:10px;font-weight:500;letter-spacing:2.5px;opacity:.7}.today{display:flex;flex-direction:column;gap:12px}.today h2{margin-bottom:2px}.status{border:1px solid var(--line);border-radius:2px;padding:14px;font-size:13px;text-align:center;color:var(--muted);letter-spacing:.5px}.status.ok{color:var(--accent);border-color:#7fc4ea40}.status.bad{color:var(--red);border-color:#a84a4359}.streakrow{display:flex;justify-content:space-between;align-items:flex-end}.streakval{font-size:44px;font-weight:300;line-height:1;margin-top:6px;font-variant-numeric:tabular-nums}.tickswrap{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.ticks{display:flex;gap:5px}.ticks i{width:4px;height:18px;border-radius:1px;background:var(--line)}.ticks i.on{background:var(--text)}.heatmap-scroll{overflow-x:auto;padding-bottom:4px}.heatmap{display:flex;gap:4px}.week{display:flex;flex-direction:column;gap:4px}.cell{width:14px;height:14px;border-radius:2px;background:var(--c-idle);flex-shrink:0}.cell.empty{background:transparent}.cell.future{opacity:.55}.cell.full{background:var(--c-full)}.cell.wake{background:var(--c-wake)}.cell.late{background:var(--c-late)}.cell.activity{background:var(--c-idle);box-shadow:inset 0 0 0 2px var(--red)}.cell.miss{background:var(--c-miss)}.cell.now{box-shadow:inset 0 0 0 2px var(--accent)}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px}.legend span{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.legend i{width:8px;height:8px;border-radius:2px;display:inline-block}.board{list-style:none;display:flex;flex-direction:column}.board li{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line2);font-size:15px}.board li:last-child{border-bottom:none}.rank{width:16px;flex-shrink:0;font-size:10px;font-weight:500;letter-spacing:1px;color:var(--muted)}.board li.me .rank{color:var(--text)}.bname{flex:1;font-weight:500;color:var(--dimtext);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board li.me .bname{font-weight:600;color:var(--accent)}.bstat{font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.bstat.late{color:var(--sand)}.bstat.bad{color:var(--red)}.belo{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--dimtext);width:52px;text-align:right}.board li.me .belo{color:var(--text)}.history{list-style:none;display:flex;flex-direction:column}.history li{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--line2);font-size:14px}.history li:last-child{border-bottom:none}.hdate{color:var(--muted);font-size:10px;letter-spacing:1.5px;width:44px;flex-shrink:0;font-variant-numeric:tabular-nums}.hlabel{flex:1;font-weight:500}.delta{font-weight:500;font-variant-numeric:tabular-nums}.delta.pos{color:var(--text)}.delta.neg{color:var(--red)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080bc7;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modal{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:24px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.modal h2{font-size:16px;font-weight:600;letter-spacing:1px}.muted{color:var(--muted);font-weight:400}.problem{font-size:30px;font-weight:500;letter-spacing:4px;text-align:center;padding:12px 0}input{font:inherit;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:2px;padding:12px 14px;width:100%;outline:none}input::placeholder{color:var(--muted)}input:focus{border-color:var(--accent)}.modal form{display:flex;flex-direction:column;gap:14px}.modal-actions{display:flex;gap:8px}.modal-actions .primary{flex:1}.share-card{align-items:center;text-align:center}.share-delta{font-size:44px;font-weight:300;color:var(--accent);font-variant-numeric:tabular-nums}.share-line{color:var(--muted);font-size:13px;display:flex;gap:8px;justify-content:space-between;width:100%}.share-elo{font-weight:500;font-size:17px}.share-streak{color:var(--accent);font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase}.share-hint{color:var(--muted);font-size:12px}.share-card .modal-actions{width:100%}.share-card .modal-actions .primary,.share-card .modal-actions .secondary{flex:1}.photocard{max-width:420px}.photoframe{border-radius:4px;overflow:hidden}.photoframe canvas{display:block;width:100%;height:auto}.filelabel{display:block;text-align:center;padding:40px 16px;border:1px dashed var(--line);border-radius:2px;color:var(--muted);cursor:pointer;font-size:12px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase}.filelabel input,.repick input{display:none}.repick{color:var(--muted);font-size:12px;text-align:center;cursor:pointer;text-decoration:underline}.warn{color:var(--sand);font-size:12px;line-height:1.5}.croprow{display:flex;align-items:center;gap:12px}.croprow input[type=range]{flex:1;width:auto;padding:0;border:none;background:transparent;accent-color:var(--accent)}.headright{display:flex;align-items:baseline;gap:26px}.headlink{display:none;background:none;border:none;padding:0;font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}.headlink:hover{color:var(--text)}@media (min-width: 900px){.headlink{display:inline}.heroelo{font-size:140px;letter-spacing:-5px}}.callout{border:1px solid rgba(127,208,255,.45);border-radius:2px;padding:14px 16px;display:flex;align-items:center;gap:14px}.callout-body{flex:1}.lbl.accent{color:var(--accent)}.callout-text{font-size:13px;color:var(--dimtext);margin-top:4px}.callout-link{background:none;border:none;padding:0;font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);white-space:nowrap}.callout-x{background:none;border:none;padding:4px;color:var(--muted);display:flex}.morerow{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;border-radius:0;border-bottom:1px solid var(--line2);padding:13px 0;color:var(--text);font-size:14px;font-weight:500}.morerow:last-child{border-bottom:none}.morerow svg{color:var(--muted)}@media (min-width: 900px){.moregroup{display:none}}.onboarding{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:24px}.onboarding h1{letter-spacing:5px;font-size:24px;font-weight:600}.tagline{color:var(--muted);font-size:14px}.rules{list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);font-size:13px;line-height:1.5}.rules li{padding:10px 0;border-bottom:1px solid var(--line2);color:#a8b3bf}.rules b{color:var(--text);font-weight:600}.checkrow{display:flex;gap:8px;align-items:center;font-size:14px}.checkrow input{width:auto}.formerror{color:var(--red);font-size:13px}.footerline{text-align:center;opacity:.55;letter-spacing:3px;margin-top:6px}.dev{border-top:1px dashed #3b2f5c;padding-top:16px}.devtime{color:var(--muted);font-size:12px;margin-bottom:8px}.devrow{display:flex;flex-wrap:wrap;gap:6px}.devrow button{background:var(--surface);color:var(--text);padding:8px 10px;font-size:12px;border:1px solid var(--line);border-radius:2px}.devrow .danger{color:var(--red)}.badge{display:block}
