@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Public+Sans:wght@400;500;600;700&family=Unbounded:wght@500;600;700;800&display=swap";:root{--paper:#e3e6eb;--panel:#f4f5f7;--ink:#0b0d11;--muted:#5c6573;--line:#c8ced8;--olive:#1f8a4c;--orange:#3d63d8;--accent:#b6f23d;--skim:#3d63d8;--learn:#1f8a4c;--warn:#8a5a00;--warn-bg:#fff6df;--warn-line:#ecd39a;--sidebar:#07080b;--sidebar-muted:#8b93a3;--sidebar-line:#1a1d24;--radius:4px;--shadow-soft:0 12px 34px #0b0d1114;--font-display:Unbounded, "Avenir Next", sans-serif;--font-body:"Public Sans", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}body{color:var(--ink);font-family:var(--font-body);background:radial-gradient(900px 420px at 8% -8%, #b6f23d24, transparent 55%), radial-gradient(800px 380px at 100% 0%, #3d63d81a, transparent 52%), linear-gradient(180deg, #eceef2 0%, var(--paper) 45%, #d9dde5);background-attachment:fixed;margin:0;font-size:14px}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer;background:0 0;border:0}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #b6f23d}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(185deg, #12141a 0%, var(--sidebar) 42%, #050608 100%);border-right:1px solid var(--sidebar-line);z-index:10;color:#d7e0ea;flex-direction:column;width:242px;min-height:100vh;padding:28px 14px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{font-family:var(--font-display);letter-spacing:-1.2px;color:#f4f8fc;align-items:center;gap:10px;font-size:26px;font-weight:700;display:flex}.sidebar .brand{padding:0 12px 28px}.brand-mark{align-items:end;gap:3px;width:22px;height:23px;display:flex}.brand-mark span{background:#b6f23d;border-radius:2px;width:5px;display:block}.brand-mark span:first-child{height:9px}.brand-mark span:nth-child(2){height:16px}.brand-mark span:nth-child(3){height:23px;animation:2.8s ease-in-out infinite brandPulse}@keyframes brandPulse{0%,to{opacity:1;transform:scaleY(1)}50%{opacity:.7;transform:scaleY(.92)}}.new-action{color:#10140a;background:#b6f23d;border-radius:8px;align-items:center;gap:9px;width:100%;margin-bottom:22px;padding:11px 12px;font-size:12px;font-weight:700;transition:transform .18s,box-shadow .18s;display:flex}.new-action:hover{transform:translateY(-1px);box-shadow:0 8px 18px #b6f23d47}.new-action kbd{color:#0b3d36;font:10px var(--font-mono);background:#06241f14;border:1px solid #7aa81f;border-radius:3px;margin-left:auto;padding:1px 4px}nav{gap:4px;display:grid}.nav-item{text-align:left;width:100%;color:var(--sidebar-muted);border-radius:8px;align-items:center;gap:12px;padding:10px 11px;font-size:13px;font-weight:600;transition:background .15s,color .15s,transform .15s;display:flex}.nav-item:hover{color:#e8eef5;background:#ffffff0d}.nav-item.active{color:#f4f6f8;background:#b6f23d1f;box-shadow:inset 3px 0 #b6f23d}.sidebar-bottom{margin-top:auto}.profile{border-top:1px solid var(--sidebar-line);align-items:center;gap:9px;margin-top:18px;padding:17px 8px 2px;display:flex}.avatar{color:#d7fffa;background:#1f6f6a;border-radius:50%;place-items:center;width:30px;height:30px;font-size:10px;font-weight:800;display:grid}.profile div:nth-child(2){min-width:0;line-height:1.35;display:grid}.profile strong{white-space:nowrap;text-overflow:ellipsis;color:#e7eef6;font-size:11px;overflow:hidden}.profile span{color:var(--sidebar-muted);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.profile button{color:var(--sidebar-muted);margin-left:auto;display:grid}main{width:calc(100% - 242px);min-height:100vh;margin-left:242px}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;background:#f7fafcb8;border-bottom:1px solid #cfd9e4d9;justify-content:space-between;align-items:center;height:70px;padding:0 48px;display:flex;position:sticky;top:0}.crumb{color:#7a8a9a;font-size:12px}.crumb i{color:#b0bcc8;padding:0 8px;font-style:normal}.crumb b{color:#334155}.top-actions{align-items:center;gap:9px;display:flex}.date-shortcut{color:#4b5d6e;font-size:11px;font-weight:700;font-family:var(--font-mono)}.top-add,.primary-button{background:var(--ink);color:#fff;border-radius:7px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:800;transition:transform .15s,background .15s;display:inline-flex}.top-add:hover,.primary-button:hover{background:#1a2733;transform:translateY(-1px)}.mobile-menu{display:none}.page{max-width:1120px;margin:0 auto;padding:42px 48px 80px}.eyebrow{text-transform:uppercase;font:500 10px var(--font-mono);letter-spacing:1.4px;color:#6d7f90}.today-heading{justify-content:space-between;align-items:end;margin-bottom:26px;display:flex}.today-heading h1,.calendar-header h1,.split-heading h1{font:700 34px/1.08 var(--font-display);letter-spacing:-1.4px;margin:7px 0 0}.day-picker{color:#6d7d8c;font:500 9px var(--font-mono);letter-spacing:.5px;text-transform:uppercase;gap:5px;display:grid}.day-picker input{border:1px solid var(--line);background:var(--panel);color:#3a4a58;font:500 11px var(--font-mono);border-radius:5px;padding:7px}.pin-card{background:linear-gradient(135deg,#f2fafb,#eef6f8);border:1px solid #cfe3e8;border-radius:10px;align-items:center;gap:13px;margin-bottom:15px;padding:13px 16px;display:flex}.pin-icon{color:#0e7490;background:#d9eef2;border-radius:7px;place-items:center;width:31px;height:31px;display:grid}.pin-card .eyebrow{color:#3f7f8c;font-size:9px}.pin-card p{margin:2px 0 0;font-size:12px;font-weight:600}.plain-button{color:#0e7490;margin-left:auto;font-size:11px;text-decoration:underline}.pin-empty{color:#607184;border:1px dashed #c5d0db;border-radius:8px;align-items:center;gap:8px;margin-bottom:15px;padding:11px 14px;font-size:11px;font-weight:700;display:flex}.now-grid{grid-template-columns:1.65fr 1fr;gap:14px;margin-bottom:15px;display:grid}.now-card,.next-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:18px 19px}.now-card{background:linear-gradient(160deg,#f5fcfb,#eef7f5);border-color:#b9d8d4}.card-label{font:500 10px var(--font-mono);letter-spacing:.9px;text-transform:uppercase;color:#5f7480}.live-dot{background:#14b8a6;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.now-content{align-items:center;gap:11px;margin:11px 0 14px;display:flex}.category-glyph{color:#335066;background:#e4eef3;border-radius:8px;flex:none;place-items:center;width:34px;height:34px;display:grid}.now-content h2,.next-content h3,.empty-now h2{letter-spacing:-.3px;margin:0 0 3px;font-size:15px}.now-content p,.next-content p,.empty-now p{color:var(--muted);margin:0;font-size:10px}.timer-line{border-top:1px solid #d4e3e0;align-items:center;gap:9px;padding-top:12px;display:flex}.timer-line strong{font:500 17px var(--font-mono);letter-spacing:-.7px}.timer-line span{color:#6d7d88;flex:1;font-size:10px}.timer-button,.complete-button{border-radius:6px;align-items:center;gap:5px;padding:7px 9px;font-size:10px;font-weight:700;display:flex}.timer-button{background:var(--olive);color:#fff}.complete-button{color:var(--olive);background:#d9f3ee}.next-card{flex-direction:column;display:flex}.next-content{justify-content:space-between;align-items:center;margin:auto 0;display:flex}.empty-now{padding:16px 0 2px}.empty-now .ghost-button{margin-top:14px}.metrics{background:var(--line);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:42px;display:grid;overflow:hidden}.metric{background:#f7fafceb;padding:13px 15px}.metric-top{color:#6b7b8a;justify-content:space-between;align-items:baseline;font-size:10px;display:flex}.metric-top b{font:700 13px var(--font-mono);color:var(--ink);letter-spacing:-.6px}.progress{background:#dbe3eb;border-radius:5px;height:4px;margin:10px 0 6px;overflow:hidden}.progress i{background:var(--olive);border-radius:5px;height:100%;display:block}.metric small{color:#8492a0;font-size:9px}.section-head{justify-content:space-between;align-items:end;margin-bottom:17px;display:flex}.section-head h2,.chart-head h2{font:700 24px/1.1 var(--font-display);letter-spacing:-.8px;margin:5px 0 0}.timeline-actions{gap:8px;display:flex}.ghost-button{border:1px solid var(--line);color:#445667;background:#f7fafce6;border-radius:7px;align-items:center;gap:6px;padding:8px 11px;font-size:10px;font-weight:800;transition:border-color .15s,background .15s,transform .15s;display:inline-flex}.ghost-button:hover{background:#fff;border-color:#9eb0c2;transform:translateY(-1px)}.timeline{position:relative}.timeline:before{content:"";background:#c9d4df;width:1px;position:absolute;top:18px;bottom:20px;left:84px}.activity-row{border-bottom:1px solid #e2e8ef;grid-template-columns:68px 32px 38px 1fr auto;align-items:center;gap:9px;min-height:76px;padding:11px 0;display:grid;position:relative}.activity-row.is-active{background:#d9f3ee8c;border-bottom-color:#0000;border-radius:8px;margin:0 -14px;padding:11px 14px}.time{text-align:right;gap:2px;display:grid}.time b{font:500 11px var(--font-mono);color:#3d4d5c}.time span{font:10px var(--font-mono);color:#8a97a5}.activity-track{justify-content:center;align-items:center;height:100%;display:flex}.track-dot{z-index:1;background:#f7fafc;border:2px solid #b7c5d2;border-radius:50%;width:9px;height:9px}.done .track-dot{background:var(--olive);border-color:var(--olive)}.is-active .track-dot{background:#22d3ee;border-color:#0891b2;box-shadow:0 0 0 4px #0e74902e}.activity-title{align-items:center;gap:7px;display:flex}.activity-title h3{letter-spacing:-.15px;margin:0;font-size:12px}.activity-content p{color:#7a8896;margin:3px 0 0;font-size:10px}.actual{font:500 9px var(--font-mono);text-transform:uppercase;color:#0f766e;background:#d9f3ee;border-radius:3px;padding:1px 4px}.mandatory-mark,.optional-mark{font:500 8px var(--font-mono);border-radius:3px;padding:2px 4px}.mandatory-mark{color:#0e7490;background:#e0f4f8}.optional-mark{color:#607184;background:#e8eef4}.row-actions{opacity:.4;align-items:center;gap:6px;transition:all .2s;display:flex}.activity-row:hover .row-actions,.is-active .row-actions{opacity:1}.row-timer,.check-button,.more-button{border-radius:6px;place-items:center;width:27px;height:27px;display:grid}.row-timer{background:var(--olive);color:#fff}.row-timer.subtle{color:#405468;background:#e4eef3}.check-button{color:#0000;border:1px solid #c5d0db}.check-button.checked{color:#fff;background:var(--olive);border-color:var(--olive)}.more-button{color:#7a8896}.reflection{border-top:1px solid var(--line);align-items:center;gap:12px;margin-top:22px;padding:17px 0;display:flex}.reflection>div{flex:1}.reflection p{color:var(--muted);margin:4px 0;font-size:11px}.calendar-header,.split-heading{justify-content:space-between;align-items:end;margin-bottom:34px;display:flex}.calendar-header p,.split-heading p{color:var(--muted);max-width:520px;margin:8px 0 0;font-size:12px;line-height:1.55}.calendar-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:17px}.calendar-toolbar{justify-content:space-between;align-items:center;padding:0 3px 18px;display:flex}.calendar-toolbar>div{align-items:center;gap:9px;display:flex}.calendar-toolbar button{color:#5a6b7c;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.calendar-toolbar button:hover{background:#e4eaf0}.calendar-toolbar strong{font:700 18px var(--font-display)}.today-button{color:#334155;background:#e4eaf0;border-radius:4px;padding:5px 9px;font-size:10px;font-weight:700}.weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.weekdays span{font:500 9px var(--font-mono);text-transform:uppercase;color:#8492a0;padding:0 9px 9px}.day-cell{text-align:left;color:#3d4d5c;height:89px;font:500 11px var(--font-mono);border-top:1px solid #e2e8ef;border-right:1px solid #e2e8ef;padding:8px;position:relative}.day-cell:nth-child(7n){border-right:0}.day-cell.outside{color:#a8b4c0;background:#f4f7fa}.day-cell.is-today>span{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:21px;height:21px;margin:-3px;display:grid}.day-progress{background:#e2e8ef;border-radius:3px;height:3px;position:absolute;bottom:9px;left:8px;right:8px}.day-progress i{background:#0f766e;border-radius:3px;height:100%;display:block}.day-progress i.missed{background:#0e7490}.day-cell small{color:#5f7f8c;font-size:8px;position:absolute;bottom:19px;left:8px}.calendar-help{color:#6d7d8c;margin:15px 3px;font-size:10px}.objective-list{gap:14px;display:grid}.objective-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}.objective-top{justify-content:space-between;align-items:center;display:flex}.objective-icon{width:35px;height:35px;color:var(--olive);background:#d9f3ee;border-radius:9px;place-items:center;display:grid}.objective-top>span{font:500 16px var(--font-mono);color:var(--olive)}.objective-card h2{font:700 23px var(--font-display);letter-spacing:-.55px;margin:15px 0 5px}.objective-card>p{color:var(--muted);max-width:620px;margin:0;font-size:11px;line-height:1.65}.objective-progress{margin:16px 0}.objective-meta{color:#6d7d8c;flex-wrap:wrap;gap:15px;font-size:10px;display:flex}.objective-edit{gap:8px;margin-top:18px;display:flex}.delete-text{color:#b45309;font-size:10px;text-decoration:underline}.analytics-metrics{background:var(--panel);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(4,1fr);margin-bottom:18px;display:grid;overflow:hidden}.analytics-metrics>div{border-right:1px solid var(--line);padding:17px}.analytics-metrics>div:last-child{border:0}.analytics-metrics span{color:var(--muted);font-size:10px}.analytics-metrics strong{font:700 24px var(--font-display);margin:8px 0 3px;display:block}.analytics-metrics p{color:#8492a0;margin:0;font-size:9px}.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}.chart-head{justify-content:space-between;display:flex}.chart-total{font:500 20px var(--font-mono);color:var(--olive)}.bar-chart{border-bottom:1px solid #d5dde6;align-items:end;gap:18px;height:210px;margin-top:28px;padding:0 10px;display:flex}.bar-chart>div{flex:1;justify-content:center;align-items:end;height:100%;display:flex;position:relative}.bar-chart i{background:#14b8a6;border-radius:4px 4px 0 0;width:100%;max-width:54px}.bar-chart span{font:9px var(--font-mono);color:#7a8896;position:absolute;bottom:-21px}.history-list{border-top:1px solid var(--line)}.history-list>button{border-bottom:1px solid var(--line);text-align:left;grid-template-columns:12px 1fr auto 18px;align-items:center;gap:16px;width:100%;padding:18px 5px;display:grid}.history-list>button:hover{background:#f7fafccc}.history-mark{background:#14b8a6;border-radius:3px;width:4px;height:36px}.history-mark.h1{background:#0e7490}.history-mark.h2{background:#64748b}.history-mark.h3{background:#94a3b8}.history-list h2{font:700 18px var(--font-display);margin:0 0 4px}.history-list p{color:#6d7d8c;margin:0;font-size:10px}.history-status{text-align:right;gap:4px;display:grid}.history-status span{color:#335066;font-size:10px;font-weight:700}.history-status small{font:9px var(--font-mono);color:#8492a0}.empty-state{text-align:center;background:#f7fafcb3;border:1px dashed #b7c5d2;border-radius:14px;padding:44px 20px}.empty-state>div{color:#0f766e;background:#d9f3ee;border-radius:9px;place-items:center;width:37px;height:37px;margin:auto;display:grid}.empty-state h2{font:700 23px var(--font-display);margin:13px 0 5px}.empty-state p{color:var(--muted);max-width:390px;margin:0 auto 17px;font-size:11px;line-height:1.6}.modal-layer{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f17206b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid #cfd9e4cc;border-radius:14px;width:min(470px,100%);padding:22px;box-shadow:0 24px 70px #0f172047}.modal-head{justify-content:space-between;align-items:start;margin-bottom:20px;display:flex}.modal-head h2{font:700 24px var(--font-display);margin:5px 0 0}.icon-button{border:1px solid var(--line);background:#fff;border-radius:7px;place-items:center;width:32px;height:32px;display:grid}.modal label,.auth-panel label{color:#3d4d5c;gap:6px;margin-bottom:15px;font-size:11px;font-weight:700;display:grid}.modal label span,.auth-panel label span{color:#8492a0;font-weight:500}.modal input,.modal select,.modal textarea,.auth-panel input{border:1px solid var(--line);color:#1e293b;background:#fff;border-radius:7px;width:100%;padding:9px;font-size:12px}.modal textarea{resize:vertical;min-height:66px}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.modal-foot{justify-content:end;gap:8px;margin-top:19px;display:flex}.form-error{color:#b45309;margin:-5px 0 10px;font-size:11px}.settings-modal{gap:18px;display:grid}.settings-modal h3{margin:6px 0 2px;font-size:15px}.settings-modal p{color:var(--muted);margin:0;font-size:11px}.toast{z-index:50;color:#fff;background:#101820;border-radius:8px;align-items:center;gap:8px;padding:10px 11px;font-size:11px;display:flex;position:fixed;bottom:23px;right:23px;box-shadow:0 12px 30px #0f172047}.toast.error{background:#7f1d1d;max-width:360px}.toast button{color:#fff;display:grid}.loading-screen{background:var(--paper);color:#5a6b7c;place-content:center;justify-items:center;gap:14px;min-height:100vh;font-size:11px;display:grid}.auth-page{background:var(--paper);grid-template-columns:1.15fr .85fr;width:100%;min-height:100vh;margin:0;display:grid}.auth-intro{color:#e8eef5;background:radial-gradient(700px 340px at 20% 10%,#2dd4bf2e,#0000 60%),linear-gradient(165deg,#12202c,#0f1720 60%,#0b3d36);flex-direction:column;justify-content:space-between;min-height:100vh;padding:46px max(50px,8vw);display:flex}.auth-intro h1{font:700 clamp(42px,5vw,65px)/.98 var(--font-display);letter-spacing:-2px;color:#f8fcff;margin:17px 0}.auth-intro p{color:#9eb0c2;max-width:410px;font-size:13px;line-height:1.75}.auth-intro small{font:10px var(--font-mono);color:#7d8fa3}.auth-panel{place-items:center;padding:30px;display:grid}.auth-panel form{width:min(360px,100%)}.auth-panel h2{font:700 27px/1.1 var(--font-display);letter-spacing:-.7px;margin:8px 0 27px}.auth-submit{justify-content:center;width:100%;padding:11px}.auth-switch{color:#6d7d8c;text-align:center;margin-top:18px;font-size:11px}.auth-switch button{color:var(--olive);font-weight:800;text-decoration:underline}@media (width<=850px){.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.is-open{transform:translate(0);box-shadow:10px 0 30px #0f172059}.mobile-menu{place-items:center;width:32px;height:32px;display:grid}.topbar{padding:0 20px}.crumb{display:none}main{width:100%;margin-left:0}.page{padding:34px 24px 54px}.now-grid{grid-template-columns:1fr}.metrics,.analytics-metrics{grid-template-columns:repeat(2,1fr)}.analytics-metrics>div:nth-child(2){border-right:0}.analytics-metrics>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.auth-page{grid-template-columns:1fr}.auth-intro{gap:45px;min-height:auto;padding:40px}.auth-intro small{display:none}}@media (width<=560px){.top-add span{display:none}.page{padding:28px 16px 45px}.today-heading h1,.calendar-header h1,.split-heading h1{font-size:28px}.today-heading{align-items:start;gap:13px}.now-card,.next-card{padding:15px}.timer-line{flex-wrap:wrap}.timer-line span{min-width:60px}.metrics{margin-bottom:31px}.section-head{align-items:start;gap:14px}.timeline-actions .ghost-button{display:none}.timeline:before{left:58px}.activity-row{grid-template-columns:43px 24px 34px 1fr;gap:6px;min-height:80px}.activity-row .row-actions{opacity:1;grid-column:4;justify-content:flex-start}.row-actions .more-button{display:none}.activity-content{align-self:end}.time{align-self:start;padding-top:5px}.activity-row.is-active{margin:0 -6px;padding:11px 6px}.day-cell{height:62px;padding:5px;font-size:10px}.day-progress{bottom:5px;left:5px;right:5px}.day-cell small{display:none}.weekdays span{padding:0 5px 7px;font-size:8px}.calendar-panel{padding:10px}.calendar-header,.split-heading{align-items:start;gap:12px}.bar-chart{gap:9px}.history-list>button{grid-template-columns:9px 1fr auto 14px;gap:8px}.history-list h2{font-size:16px}.history-list p{max-width:170px}.history-status{display:none}.reflection{align-items:start}.auth-intro{padding:28px}.auth-intro h1{font-size:42px}.auth-panel{padding:35px 24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.welcome-page{background:radial-gradient(900px 420px at 0% 0%, #2dd4bf24, transparent 55%), radial-gradient(700px 360px at 100% 10%, #0e74901f, transparent 50%), var(--paper);flex-direction:column;min-height:100vh;padding:28px max(36px,8vw) 24px;display:flex}.welcome-page header{justify-content:space-between;align-items:center;display:flex}.welcome-login{color:#0f3f3b;background:#e8f8f5;border:1px solid #9ad5ce;border-radius:7px;padding:9px 14px;font-size:11px;font-weight:800}.welcome-login:hover{background:#d7f3ee}.welcome-hero{grid-template-columns:1.15fr .85fr;align-items:center;gap:80px;width:100%;max-width:1040px;margin:auto;padding:70px 0;display:grid}.welcome-hero h1{font:700 clamp(49px,6vw,78px)/.93 var(--font-display);letter-spacing:-2.8px;margin:17px 0}.welcome-hero>div>p{color:#5a6b7c;max-width:500px;font-size:14px;line-height:1.8}.welcome-actions{align-items:center;gap:18px;margin-top:28px;display:flex}.welcome-cta{padding:12px 15px;font-size:11px}.welcome-text{color:var(--olive);font-size:11px;font-weight:800;text-decoration:underline}.welcome-principles{border-left:1px solid #c5d0db;gap:22px;padding-left:30px;display:grid}.welcome-principles article{position:relative}.welcome-principles span{font:500 10px var(--font-mono);color:#5f7f8c}.welcome-principles h2{font:700 22px var(--font-display);margin:4px 0}.welcome-principles p{color:#6d7d8c;margin:0;font-size:11px;line-height:1.65}.welcome-page footer{font:10px var(--font-mono);color:#8492a0}.back-link{color:#335066;margin:0 0 35px;padding:0;font-size:10px;font-weight:800;display:block}.auth-intro .eyebrow{color:#7d8fa3;display:block}.settings-actions{align-items:center;gap:15px;display:flex}.suggestions{margin:-4px 0 15px}.suggestions>span,.form-help{font:500 9px var(--font-mono);letter-spacing:.5px;color:#8492a0;margin:0 0 6px;display:block}.suggestions>div{flex-wrap:wrap;gap:5px;max-height:74px;padding-right:2px;display:flex;overflow:auto}.suggestions button{color:#335066;background:#e4eef3;border:1px solid #c5d5df;border-radius:4px;padding:5px 6px;font-size:9px}.suggestions button:hover{background:#d7e8ef}.form-help{margin:-8px 0 15px}.settings-modal form{gap:12px;display:grid}.settings-modal label{color:#3d4d5c;gap:6px;font-size:11px;font-weight:700;display:grid}.settings-modal input{border:1px solid var(--line);color:#1e293b;background:#fff;border-radius:7px;width:100%;padding:9px;font-size:12px}.settings-email{gap:4px!important;font-size:10px!important;display:grid!important}.settings-email strong{color:#3d4d5c;font-size:12px}.settings-divider{background:var(--line);height:1px}.delete-account-form{background:#fff7f4;border:1px solid #f0d2c8;border-radius:8px;padding:12px!important}.delete-account-form p{line-height:1.55;color:#9a4b3c!important;margin:0!important;font-size:10px!important}.danger-button{color:#fff;background:#9b4b42;border-radius:7px;padding:8px 11px;font-size:10px;font-weight:800}.danger-button:disabled{opacity:.5;cursor:default}.delete-account-modal{gap:14px;display:grid}.delete-account-modal form{gap:12px;display:grid}.delete-account-modal label{color:#3d4d5c;gap:6px;font-size:11px;font-weight:700;display:grid}.delete-account-modal input{border:1px solid var(--line);color:#1e293b;background:#fff;border-radius:7px;width:100%;padding:9px;font-size:12px}.delete-account-modal input:focus{outline-offset:1px;outline:2px solid #9b4b42}.delete-warning-icon{color:#9b4b42;background:#fff0ec;border:1px solid #f2cec6;border-radius:10px;place-items:center;width:42px;height:42px;display:grid}.confirm-text{color:#5a6b7c;margin:0;font-size:12px;line-height:1.6}.auth-message{background:var(--paper);flex-direction:column;min-height:100vh;padding:28px max(36px,8vw);display:flex}.auth-message>section{width:min(420px,100%);margin:auto}.auth-message h1{font:700 42px/1 var(--font-display);letter-spacing:-1.3px;margin:12px 0}.auth-message p{color:#5a6b7c;margin:0 0 19px;font-size:12px;line-height:1.7}.auth-message form{gap:13px;display:grid}.auth-message label{gap:6px;font-size:11px;font-weight:700;display:grid}.auth-message input{border:1px solid var(--line);background:#fff;border-radius:7px;padding:10px}.auth-message-icon{color:#0f766e;background:#d9f3ee;border-radius:9px;place-items:center;width:40px;height:40px;margin-bottom:17px;display:grid}.forgot-link{color:#335066;text-align:left;margin:-6px 0 0;font-size:10px;text-decoration:underline}@media (width<=700px){.welcome-page{padding:22px 24px}.welcome-hero{grid-template-columns:1fr;gap:45px;padding:55px 0}.welcome-hero h1{font-size:49px}.welcome-principles{border-top:1px solid #c5d0db;border-left:0;grid-template-columns:repeat(3,1fr);gap:14px;padding:24px 0 0}.welcome-principles h2{font-size:18px}.welcome-principles p{font-size:10px}.welcome-page footer{display:none}}@media (width<=480px){.welcome-principles{grid-template-columns:1fr}.welcome-hero{padding:38px 0}.welcome-actions{flex-direction:column;align-items:start}}.brand img{filter:brightness(1.15);width:93px;height:auto;display:block}.sidebar .brand img{filter:brightness(1.35)saturate(1.05)}.weekday-picker{border:0;gap:5px;margin:0 0 15px;padding:0;display:flex}.weekday-picker legend{margin-bottom:6px;font-size:11px;font-weight:700}.weekday-picker button{width:29px;height:29px;font:500 10px var(--font-mono);color:#5a6b7c;border:1px solid #c5d0db;border-radius:50%}.weekday-picker button.selected{background:var(--olive);border-color:var(--olive);color:#fff}.books-page{flex-direction:column;display:flex}.books-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:22px;display:grid}.book-card{background:var(--panel);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:2px;flex-direction:column;padding:20px 20px 18px;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative}.book-card:before{content:"";opacity:.8;background:#b6f23d;width:3px;position:absolute;inset:0 auto 0 0}.book-card:hover{box-shadow:var(--shadow-soft);border-color:#9aa6b8;transform:translateY(-2px)}.book-card-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.book-card-title{font:700 18px/1.2 var(--font-display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.4px;margin:0;overflow:hidden}.book-card-title.truncate{text-overflow:ellipsis;overflow:hidden}.book-card-author{color:var(--muted);margin:4px 0 14px;font-size:12px}.domain-badge{font:600 9px var(--font-mono);text-transform:uppercase;color:#2b3443;white-space:nowrap;letter-spacing:.5px;background:#e8ebf0;border:1px solid #c8ced8;border-radius:2px;padding:3px 7px;display:inline-block}.domain-badge.domain-systems_os{color:#2a45a8;background:#e7ecff;border-color:#c4cff5}.domain-badge.domain-theory{color:#3d5c12;background:#eef6df;border-color:#d3e6a8}.domain-badge.domain-math{color:#2548a0;background:#e7f0ff;border-color:#c5d5f6}.domain-badge.domain-software_eng{color:#17643a;background:#e6f6ec;border-color:#b9e0c8}.domain-badge.domain-general{color:#445062;background:#e8ebf0;border-color:#c8ced8}.completed-badge{font:700 9px var(--font-mono);color:#17643a;background:#e6f6ec;border:1px solid #b9e0c8;border-radius:2px;padding:2px 6px}.dual-progress-container{flex-direction:column;gap:10px;margin:14px 0;display:flex}.dual-progress-bar{flex-direction:column;gap:4px;display:flex}.progress-label-row{font:500 10px var(--font-mono);color:var(--muted);letter-spacing:.3px;justify-content:space-between;display:flex}.progress-track{background:#d3d8e0;border-radius:999px;height:6px;overflow:hidden}.progress-fill-skimmed{background:linear-gradient(90deg,#3d63d8,#7390f0);border-radius:999px;height:100%;transition:width .35s cubic-bezier(.22,1,.36,1)}.progress-fill-learned{background:linear-gradient(90deg,#1f8a4c,#b6f23d);border-radius:999px;height:100%;transition:width .35s cubic-bezier(.22,1,.36,1)}.book-card-meta{font:500 11px var(--font-mono);color:var(--muted);border-top:1px dashed #cfd4dc;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;display:flex}.book-detail-page{flex-direction:column;display:flex}.book-folio{box-shadow:var(--shadow-soft);background:linear-gradient(#ffffffe0,#f4f5f7f0),repeating-linear-gradient(0deg,#0000,#0000 27px,#7882960d 28px);border:1px solid #b8c0cc;border-radius:2px;margin-bottom:26px;padding:28px 30px 24px;animation:.4s both folioIn;position:relative;overflow:hidden}.book-folio:before{content:"FOCUS INDEX";font:600 9px var(--font-mono);letter-spacing:1.6px;color:#8b93a3;position:absolute;top:14px;right:18px}.book-folio:after{content:"";background:linear-gradient(#b6f23d 0%,#3d63d8 100%);width:5px;position:absolute;inset:0 auto 0 0}@keyframes folioIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.book-detail-header{margin-bottom:0}.book-detail-back{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:18px;padding:0;font-size:11px;font-weight:700;display:inline-flex}.book-detail-back:hover{color:var(--ink)}.book-detail-kicker{align-items:center;gap:10px;margin-bottom:10px;display:flex}.book-detail-kicker .eyebrow{color:#3d63d8}.book-detail-title{font:700 clamp(28px, 4vw, 42px)/1.05 var(--font-display);letter-spacing:-1.4px;text-wrap:balance;max-width:16ch;margin:0 0 12px}.book-detail-byline{color:var(--muted);border-bottom:1px solid #d3d8e0;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;font-size:13px;display:flex}.book-detail-author{color:var(--muted);font-size:13px;font-style:italic}.book-signal-meters{grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px;display:grid}.book-signal-meter{background:#ffffffa6;border:1px solid #d3d8e0;border-radius:2px;padding:12px 14px}.book-signal-meter .progress-label-row{margin-bottom:6px}.book-signal-meter strong{font:700 16px var(--font-mono);color:var(--ink);letter-spacing:-.4px}.book-header-actions{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.refetch-btn{align-items:center;gap:6px;display:inline-flex}.toc-status-banner{border-radius:2px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;font-size:12px;animation:.35s both folioIn;display:flex}.toc-status-banner.needs_review{background:var(--warn-bg);border:1px solid var(--warn-line);color:#6e4800;border-left:4px solid #c4921a}.toc-status-banner .banner-content{align-items:flex-start;gap:10px;display:flex}.toc-status-banner .banner-content p{color:#8a6418;margin:3px 0 0;font-size:11px}.banner-action-btn{color:#fff;white-space:nowrap;cursor:pointer;background:#6e4800;border:none;border-radius:2px;padding:7px 12px;font-size:11px;font-weight:700}.banner-action-btn:hover{background:#563700}.curriculum-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:end;gap:12px;margin:4px 0 16px;padding-bottom:10px;display:flex}.curriculum-head h2{font:700 20px/1 var(--font-display);letter-spacing:-.5px;margin:4px 0 0}.curriculum-head p{color:var(--muted);margin:0;font-size:12px}.toc-hierarchy{background:linear-gradient(#ffffff8c,#f4f5f766);border:1px solid #c8ced8;border-radius:2px;flex-direction:column;gap:0;margin-top:0;padding:8px 0 24px;display:flex;position:relative}.toc-hierarchy:before{display:none}.point-item{background:0 0;border:0;border-bottom:1px dashed #d0d5dd;border-radius:0;padding:14px 20px;transition:background-color .15s,transform .15s;position:relative}.point-item:hover{box-shadow:none;background:#b6f23d0f;border-color:#d0d5dd;transform:none}.point-item.skimmed-only{background:#3d63d80d;border-bottom-color:#b7c4ef}.point-item.learned{background:#1f8a4c0f;border-bottom-color:#9dceb0}.point-item.sub-point{background:0 0;border:0;border-bottom:1px dashed #d8dde5;margin-top:0;margin-left:0;padding-left:28px}.point-item.sub-point:hover{background:#3d63d80a}.point-main-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.point-info{flex:1;min-width:0}.point-title-line{grid-template-columns:auto minmax(0,max-content) minmax(24px,1fr) auto auto;align-items:baseline;gap:8px;width:100%;display:grid}.point-sequence{font:700 11px var(--font-mono);color:#6b7382;flex-shrink:0}.point-title{color:var(--ink);word-break:break-word;letter-spacing:-.15px;margin:0;font-size:14px;font-weight:700}.point-leader{background-image:radial-gradient(circle,#9aa3b2 1px,#0000 1.5px);background-position:50%;background-repeat:repeat-x;background-size:6px 3px;align-self:center;min-width:24px;height:1px;margin-top:2px;display:block}.point-status-mark{font:700 10px var(--font-mono);color:#8b93a3;text-align:right;min-width:1.6ch}.point-item.skimmed-only .point-status-mark{color:#3d63d8}.point-item.learned .point-status-mark{color:#1f8a4c}.point-theoretical-badge{font:600 8px var(--font-mono);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-radius:2px;padding:2px 6px}.point-theoretical-badge.theoretical{color:#2a45a8;background:#e7ecff}.point-theoretical-badge.practical{color:#3d5c12;background:#eef6df}.point-summary{color:var(--muted);max-width:70ch;margin:8px 0 0;font-size:12px;line-height:1.65}.point-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.point-btn{border:1px solid var(--line);color:#2f3847;cursor:pointer;background:#fff;border-radius:2px;align-items:center;gap:5px;padding:6px 10px;font-size:11px;font-weight:700;transition:all .15s;display:inline-flex}.point-btn:disabled{opacity:.55;cursor:not-allowed}.point-btn.skim-btn:hover{color:#3d63d8;border-color:#3d63d8}.point-btn.learn-btn:hover{color:#1f8a4c;border-color:#1f8a4c}.point-btn.skim-btn.skimmed-active{color:#2a45a8;background:#e7ecff;border-color:#b7c4ef}.point-btn.learn-btn.learned-active{color:#17643a;background:#e6f6ec;border-color:#9dceb0}.notes-toggle-button{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-left:auto;padding:4px 8px;font-size:11px;display:inline-flex}.notes-toggle-button:hover{color:var(--ink)}.notes-count-badge{font:700 10px var(--font-mono);color:#2b3443;background:#e8ebf0;border-radius:2px;padding:1px 6px}.ai-feedback-card{color:#1d4d33;background:#f3faf5;border:1px solid #c5dfcf;border-radius:2px;margin-top:12px;padding:12px 14px;font-size:12px;line-height:1.6}.ai-feedback-card.skim_encouragement{color:#2a45a8;background:#f2f5ff;border-color:#c4cff5}.ai-feedback-card.learn_completion{color:#1d4d33;background:#f3faf5;border-color:#c5dfcf}.ai-feedback-tag{font:700 9px var(--font-mono);text-transform:uppercase;align-items:center;gap:5px;margin-bottom:5px;display:flex}.ai-feedback-card .feedback-text{margin:0}.point-notes-drawer{border-top:1px dashed #d0d5dd;margin-top:12px;padding-top:12px}.notes-list{flex-direction:column;gap:8px;max-height:220px;margin-bottom:12px;display:flex;overflow-y:auto}.note-card{background:#eef0f4;border:1px solid #d3d8e0;border-radius:2px;padding:8px 10px}.note-text{color:var(--ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:12px;line-height:1.6}.note-date{font:500 9px var(--font-mono);color:#8b93a3;margin-top:4px;display:block}.notes-empty-state{color:var(--muted);margin:0;padding:4px 0;font-size:11px;font-style:italic}.note-input-form{flex-direction:column;gap:8px;margin-top:8px;display:flex}.note-textarea{font:inherit;border:1px solid var(--line);resize:vertical;background:#fff;border-radius:2px;min-height:50px;padding:8px 10px;font-size:12px}.note-form-actions{justify-content:flex-end;display:flex}.modal-loading-banner{color:#17643a;background:#eef6df;border:1px solid #d3e6a8;border-radius:2px;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;font-size:11px;line-height:1.5;display:flex}.toggle-pill{background:#e8ebf0;border:1px solid #c8ced8;border-radius:2px;gap:2px;padding:3px;display:inline-flex}.toggle-option{color:#5c6573;cursor:pointer;background:0 0;border:none;border-radius:2px;padding:4px 12px;font-size:11px;font-weight:600;transition:all .15s}.toggle-option.active{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0b0d1114}.field-row-split{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.book-tabs{border-bottom:1px solid var(--line);align-items:center;gap:8px;margin-bottom:20px;padding-bottom:10px;display:flex}.book-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:2px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .15s}.book-tab:hover{color:var(--ink);background:#e8ebf0}.book-tab.active{color:var(--ink);background:#eef6df;font-weight:700}.archived-badge{font:700 9px var(--font-mono);color:#445062;text-transform:uppercase;background:#e8ebf0;border-radius:2px;margin-left:6px;padding:2px 6px}.chapter-group{background:0 0;border:0;margin:0;animation:.35s both folioIn;position:relative}.chapter-group:before{display:none}.chapter-shell{background:0 0;border:0;border-bottom:1px solid #b8c0cc;border-radius:0;overflow:visible}.chapter-group.expanded .chapter-shell{box-shadow:none;background:#ffffff59;border-color:#9aa6b8}.chapter-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 14px;display:flex}.chapter-group.expanded .chapter-header{background:linear-gradient(90deg,#b6f23d14,#0000 55%);border-bottom-color:#d3d8e0}.chapter-header:hover{background:#0b0d1108}.chapter-title-line{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.chapter-chevron{width:22px;height:22px;color:var(--muted);background:#e8ebf0;border-radius:2px;justify-content:center;align-items:center;transition:transform .2s,background .15s,color .15s;display:flex}.chapter-group.expanded .chapter-chevron{color:#b6f23d;background:#0b0d11;transform:rotate(90deg)}.chapter-title{font:700 15px/1.25 var(--font-display);color:var(--ink);letter-spacing:-.35px;margin:0}.chapter-subpoint-count{font:500 11px var(--font-mono);color:var(--muted);white-space:nowrap;margin-left:4px}.chapter-status-pills{flex-shrink:0;gap:6px;display:flex}.chapter-pill{font:600 9px var(--font-mono);letter-spacing:.3px;color:#5c6573;background:#e8ebf0;border-radius:2px;padding:3px 7px}.chapter-pill.skim{color:#2a45a8;background:#e7ecff}.chapter-pill.learn{color:#17643a;background:#e6f6ec}.chapter-body{padding:0;animation:.24s chapterOpen}@keyframes chapterOpen{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.subpoints-container{border-left:2px solid #c4cff5;flex-direction:column;gap:0;margin:0 0 0 28px;padding:0;display:flex}.learning-lock-banner{z-index:100;color:#eef0f4;background:#07080b;border:1px solid #1a1d24;border-left:4px solid #b6f23d;border-radius:2px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 18px;display:flex;position:sticky;top:82px;box-shadow:0 8px 24px #07080b4d}.learning-lock-info{align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.learning-lock-pulse{background:#b6f23d;border-radius:50%;width:10px;height:10px;animation:1.6s infinite pulse-green;box-shadow:0 0 #b6f23db3}@keyframes pulse-green{0%{box-shadow:0 0 #b6f23db3}70%{box-shadow:0 0 0 8px #b6f23d00}to{box-shadow:0 0 #b6f23d00}}.companion-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:200;background:#f4f5f7f7;border-left:1px solid #c8ced8;flex-direction:column;width:380px;max-width:90vw;height:100vh;animation:.3s slideInRight;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 32px #07080b24}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.companion-header{background:linear-gradient(135deg,#eef6df 0%,#e7ecff 100%);border-bottom:1px solid #d3d8e0;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.companion-header-info{align-items:center;gap:12px;display:flex}.companion-header-info h3{color:var(--ink);margin:0;font-size:14px;font-weight:700}.companion-header-info span{color:var(--muted);margin-top:1px;font-size:11px;display:block}.companion-quick-actions{border-bottom:1px solid #e8ebf0;flex-shrink:0;gap:6px;padding:10px 16px;display:flex}.companion-quick-actions button{color:#2b3443;cursor:pointer;background:#fff;border:1px solid #c8ced8;border-radius:2px;align-items:center;gap:5px;padding:6px 12px;font-size:11px;font-weight:600;transition:all .2s;display:flex}.companion-quick-actions button:hover{color:#17643a;background:#eef6df;border-color:#1f8a4c}.companion-quick-actions button:disabled{opacity:.5;cursor:not-allowed}.companion-messages{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.companion-message{gap:10px;animation:.3s fadeInUp;display:flex}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.companion-message.user{flex-direction:row-reverse}.companion-message-icon{color:#b6f23d;background:#0b0d11;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.companion-message-content{border-radius:2px;max-width:80%;padding:10px 14px;font-size:13px;line-height:1.6}.companion-message.ai .companion-message-content{color:var(--ink);background:#eef0f4}.companion-message.user .companion-message-content{color:#f4f5f7;background:#0b0d11}.companion-message-content p{white-space:pre-wrap;word-break:break-word;margin:0}.companion-input{background:#eef0f4;border-top:1px solid #d3d8e0;flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.companion-input input{background:#fff;border:1px solid #c8ced8;border-radius:2px;outline:none;flex:1;padding:10px 14px;font-size:13px;transition:border-color .2s}.companion-input input:focus{border-color:#3d63d8}.companion-input button{color:#b6f23d;cursor:pointer;background:#0b0d11;border:none;border-radius:2px;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex}.companion-input button:hover:not(:disabled){background:#1a1d24;transform:translateY(-1px)}.companion-input button:disabled{opacity:.3;cursor:not-allowed}.companion-typing{gap:4px;padding:4px 0;display:flex}.companion-typing span{background:#1f8a4c;border-radius:50%;width:6px;height:6px;animation:.6s infinite alternate typingBounce}.companion-typing span:nth-child(2){animation-delay:.2s}.companion-typing span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%{opacity:.3;transform:translateY(0)}to{opacity:1;transform:translateY(-4px)}}.book-detail-page.has-companion{margin-right:380px}@media (width<=768px){.companion-panel{width:100vw}.book-detail-page.has-companion{margin-right:0}.book-signal-meters{grid-template-columns:1fr}.book-detail-title{max-width:none;font-size:28px}.point-title-line{grid-template-columns:auto minmax(0,1fr) auto}.point-leader{display:none}.subpoints-container{margin-left:14px}}.ghost-button.active{color:#17643a;background:#eef6df;border-color:#1f8a4c}.book-timeline-section,.book-analytics-section{background:#ffffffbf;border:1px solid #c8ced8;border-radius:2px;margin-bottom:20px;padding:20px 24px;animation:.3s both folioIn}.book-timeline-section h3,.book-analytics-section h3{font:700 14px var(--font-display);color:var(--ink);align-items:center;gap:8px;margin:0 0 16px;display:flex}.timeline-empty{color:var(--muted);font-size:13px;font-style:italic}.book-timeline{padding-left:24px;position:relative}.book-timeline:before{content:"";background:linear-gradient(#1f8a4c,#d3d8e0);border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:6px}.timeline-event{align-items:flex-start;gap:12px;padding:8px 0;animation:.3s fadeInUp;display:flex;position:relative}.timeline-dot{z-index:1;background:#fff;border:2px solid #1f8a4c;border-radius:50%;width:12px;height:12px;position:absolute;top:12px;left:-24px}.timeline-event.learned .timeline-dot{background:#1f8a4c;border-color:#1f8a4c}.timeline-event.skimmed .timeline-dot{background:#3d63d8;border-color:#3d63d8}.timeline-content{flex-direction:column;gap:2px;display:flex}.timeline-date{font:500 11px var(--font-mono);color:var(--muted)}.timeline-label{color:var(--ink);font-size:13px}.timeline-label strong{font-weight:600}.book-analytics-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.book-analytics-stat{text-align:center;background:#eef0f4;border-radius:2px;padding:12px}.stat-value{color:#17643a;font-size:20px;font-weight:800;display:block}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:10px;display:block}.mini-velocity-chart{align-items:flex-end;gap:3px;height:40px;margin-top:16px;padding:4px 0;display:flex}.mini-bar{background:linear-gradient(#1f8a4c,#b6f23d);border-radius:2px 2px 0 0;width:100%;min-width:4px;transition:height .3s}.reading-velocity-card svg{margin:12px 0;display:block}.velocity-chart{padding:8px 0}.velocity-legend{justify-content:center;gap:16px;padding-top:8px;display:flex}.velocity-legend span{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.velocity-legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.eta-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:4px 0;display:grid}.eta-card{background:#eef0f4;border:1px solid #d3d8e0;border-radius:2px;padding:16px 20px}.eta-card h4{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0 0 10px;font-size:14px;font-weight:700;overflow:hidden}.eta-progress-bar{background:#d3d8e0;border-radius:3px;height:6px;margin-bottom:10px;overflow:hidden}.eta-progress-fill{background:linear-gradient(90deg,#1f8a4c,#b6f23d);border-radius:3px;height:100%;transition:width .5s}.eta-stats{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.milestone-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding:4px 0;display:grid}.milestone-card{background:#eef0f4;border:1px solid #d3d8e0;border-radius:2px;align-items:center;gap:12px;padding:14px 16px;transition:all .2s;display:flex}.milestone-card.earned{background:linear-gradient(135deg,#f3faf5,#eef6df);border-color:#b9e0c8}.milestone-card:hover{transform:translateY(-1px);box-shadow:0 2px 8px #07080b0f}.milestone-icon{flex-shrink:0;font-size:24px;line-height:1}.milestone-info{flex-direction:column;gap:2px;min-width:0;display:flex}.milestone-info strong{color:var(--ink);font-size:13px;font-weight:700}.milestone-book{color:#17643a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.milestone-date{font:500 10px var(--font-mono);color:var(--muted)}.streak-value{color:#3d63d8!important}.loading-state,.error-state{color:var(--muted);text-align:center;background:#f4f5f7b3;border:1px dashed #b8c0cc;border-radius:2px;padding:36px}.ghost-button,.primary-button,.top-add{border-radius:2px}
