:root{--bg:#191a21;--surface:#282a36;--surface-2:#303241;--border:#44475a;--text:#f8f8f2;--muted:#8b93b8;--accent:#bd93f9;--pink:#ff79c6;--green:#50fa7b;--red:#f55;--orange:#ffb86c;--yellow:#f1fa8c;--cyan:#8be9fd;--radius:20px;--radius-sm:12px;--sidebar:230px;--font:"Manrope", system-ui, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:15px}a{color:inherit;text-decoration:none}h1,h2{margin:0}.app{grid-template-columns:var(--sidebar) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--surface);flex-direction:column;gap:2rem;height:100vh;padding:1.75rem 1.25rem;display:flex;position:sticky;top:0}.logo{align-items:center;gap:.6rem;font-size:1.1rem;font-weight:700;display:flex}.logo-mark{background:conic-gradient(var(--accent) 0 50%, var(--pink) 50% 100%);border-radius:50%;width:30px;height:30px}.side-nav{flex-direction:column;gap:.35rem;display:flex}.side-nav a,.side-signout{color:var(--muted);font:inherit;border-radius:999px;align-items:center;gap:.7rem;padding:.7rem 1rem;font-weight:600;transition:background .15s,color .15s;display:flex}.side-nav a:hover{color:var(--text);background:var(--surface)}.side-nav a.active{color:var(--bg);background:var(--text)}.side-signout{cursor:pointer;background:0 0;border:none;margin-top:auto}.side-signout:hover{color:var(--red)}.content{width:100%;min-width:0;max-width:1200px;padding:2.25rem 2.5rem 3rem}.greeting{letter-spacing:-.02em;margin-bottom:1.75rem;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:400}.greeting-date{color:var(--muted)}.brief-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.card{background:var(--surface);border-radius:var(--radius);min-width:0;padding:1.4rem 1.5rem}.card.wide{grid-column:1/-1}.card-header{align-items:center;gap:.6rem;margin-bottom:1.1rem;display:flex}.card-header h2{font-size:1.05rem;font-weight:600}.card-icon{width:34px;height:34px;color:var(--accent);background:var(--surface-2);border-radius:50%;place-items:center;display:grid}.card-action{margin-left:auto}.signin-card{flex-direction:column;align-items:flex-start;gap:.75rem;max-width:520px;display:flex}.muted{color:var(--muted)}.empty{color:var(--muted);margin:0;padding:1rem 0}.error-banner{color:var(--red);border-radius:var(--radius-sm);background:#ff55551a;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex}.button{font:inherit;color:var(--text);background:var(--surface-2);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.button:hover{border-color:var(--border)}.button.primary{color:var(--bg);background:var(--accent)}.button.primary:hover{background:#cba8fb}.button:disabled{opacity:.6;cursor:default}.icon-button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button:hover{color:var(--text);background:var(--surface-2)}.icon-button.danger:hover{color:var(--red)}.link-button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:.75rem;padding:0;font-size:.9rem}.link-button:hover{color:var(--accent)}.field{min-width:0;font:inherit;color:var(--text);background:var(--surface-2);border-radius:var(--radius-sm);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border:1px solid #0000;outline:none;padding:.6rem .9rem}.field:focus{border-color:var(--accent)}.grow{flex:1}.segmented{background:var(--surface-2);border-radius:999px;padding:3px;display:flex}.segmented button{min-width:32px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;place-items:center;padding:.35rem .8rem;font-size:.85rem;font-weight:600;display:grid}.segmented button:hover{color:var(--text)}.segmented button.active{color:var(--bg);background:var(--text)}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--surface-2);align-items:center;gap:.75rem;padding:.7rem 0;display:flex}.row:last-child{border-bottom:none}.row-time{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:.85rem}.row-title{flex:1;min-width:0;font-weight:500}a.row-title:hover{color:var(--accent)}.row.done .row-title{color:var(--muted);text-decoration:line-through}.check{cursor:pointer;align-items:center;gap:.6rem;display:flex}.check input{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag,.pill{max-width:45%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:var(--surface-2);border-radius:999px;flex-shrink:0;align-items:center;gap:.4rem;padding:.25rem .7rem;font-size:.8rem;display:inline-flex;overflow:hidden}.pill.overdue{color:var(--orange);background:#ffb86c1f}.new-task{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.new-task .grow{min-width:12rem}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem;display:grid}.week-day{background:var(--surface-2);border-radius:var(--radius-sm);flex-direction:column;gap:.4rem;min-height:140px;padding:.75rem .6rem;display:flex}.week-day.today{box-shadow:inset 0 0 0 2px var(--accent)}.week-day-head{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:baseline;margin-bottom:.25rem;font-size:.8rem;display:flex}.week-day-head strong{color:var(--text);font-size:1.15rem}.week-day.today .week-day-head strong{color:var(--accent)}.week-empty{color:var(--border)}.week-item{background:var(--surface);overflow-wrap:anywhere;border-left:3px solid;border-radius:6px;padding:.35rem .5rem;font-size:.82rem;line-height:1.35}.week-item a:hover{color:var(--accent)}.week-item .check{align-items:flex-start;gap:.4rem}.week-item .check input{width:14px;height:14px;margin:2px 0 0}.week-item.done span{color:var(--muted);text-decoration:line-through}.week-time{color:var(--muted);font-size:.75rem;display:block}.email-row{align-items:flex-start}.avatar{width:36px;height:36px;color:var(--bg);background:var(--pink);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.email-body{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.email-body:hover strong{color:var(--accent)}.email-top{gap:.5rem;min-width:0;display:flex}.email-top strong{flex-shrink:0}.email-subject,.email-snippet{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.email-snippet{color:var(--muted);font-size:.85rem}.doc-title{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.doc-title:hover{color:var(--accent)}.doc-progress{background:var(--surface-2);border-radius:999px;flex-shrink:0;width:80px;height:6px;overflow:hidden}.doc-progress span{background:var(--accent);border-radius:999px;height:100%;display:block}.paste-form{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.paste-form textarea{resize:vertical}.paste-form .button{align-self:flex-start}.file-button{cursor:pointer}.reader{flex-direction:column;gap:1.1rem;max-width:900px;display:flex}.reader-header{align-items:center;gap:1rem;display:flex}.reader-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:1.4rem;font-weight:600;overflow:hidden}.rsvp-box{background:var(--surface);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;padding:4.5rem 1rem;position:relative}.rsvp-box:before,.rsvp-box:after{content:"";background:var(--border);border-radius:2px;width:2px;height:1.25rem;position:absolute;left:50%}.rsvp-box:before{top:1.5rem}.rsvp-box:after{bottom:1.5rem}.rsvp-word{white-space:pre;grid-template-columns:1fr auto 1fr;font-family:ui-monospace,Menlo,monospace;font-size:clamp(2rem,7vw,3.5rem);display:grid}.rsvp-word .before{text-align:right}.rsvp-word .orp{color:var(--red)}.progress,.wpm input{width:100%;accent-color:var(--accent)}.reader-status{margin:0;font-size:.9rem}.reader-controls{justify-content:center;gap:.5rem;display:flex}.reader-controls .play{justify-content:center;min-width:8rem}.wpm{background:var(--surface);border-radius:var(--radius-sm);align-items:center;gap:1rem;padding:.9rem 1.2rem;font-weight:600;display:flex}.wpm span{min-width:5.5rem}.small{margin:0;font-size:.85rem}.full-text{background:var(--surface);border-radius:var(--radius);padding:1.25rem 1.5rem;line-height:1.8}.full-text span{cursor:pointer}.full-text span:hover{color:var(--accent)}.full-text .current{color:var(--bg);background:var(--pink);border-radius:4px}.typing-modes{flex-wrap:wrap;gap:.5rem;transition:opacity .2s;display:flex}.typing-modes.faded{opacity:0;pointer-events:none}.typing-test{cursor:text;margin-top:2rem;position:relative}.typing-status{height:2rem;color:var(--accent);font-size:1.5rem;font-weight:600}.typing-box{height:7.5rem;font-family:ui-monospace,Menlo,monospace;font-size:1.6rem;position:relative;overflow:hidden}.typing-words{flex-wrap:wrap;transition:transform .15s;display:flex;position:relative}.word{height:2.5rem;margin-right:.6em}.word.error{-webkit-text-decoration:underline var(--red);text-decoration:underline var(--red);text-underline-offset:.3em}.letter{line-height:2.5rem;display:inline-block}.letter.untyped{color:#6272a4}.letter.correct{color:var(--text)}.letter.incorrect{color:var(--red)}.letter.extra{color:#a33a3a}.caret{background:var(--accent);border-radius:2px;width:2px;height:1.7rem;margin-top:.4rem;transition:transform .1s;position:absolute;top:0;left:0}.caret.blink{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.typing-box.blurred .typing-words{filter:blur(5px);opacity:.5}.typing-box.blurred .caret{display:none}.typing-focus{place-items:center;margin:0;font-weight:600;display:grid;position:absolute;inset:2rem 0 0}.typing-input{opacity:0;pointer-events:none;width:1px;height:1px;font-size:16px;position:absolute;top:0;left:0}.typing-hint{color:var(--muted);margin-top:2.5rem;font-size:.85rem}kbd{font:inherit;color:var(--text);background:var(--surface-2);border-radius:6px;padding:.15rem .45rem}.typing-results{justify-items:start;gap:1.5rem;min-width:0;margin-top:1.5rem;display:grid}.pill.best{color:var(--green);background:#50fa7b1f}.results-main{gap:3rem;display:flex}.stat{flex-direction:column;gap:.2rem;display:flex}.stat-label{color:var(--muted);font-size:.85rem}.stat-value{font-size:1.3rem;font-weight:600}.stat.big .stat-value{color:var(--accent);font-size:3.5rem;font-weight:400;line-height:1}.results-more{flex-wrap:wrap;gap:1.25rem 2.25rem;display:flex}.speed-chart{width:100%}.chart-legend{color:var(--muted);gap:1.25rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.chart-legend i,.chart-tooltip i{vertical-align:middle;border-radius:2px;width:14px;height:2px;margin-right:.3rem;display:inline-block}.chart-plot{position:relative}.chart-plot svg{outline:none;display:block}.chart-plot svg:focus-visible{outline:2px solid var(--accent);border-radius:8px}.chart-grid{stroke:var(--surface-2);stroke-width:1px}.chart-axis{fill:var(--muted);font-size:11px}.chart-crosshair{stroke:var(--border);stroke-width:1px}.chart-tooltip{min-width:110px;color:var(--muted);pointer-events:none;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);gap:.2rem;padding:.55rem .75rem;font-size:.8rem;display:grid;position:absolute}.chart-tooltip strong{color:var(--text)}.tooltip-title{color:var(--text);font-weight:600}.chart-table{color:var(--muted);margin-top:.5rem;font-size:.85rem}.chart-table summary{cursor:pointer}.chart-table table{border-collapse:collapse;margin-top:.5rem}.chart-table th,.chart-table td{text-align:right;padding:.2rem 1rem .2rem 0}@media (width<=1100px){.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=760px){.app{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.sidebar{z-index:1;background:var(--bg);border-right:none;border-bottom:1px solid var(--surface);flex-direction:row;align-items:center;gap:.75rem;height:auto;padding:.75rem 1rem;position:sticky}.logo{font-size:0}.side-nav{flex-direction:row}.side-nav a,.side-signout{padding:.5rem .9rem}.side-signout{margin:0 0 0 auto;font-size:0}.content{padding:1.5rem 1rem 2.5rem}.brief-grid{grid-template-columns:1fr}.card{padding:1.1rem}.card-header{flex-wrap:wrap}.week-grid{grid-template-columns:1fr}.week-day{min-height:0}.typing-box{font-size:1.2rem}.doc-progress,.row .tag{display:none}}
