:root{--ink:#2e2637;--muted:#746c7d;--paper:#faf8f5;--surface:#fff;--accent:#725387;--deep:#382849;--soft:#eee6f3;--line:#e7e0e8;--coral:#f4ab8f;--radius:22px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);font-size:15px}*{box-sizing:border-box}body{margin:0}body[data-theme=ocean]{--accent:#266c80;--deep:#1d4655;--soft:#e2eff1}body[data-theme=forest]{--accent:#377260;--deep:#254d40;--soft:#e6efe6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);background:var(--surface);padding:11px 17px;border-radius:12px;cursor:pointer;font-weight:600;color:var(--ink);transition:background .16s,transform .16s}button:hover{background:var(--soft);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:wait;transform:none}a{color:var(--accent);text-underline-offset:4px}input,select,textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);margin-top:7px}input[type=checkbox],input[type=radio]{width:auto;margin:0 9px 0 0}textarea{resize:vertical;min-height:100px}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:17px}h1,h2,h3,p{margin:0}h1,h2{letter-spacing:-.04em}h1{font-size:clamp(2rem,4vw,3.3rem);line-height:1.12}h2{font-size:1.6rem}h3{font-size:1.06rem}p{line-height:1.65}small,.muted{font-size:.88rem;color:var(--muted)}[hidden]{display:none!important}:focus-visible{outline:3px solid #bf84da;outline-offset:4px}.primary{background:var(--deep);color:white;border-color:var(--deep)}.primary:hover{background:var(--accent);color:white}.quiet{background:transparent}.danger{color:#a13244}.eyebrow{display:block;font-size:.7rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--deep);font-size:1.5rem;font-weight:750;letter-spacing:-.06em}.brand small,.brand-sub{display:block;font-size:.6rem;font-weight:650;letter-spacing:.2em;margin-top:1px;color:var(--muted)}.brand-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;background:var(--deep);color:#fff;font-size:1.6rem}.brand-icon span{font-size:.8rem;color:var(--coral);align-self:flex-start;margin-top:7px}.rail{position:fixed;inset:0 auto 0 0;width:225px;background:#f1edf2;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;z-index:5}.rail-caption{font-size:.62rem;color:var(--muted);letter-spacing:.17em;margin:42px 12px 15px}.rail nav{display:grid;gap:7px}.rail nav button{text-align:left;border:0;background:transparent;font-size:1.1rem;display:flex;align-items:center;gap:13px}.rail nav button span{font-size:.9rem}.rail nav button.active{background:var(--deep);color:white}.rail-bottom{margin-top:auto;display:grid;gap:10px;padding:22px 9px 0}.rail-bottom a,.rail-bottom button{font-size:.8rem;text-align:left;padding:4px;border:0;background:none}.rail-bottom p{font-family:Georgia,serif;font-style:italic;font-size:1.2rem;margin-top:26px;color:#8e7b93}.shell{margin-left:225px;max-width:1600px}.topbar{height:86px;padding:0 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}.topbar>div{display:flex;align-items:center;gap:24px}.help-link{text-decoration:none}.avatar{height:34px;width:34px;background:var(--soft);border:1px solid #d8c6df;border-radius:50%;display:grid;place-items:center;color:var(--accent);font-weight:bold}main{padding:36px 44px;min-height:calc(100vh - 150px)}footer{padding:15px 44px 30px;font-size:.72rem;letter-spacing:.03em;color:var(--muted)}footer span{margin:0 10px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-head p{margin-top:12px;max-width:680px;color:var(--muted)}.hero{position:relative;overflow:hidden;min-height:258px;background:var(--deep);border-radius:26px;color:white;padding:35px 38px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.hero .eyebrow{color:#d9c5e3}.hero h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(2.1rem,3.5vw,3.2rem);line-height:1.08;max-width:560px}.hero em{color:var(--coral)}.hero p{color:#ddd3e3;max-width:460px;margin:16px 0 20px;font-size:.9rem}.hero button{background:var(--coral);border:0;color:#342334}.orbit{width:190px;height:190px;flex-shrink:0;border:1px solid #ffffff35;border-radius:50%;display:grid;place-items:center;position:relative;margin:0 25px}.orbit:before{content:'';position:absolute;inset:22px;border:1px solid #ffffff35;border-radius:50%;transform:rotate(-20deg)}.orbit strong{font-size:3.8rem;font-family:Georgia,serif;font-weight:400;color:#f4c3ac}.orbit span{position:absolute;bottom:26px;font-size:.65rem;letter-spacing:.14em;color:#ded2e7}.orbit:after{content:'✦';position:absolute;right:-5px;top:6px;font-size:2.5rem;color:var(--coral)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px}.metric{padding:22px;background:white;border:1px solid var(--line);border-radius:18px}.metric strong{font-family:Georgia,serif;font-size:2.3rem;font-weight:400}.metric span{display:block;font-size:.8rem;color:var(--muted);margin-top:5px}.two-col{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.section-title{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:4px 0 17px}.section-title h2{font-size:1.28rem}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px;min-width:0}.card h3{line-height:1.4}.card p{margin:12px 0;font-size:.9rem}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stack{display:grid;gap:14px}.empty{padding:32px 25px;border:1px dashed #d5c9da;border-radius:18px;text-align:center;background:#ffffff80;color:var(--muted)}.empty .symbol{font-size:2rem;color:var(--accent);margin-bottom:12px}.empty h3{color:var(--ink);margin-bottom:9px}.empty button{margin-top:17px}.event-row{display:flex;gap:16px;align-items:flex-start;border-bottom:1px solid var(--line);padding:16px 0}.event-row:last-child{border-bottom:0}.date-badge{width:48px;flex-shrink:0;background:var(--soft);border-radius:12px;text-align:center;padding:8px 4px;color:var(--accent)}.date-badge strong{font-size:1.25rem;display:block}.date-badge span{font-size:.62rem;text-transform:uppercase}.event-row .event-info{flex:1;min-width:0}.event-info h3{font-size:.94rem}.event-info p{font-size:.8rem;margin:4px 0;color:var(--muted)}.badge{display:inline-block;border-radius:6px;padding:4px 7px;background:var(--soft);color:var(--accent);font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.actions button,.actions a{font-size:.8rem}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:22px}.toolbar input,.toolbar select{width:auto;min-width:180px;margin:0}.toolbar label{margin:0}.card-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem;background:var(--soft);color:var(--accent);margin-bottom:20px}.color-ocean{background:#e2eef4;color:#326c85}.color-forest{background:#e4eee7;color:#42735c}.color-amber{background:#faf0d9;color:#947237}.color-rose{background:#fae6e6;color:#a55d65}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.cal-header{text-align:center;font-size:.7rem;color:var(--muted);padding:8px}.cal-day{min-height:105px;border:1px solid var(--line);border-radius:12px;padding:8px;background:white;text-align:left;font-weight:400;overflow:hidden}.cal-day:hover{background:var(--soft)}.cal-day.today{border:2px solid var(--accent)}.cal-day.dim{opacity:.35}.cal-day b{font-size:.85rem}.cal-mark{display:block;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px;background:var(--soft);padding:4px;border-radius:4px}.cal-mark.exam{background:#f9e2d6;color:#83472d}.month-title{min-width:175px;font-family:Georgia,serif;font-size:1.5rem}.banner{background:var(--soft);border-radius:15px;padding:17px 20px;line-height:1.6;font-size:.87rem;margin-bottom:22px}.chat{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px}.sources{align-self:start}.sources label{font-weight:400;font-size:.82rem;line-height:1.5}.chat-log{min-height:300px;max-height:60vh;overflow:auto;padding:8px}.message{white-space:pre-wrap;line-height:1.7;margin-bottom:18px;padding:20px;background:#f5f2f7;border-radius:16px;font-size:.92rem;overflow-wrap:anywhere}.message.user{background:var(--deep);color:white;margin-left:30px}.message small{display:block;margin-bottom:8px;color:inherit;opacity:.6;letter-spacing:.06em}.prompt-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.prompt-row button{font-size:.8rem}.flashcard{min-height:240px;background:var(--deep);color:white;border-radius:22px;padding:35px;display:grid;place-items:center;text-align:center;cursor:pointer}.flashcard p{font-size:1.2rem}.quiz-q{margin:20px 0;padding:20px;border:1px solid var(--line);border-radius:14px}.quiz-q legend{font-weight:700;line-height:1.5}.quiz-q label{font-weight:400;line-height:1.6}.quiz-q label input{vertical-align:middle}.answer{padding:15px;background:var(--soft);border-radius:10px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.checks{display:flex;flex-wrap:wrap;gap:15px}.checks label{font-weight:400;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.form-grid .wide{grid-column:1/-1}dialog{width:min(700px,calc(100vw - 30px));border:1px solid var(--line);border-radius:24px;padding:28px;color:var(--ink);background:var(--paper);max-height:90dvh;overflow:auto}dialog::backdrop{background:#21162990;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-head button{padding:6px 12px}dialog p{margin:12px 0}.auth{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.auth-story{background:var(--deep);padding:65px max(35px,6vw);color:white;display:flex;flex-direction:column;justify-content:center}.auth-story .brand{color:white;margin-bottom:85px}.auth-story .brand-icon{background:#ffffff15}.auth-story .brand-sub{color:#e0d4e5}.auth-story>.eyebrow{color:var(--coral)}.auth-story h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(3rem,5vw,5rem)}.auth-story em{color:var(--coral);font-weight:400}.auth-story p{max-width:430px;margin-top:30px;color:#d9cfdf}.auth-tags{display:flex;flex-wrap:wrap;gap:22px;margin-top:60px;font-size:.7rem;color:#cbb9d5;letter-spacing:.08em}.auth-form{padding:45px max(30px,7vw);align-self:center}.auth-form h2{font-size:2.1rem;margin-bottom:30px}.auth-form button{width:100%;margin-bottom:20px}.auth-form>a{display:block;margin-top:28px;font-size:.9rem}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:100;background:var(--deep);color:white;padding:15px 22px;border-radius:13px;box-shadow:0 8px 35px #0003;max-width:90vw;font-size:.9rem}.guide{max-width:920px;margin:0 auto;padding:55px 28px}.guide header{margin-bottom:45px}.guide header h1{margin:25px 0 18px}.guide section{margin:25px 0;padding:28px;background:white;border:1px solid var(--line);border-radius:20px}.guide h2{margin-bottom:18px}.guide p,.guide li{line-height:1.8;margin-bottom:12px}.guide nav{display:flex;flex-wrap:wrap;gap:15px}.guide ol{padding-left:22px}.guide .tip{background:var(--soft);padding:15px;border-radius:12px}.progressline{height:5px;background:var(--soft);border-radius:5px;margin:20px 0}.done-text{text-decoration:line-through;opacity:.6}@media(min-width:1500px){main{padding:44px 65px}.topbar,footer{padding-left:65px;padding-right:65px}}@media(max-width:1100px){.rail{width:190px;padding:25px 14px}.shell{margin-left:190px}main,.topbar,footer{padding-left:25px;padding-right:25px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.orbit{display:none}.chat{grid-template-columns:230px minmax(0,1fr)}}@media(max-width:760px){.rail{position:sticky;top:0;width:100%;height:auto;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line);gap:12px}.rail>.brand{font-size:1rem}.brand-icon{height:30px;width:30px;font-size:1.2rem;border-radius:9px}.brand-icon span{font-size:.65rem}.rail-caption,.rail-bottom{display:none}.rail nav{display:flex;overflow:auto;padding-bottom:3px;gap:5px}.rail nav button{white-space:nowrap;font-size:.9rem;padding:10px 12px;gap:7px}.rail nav button span{font-size:.77rem}.shell{margin-left:0}.topbar{height:60px;padding:0 18px}.topbar>div{gap:12px}.topbar #dayLabel{font-size:.68rem}main{padding:23px 18px}.page-head{align-items:flex-start;flex-direction:column;gap:14px}.page-head h1{font-size:2rem}.hero{padding:26px 24px;min-height:245px}.hero h2{font-size:2.35rem}.hero p{font-size:.86rem}.metrics{gap:8px;margin-bottom:25px}.metric{padding:16px 12px}.metric strong{font-size:1.8rem}.metric span{font-size:.65rem}.two-col,.chat,.settings-grid,.grid{grid-template-columns:1fr}.card{padding:22px}.calendar-grid{gap:4px}.cal-day{min-height:79px;padding:6px}.cal-mark{font-size:.56rem;padding:3px}.cal-header{font-size:.6rem}.toolbar input,.toolbar select{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}input,select,textarea{font-size:16px}.sources{max-height:240px;overflow:auto}.message{padding:17px}.message.user{margin-left:15px}.auth{grid-template-columns:1fr}.auth-story{padding:30px 25px}.auth-story .brand{margin-bottom:35px}.auth-story h1{font-size:3rem}.auth-story p{margin-top:20px}.auth-tags{margin-top:25px;gap:15px;font-size:.63rem}.auth-form{padding:35px 25px}.auth-form h2{font-size:1.8rem}.guide{padding:30px 18px}.guide section{padding:22px}.guide h1{font-size:2.3rem}dialog{padding:22px}footer{padding:20px 18px}.month-title{font-size:1.2rem;min-width:145px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.study-quick-tiles{margin:24px 0}.study-quick-tiles>button{text-align:left;white-space:normal}.study-note-tile{border:2px solid var(--accent);background:var(--soft)}.study-quick-tiles h2{margin:12px 0}.study-quick-tiles p{line-height:1.6}#whiteboard .wb-help{border-color:var(--accent)}#whiteboard .wb-controls{align-items:end}
