*{box-sizing:border-box}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(340px,.8fr) 1.2fr;background:var(--paper)}.login-card{padding:clamp(35px,7vw,100px);display:flex;flex-direction:column;justify-content:center}.login-brand{margin:0 0 65px}.login-card h1{font-size:clamp(42px,6vw,72px);line-height:.96;letter-spacing:-.065em;max-width:700px;margin:12px 0 24px}.login-card>p:not(.eyebrow):not(.setup-warning){max-width:520px;color:var(--muted);font-size:15px;line-height:1.7}.login-card>small{display:block;color:var(--muted);font-size:10px;margin-top:15px}.login-preview{margin:22px;border-radius:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--a) 28%,#f2f4fb),color-mix(in srgb,var(--b) 36%,#fff));display:grid;place-items:center;padding:clamp(25px,6vw,80px)}.preview-card{width:min(540px,100%);padding:32px;border-radius:24px;background:rgba(255,255,255,.86);color:#1b1b2a;box-shadow:0 30px 80px rgba(38,32,72,.18)}.preview-card h2{font-size:32px;margin:8px 0 28px}.preview-book{display:flex;gap:15px;align-items:center;margin-bottom:22px}.preview-book>i{width:58px;height:78px;border-radius:9px;background:linear-gradient(145deg,var(--a),var(--b))}.preview-book span b,.preview-book span small{display:block}.preview-book span small{color:#77798a;margin-top:7px}.user-chip{display:flex;align-items:center;gap:9px;padding-right:6px}.user-chip img{width:34px;height:34px;border-radius:50%;background:var(--paper2)}.user-chip span b,.user-chip span small{display:block;white-space:nowrap}.user-chip span b{font-size:10px}.user-chip span small{font-size:8px;color:var(--muted);margin-top:2px}
*{box-sizing:border-box}html{font-family:"SF Pro Display","SF Pro Text",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,sans-serif;color:#1b1b2a;background:#f3f6fb}html[data-palette=lavender]{--a:#7257d8;--b:#b7a8f4}html[data-palette=ocean]{--a:#287fa3;--b:#75c4d6}html[data-palette=terracotta]{--a:#c9684a;--b:#e7a078}html[data-palette=emerald]{--a:#287d65;--b:#80bba8}html[data-palette=black-gold]{--a:#292a32;--b:#c79b45}html[data-palette=pink]{--a:#c54f7c;--b:#f2a1be}html[data-theme=dark]{color:#f6f4fb;background:#16171d;--paper:#22242d;--paper2:#2a2d37;--line:#3a3e49;--muted:#aaa9b5}html[data-theme=light]{--paper:#fff;--paper2:#f8f9fc;--line:#e6e8ef;--muted:#77798a}body{margin:0;background:inherit;color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:30px 18px 20px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{color:var(--a);font-weight:800;font-size:25px;text-decoration:none;letter-spacing:-1px;margin:0 10px 38px}.side-label,.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:800;color:var(--muted)}.side-label{margin:0 10px 10px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{border:0;background:transparent;color:var(--muted);padding:11px 12px;border-radius:12px;text-align:left;font:inherit;font-size:13px;font-weight:650;cursor:pointer}.sidebar nav button span{display:inline-block;width:27px}.sidebar nav button.active{background:color-mix(in srgb,var(--a) 11%,var(--paper));color:var(--a)}.side-card{margin-top:auto;padding:15px;border-radius:15px;background:color-mix(in srgb,var(--b) 12%,var(--paper2));border:1px solid color-mix(in srgb,var(--b) 25%,var(--line));font-size:11px}.side-card p{color:var(--muted);line-height:1.45;margin:6px 0 0}main{padding:30px clamp(20px,4vw,55px) 70px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.topbar h1{font-size:clamp(28px,4vw,43px);letter-spacing:-.05em;margin:4px 0}.topbar p{margin:0}.top-actions{display:flex;gap:9px}.primary,.secondary,.icon-btn{border:0;border-radius:11px;padding:10px 15px;font:inherit;font-size:11px;font-weight:750;cursor:pointer}.primary{background:var(--a);color:#fff}.secondary{background:var(--paper);color:inherit;border:1px solid var(--line)}.icon-btn{padding:7px 10px;background:transparent;color:inherit;font-size:22px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.metric,.panel{border:1px solid var(--line);background:var(--paper);box-shadow:0 10px 28px rgba(25,30,48,.06)}.metric{padding:18px;border-radius:17px}.metric:nth-child(odd){background:color-mix(in srgb,var(--a) 7%,var(--paper))}.metric:nth-child(even){background:color-mix(in srgb,var(--b) 10%,var(--paper))}.metric small{color:var(--muted);font-size:10px}.metric b{display:block;margin-top:13px;font-size:30px;letter-spacing:-.04em}.grid{display:grid;grid-template-columns:1.15fr .85fr;gap:15px;margin-top:15px}.panel{padding:21px;border-radius:19px;overflow:hidden}.panel h2{margin:3px 0 18px;font-size:18px}.progress{height:7px;background:var(--paper2);border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--a),var(--b));border-radius:inherit}.book-list,.queue,.challenges{display:grid;gap:9px}.book-row,.queue-row,.challenge{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border-radius:13px;background:var(--paper2)}.book-row strong,.book-row small,.queue-row strong,.queue-row small{display:block}.book-row small,.queue-row small,.challenge small{margin-top:4px;color:var(--muted);font-size:10px}.book-row button,.queue-row button,.challenge button{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:inherit;cursor:pointer}.queue-row{grid-template-columns:27px minmax(0,1fr) auto}.queue-row>span:first-child{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--a) 12%,var(--paper));color:var(--a);font-size:10px;font-weight:800}.queue-actions{display:flex;gap:4px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px}.section-head h2{margin:0}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.filters input,.filters select,.form-grid input,.form-grid select,.form-grid textarea,.challenge-form input{border:1px solid var(--line);background:var(--paper);color:inherit;border-radius:11px;padding:10px 12px;font:inherit;font-size:11px}.filters input{min-width:220px}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.book-card{padding:17px;border-radius:17px;background:var(--paper);border:1px solid var(--line)}.book-card .cover{height:125px;border-radius:12px;background:linear-gradient(145deg,var(--a),var(--b));display:grid;place-items:center;color:#fff;font-size:34px;font-weight:800;margin-bottom:14px}.book-card .cover img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.book-card h3{margin:0;font-size:14px}.book-card p{margin:5px 0 13px;color:var(--muted);font-size:11px}.card-actions{display:flex;gap:6px;margin-top:13px}.challenge-form{display:grid;grid-template-columns:1fr 90px auto;gap:8px;margin-bottom:12px}.challenge{display:block}.challenge-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:9px}.habit-bars{height:190px;display:flex;align-items:flex-end;gap:9px;padding-top:20px}.habit-bars span{flex:1;background:linear-gradient(var(--b),var(--a));border-radius:8px 8px 3px 3px;min-height:6px;position:relative}.habit-bars span small{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--muted)}.timer{display:flex;align-items:center;gap:9px;padding:14px;border-radius:15px;background:color-mix(in srgb,var(--a) 8%,var(--paper2));margin-top:14px}.timer b{font-variant-numeric:tabular-nums;font-size:22px;margin-right:auto}.year-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.year-stats span{padding:15px;border-radius:14px;background:var(--paper2);font-size:10px;color:var(--muted)}.year-stats b{display:block;color:inherit;font-size:22px;margin-bottom:7px}.palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.palette{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:inherit;text-align:left;cursor:pointer}.palette.active{outline:2px solid var(--a)}.swatches{display:flex;gap:5px;margin-bottom:9px}.swatches i{width:28px;height:18px;border-radius:7px}dialog{width:min(670px,calc(100% - 30px));border:1px solid var(--line);border-radius:20px;background:var(--paper);color:inherit;padding:22px;box-shadow:0 25px 80px rgba(18,20,30,.3)}dialog::backdrop{background:rgba(20,22,31,.5)}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{margin:4px 0 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid label{display:grid;gap:6px;font-size:10px;color:var(--muted);font-weight:700}.form-grid .wide{grid-column:span 2}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px}.empty{padding:35px 20px;text-align:center;color:var(--muted)}.mobile-nav{display:none}@media(max-width:900px){.login-screen{grid-template-columns:1fr}.login-preview{display:none}.login-card{min-height:100vh}.user-chip{display:none}.app-shell{grid-template-columns:1fr}.sidebar{display:none}main{padding:23px 18px 90px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);bottom:10px;left:12px;right:12px;padding:7px;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:17px;z-index:20}.mobile-nav button{border:0;background:transparent;color:var(--muted);padding:5px;border-radius:10px}.mobile-nav small{display:block;font-size:8px;margin-top:3px}.mobile-nav button.active{color:var(--a);background:color-mix(in srgb,var(--a) 9%,transparent)}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.library-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.topbar{align-items:flex-start}.top-actions .secondary{display:none}.metrics,.library-grid,.year-stats,.palette-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.challenge-form{grid-template-columns:1fr 70px}.challenge-form button{grid-column:span 2}.filters input{min-width:0;width:100%}}.session-form{display:grid;grid-template-columns:1.4fr .7fr .7fr auto;gap:7px}.session-form select,.session-form input{min-width:0;border:1px solid var(--line);background:var(--paper);color:inherit;border-radius:11px;padding:10px;font:inherit;font-size:10px}.recommendation-card{}@media(max-width:620px){.session-form{grid-template-columns:1fr 1fr}.session-form select,.session-form button{grid-column:span 2}}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;width:100%;max-width:390px;margin-top:26px;padding:4px;border-radius:13px;background:var(--paper2);border:1px solid var(--line)}.auth-tabs button{border:0;border-radius:9px;padding:10px;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:750;cursor:pointer}.auth-tabs button.active{background:var(--paper);color:var(--a);box-shadow:0 4px 14px rgba(23,25,38,.08)}.auth-form{display:grid;gap:12px;width:100%;max-width:390px;margin-top:14px}.auth-form label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:700}.auth-form input{width:100%;border:1px solid var(--line);border-radius:11px;background:var(--paper);color:inherit;padding:12px;font:inherit;font-size:12px}.auth-submit{padding:13px;margin-top:2px}.auth-message{min-height:18px!important;margin:9px 0 0!important;color:#b23a48!important;font-size:11px!important;line-height:1.4!important}.user-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--a) 14%,var(--paper));color:var(--a);font-weight:850}.user-chip span b,.user-chip span small{display:block;white-space:nowrap}.user-chip span b{font-size:10px}.user-chip span small{font-size:8px;color:var(--muted);margin-top:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
