/* StudyFlow — shared visual system for desktop, tablet and narrow Split View. */
:root {
  --paper:#f6f5f1; --white:#fff; --ink:#272936; --muted:#666775;
  --line:#e1e0e6; --purple:#5945b1; --lavender:#eeeafa; --green:#286d56;
  --radius:18px; --shadow:0 4px 20px #26233305;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink); background:var(--paper); font-size:15px; line-height:1.55;
  font-synthesis:none;
}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}
button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}a{color:var(--purple);text-decoration:none}
a:hover{text-decoration:underline}button:disabled{opacity:.55;cursor:not-allowed}
:focus-visible{outline:3px solid #7861cc;outline-offset:3px}
h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,2.8vw,38px);line-height:1.18;letter-spacing:-1.2px;font-weight:700}
h2{font-size:19px;line-height:1.35;letter-spacing:-.4px}h3{font-size:16px;line-height:1.5}
p{line-height:1.7}small{font-size:12px}strong{font-weight:650}
.icon{width:20px;height:20px;vertical-align:middle;flex-shrink:0}
.muted{color:var(--muted)}.eyebrow,.nav-label{font-size:11px;letter-spacing:1.2px;font-weight:700;color:#656171;text-transform:uppercase}
.btn{border:1px solid transparent;border-radius:10px;min-height:44px;padding:10px 16px;display:inline-flex;gap:8px;justify-content:center;align-items:center;font-size:14px;font-weight:600;background:none;line-height:1.4;white-space:normal;text-align:center}
.btn.primary{background:var(--purple);color:white;box-shadow:0 3px 8px #49328b18}.btn.primary:hover{background:#483498}
.btn.secondary{background:white;border-color:#d4d1dd}.btn.secondary:hover{background:#f3f0fc;border-color:#9b8dc3}
.btn.white{background:white;color:#493694}.btn.small{padding:8px 12px;font-size:13px;min-height:42px}
.btn.text{color:var(--purple);padding:8px 2px}.btn.text:hover{text-decoration:underline}
.btn.subtle{background:#eeeafa;color:#493694;border-color:#d8d0ec}
.icon-button{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:44px;height:44px;border:0;border-radius:10px;background:none;color:#676172;padding:10px}
.icon-button:hover{background:var(--lavender);color:var(--purple)}
.plain{padding:6px 0;border:0;background:none;text-align:left;line-height:1.5;font-weight:600;min-height:32px;overflow-wrap:anywhere}
.plain:hover{color:var(--purple);text-decoration:underline}.danger{color:#a33535!important}
.skip-link{position:fixed;top:10px;left:16px;transform:translateY(-200%);z-index:500;padding:12px 20px;background:white;border:2px solid var(--purple);border-radius:8px}.skip-link:focus{transform:none}
.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:#fdfcf9;border-right:1px solid var(--line);padding:30px 18px 22px;display:flex;flex-direction:column;z-index:20;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:24px;font-weight:750;letter-spacing:-1px}.brand:hover{text-decoration:none}.brand img{width:38px;height:38px}
.brand-caption{display:block;font-size:9px;letter-spacing:1px;color:#6c6578;font-weight:600;margin-top:4px}
.nav-label{margin:42px 12px 12px;font-size:10px}.sidebar nav{display:grid;gap:5px}
.nav-item{display:flex;gap:11px;align-items:center;width:100%;border:0;background:none;padding:12px;border-radius:11px;font-size:14px;text-align:left;color:#625d6b;min-height:48px}
.nav-item.active{background:var(--lavender);color:#49358f;font-weight:700;box-shadow:inset 3px 0 #6b53bd}.nav-item:hover{background:#f0edf5}
.nav-count{margin-left:auto;background:#ded6f4;color:#49358f;padding:1px 7px;border-radius:6px;font-size:12px}
.semester-card{background:#f2f0e9;border:1px solid #e3e0d7;border-radius:14px;padding:16px;margin-top:28px;display:flex;flex-direction:column;gap:10px}
.semester-card .eyebrow{font-size:10px}.semester-card strong{font-size:14px}.semester-card>span:not(.eyebrow){font-size:12px;color:var(--muted)}.semester-card .btn{justify-content:space-between;text-align:left;font-size:12px}
.sidebar-bottom{margin-top:auto;padding-top:28px}.profile{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);margin-top:14px;padding-top:20px}
.avatar{width:36px;height:36px;border-radius:50%;background:#e9e0d0;color:#67543b;display:grid;place-items:center;font-weight:650;flex-shrink:0}
.profile strong{font-size:13px;display:block}.profile small{display:block;color:var(--muted);font-size:11px;margin-top:3px;max-width:138px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace{margin-left:224px}.topbar{height:80px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:0 36px;background:#fcfbf8;gap:20px}
.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb>span{margin:0 10px}.top-actions{display:flex;align-items:center;gap:18px}
.search-box{display:flex;align-items:center;gap:8px;color:#716a7c;border:1px solid #dedbe3;background:white;border-radius:10px;padding:0 12px}
.search-box input{width:160px;background:none;border:0;font-size:14px;padding:10px 0;min-height:44px;color:var(--ink)}input::placeholder{color:#75717c}
.search-box kbd{border:1px solid var(--line);border-radius:4px;font-size:11px;padding:1px 4px;font-family:inherit;color:#706979}
.sync-status{display:flex;gap:6px;align-items:center;color:#586b60;font-size:12px}.sync-status .icon{width:17px}
.demo-banner{padding:10px 36px;background:#eeeafa;font-size:12px;color:#514476;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.demo-banner a{display:flex;gap:6px;align-items:center;font-weight:600}
main{padding:36px;max-width:1512px;margin:auto}main:focus{outline:none}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:24px}.page-heading .eyebrow{margin-bottom:10px}.page-heading p{font-size:15px;color:var(--muted);margin-top:12px}.page-heading>.btn{flex-shrink:0}.sun{color:#997541;margin-left:12px;font-size:30px}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{border:1px solid var(--line);background:white;border-radius:16px;padding:22px;box-shadow:var(--shadow)}
.stat-label{display:flex;gap:8px;align-items:center;color:#636070;font-size:11px;letter-spacing:.8px;font-weight:650}.stat-label .icon{width:17px}.stat>div:not(.mini-progress){display:flex;align-items:baseline;gap:9px;margin:12px 0 5px;flex-wrap:wrap}.stat strong{font-size:34px;line-height:1.15;letter-spacing:-1px}.stat>div>span,.stat small{font-size:12px;color:var(--muted)}.stat .fraction{font-size:19px;color:#7d7788;font-weight:400}.mini-progress{height:6px;background:#eeebf2;border-radius:6px;overflow:hidden}.mini-progress i{display:block;height:100%;background:#7f6bc2;border-radius:6px}.stat .mini-progress{margin-top:14px;max-width:180px}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.left-column,.right-column{min-width:0;display:flex;flex-direction:column;gap:24px}
.panel{border:1px solid var(--line);background:white;border-radius:18px;padding:24px;margin-bottom:24px;min-width:0;box-shadow:var(--shadow)}.left-column>.panel,.right-column>.panel{margin:0}
.next-card{position:relative;background:#5945a4;border-radius:18px;color:white;padding:28px;overflow:hidden;isolation:isolate}.next-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:12px;color:#f3edff}.pill{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.7px;background:#ffffff15;border:1px solid #ffffff40;padding:6px 9px;border-radius:6px}.pill .icon{width:14px}
.next-card h2{margin-top:22px;font-size:27px;letter-spacing:-.6px;position:relative;z-index:1}.next-card p{font-size:14px;color:#eee9fa;margin-top:9px;position:relative;z-index:1}.next-card p span{margin:0 5px}.next-bottom{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-top:26px;position:relative;z-index:1;flex-wrap:wrap}.next-links{display:flex;gap:8px;flex-wrap:wrap}.next-links .btn{font-size:12px}.next-decoration{position:absolute;width:220px;height:230px;right:-60px;top:28px;transform:rotate(-25deg);z-index:-1;opacity:.13}.next-decoration div{position:absolute;border:1px solid white;border-radius:40px;width:160px;height:180px}.next-decoration div:nth-child(2){left:24px;top:14px}.next-decoration div:nth-child(3){left:48px;top:28px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-heading h2{font-size:18px}.section-heading>svg{color:#71618a}.section-heading p{font-size:13px;color:var(--muted);margin-top:6px}.count{display:inline-block;font-size:12px;color:#5e546e;background:#f0ecf6;border-radius:6px;padding:2px 7px;margin-left:5px}
.agenda-row{display:flex;align-items:center;min-height:94px;gap:0}.agenda-time{width:55px;flex-shrink:0;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.agenda-time small{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:400}.agenda-marker{align-self:stretch;position:relative;width:24px;flex-shrink:0}.agenda-marker:before{content:'';position:absolute;width:1px;background:var(--line);top:0;bottom:0;left:5px}.agenda-row:first-child .agenda-marker:before{top:50%}.agenda-row:last-child .agenda-marker:before{bottom:50%}.agenda-marker i{width:11px;height:11px;border-radius:50%;background:var(--module);border:2px solid white;position:absolute;top:calc(50% - 5px)}.agenda-content{flex:1;padding:17px 0;min-width:0;border-bottom:1px solid var(--line)}.agenda-row:last-child .agenda-content{border-bottom:0}.agenda-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.agenda-title strong{font-size:15px;overflow-wrap:anywhere}.agenda-meta{display:flex;align-items:center;gap:10px;margin-top:7px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:5px;color:#514762;font-size:12px;border-radius:6px;background:color-mix(in srgb,var(--module,#aaa),white 91%);padding:3px 7px;max-width:100%;overflow-wrap:anywhere}.tag i{width:6px;height:6px;border-radius:50%;background:var(--module);flex-shrink:0}.done-label{color:var(--green);font-size:12px}.is-done .agenda-title{text-decoration:line-through;color:var(--muted)}.panel-bottom{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.task-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border:0}.task-check{width:44px;height:44px;border:0;border-radius:10px;background:#f4f1f8;padding:10px;flex-shrink:0;position:relative}.task-check:before{content:'';display:block;width:22px;height:22px;border:1.5px solid #8e819f;border-radius:6px}.task-check.checked{background:var(--purple);color:white}.task-check.checked:before{display:none}.task-check .icon{width:22px}.task-check:hover{outline:1px solid var(--purple)}.task-info{flex:1;min-width:0}.task-info>.plain{font-size:15px}.task-info>div{display:flex;gap:8px;align-items:center;margin-top:4px;font-size:12px;color:var(--muted);flex-wrap:wrap}.due{font-size:12px;color:#6b6078;white-space:nowrap}.overdue{color:#a33f28!important}
.exam-mini{display:flex;text-align:left;align-items:center;gap:14px;border:0;background:none;padding:15px 0;width:100%}.exam-mini+.exam-mini{border-top:1px solid var(--line)}.exam-mini:hover strong{text-decoration:underline}.exam-date{width:50px;height:58px;background:#f3eee5;border:1px solid #e6ddcf;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;color:#765a30}.exam-date strong{font-size:23px}.exam-date span{font-size:12px}.exam-mini>div:last-child>strong{display:block;font-size:14px;line-height:1.4}.exam-mini small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.days-left{display:inline-block;font-size:11px;border-radius:5px;background:#f8edda;color:#765521;padding:3px 6px;margin-top:7px}
.module-mini{display:flex;align-items:center;gap:12px;border:0;background:none;width:100%;text-align:left;padding:13px 0}.module-initial{width:40px;height:40px;border-radius:11px;background:color-mix(in srgb,var(--module),white 88%);color:#4b405c;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}.module-mini>div:last-child{flex:1;min-width:0}.module-mini strong{font-size:14px;display:block}.module-mini .mini-progress{margin:8px 0 5px}.module-mini small{font-size:12px;color:var(--muted)}
.reflection{background:#edf0e7;border:1px solid #dce2d3;border-radius:16px;padding:24px;color:#495d39}.reflection>span{font-size:11px;letter-spacing:1px;display:flex;align-items:center;gap:8px}.reflection p{font-size:18px;margin:12px 0 8px}.reflection small{font-size:13px;line-height:1.7;display:block}
.empty{padding:28px 14px;text-align:center}.empty-icon{color:#7e7191;margin-bottom:12px}.empty-icon .icon{height:30px;width:30px}.empty h3{font-size:16px}.empty p{font-size:14px;color:var(--muted);margin:10px auto 16px;max-width:320px}
footer{display:flex;justify-content:space-between;color:#6f6878;font-size:12px;margin-top:32px;padding:20px 0 0;border-top:1px solid var(--line);gap:16px}footer i{font-style:normal;margin:0 7px}
.week-toolbar,.week-controls,.semester-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.week-controls{justify-content:start;margin:0}.week-controls h2{font-size:18px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));overflow-x:auto;border:1px solid var(--line);background:white;border-radius:16px;margin-bottom:28px}.day-column{border-right:1px solid var(--line);min-height:380px}.day-column:last-child{border-right:0}.day-heading{text-align:center;padding:18px 8px;border-bottom:1px solid var(--line);display:flex;align-items:center;flex-direction:column;gap:6px}.day-heading>span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.day-heading strong{font-size:23px;width:38px;height:38px;display:grid;place-items:center}.day-heading small{color:var(--muted);font-size:11px}.day-column.today .day-heading strong{background:var(--purple);color:white;border-radius:50%}.day-column.today{background:#faf8ff}.day-cards{padding:10px}.week-block{display:flex;flex-direction:column;text-align:left;border:0;border-left:3px solid var(--module);border-radius:8px;background:color-mix(in srgb,var(--module),white 91%);width:100%;padding:12px 10px;gap:7px;margin-bottom:10px;color:#403b4d}.week-block span,.week-block small{font-size:12px;color:#605b6c}.week-block strong{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.week-block.fixed{background:#f2f1ed;border-color:#8c8495}.week-block.completed strong{text-decoration:line-through}.day-add{width:100%;height:44px;display:grid;place-items:center;border:1px dashed #aaa0b7;border-radius:8px;color:#6b587f;background:none}.day-add:hover{background:var(--lavender)}.day-tabs{display:flex;gap:7px;overflow:auto;padding:4px 0 18px}.day-tabs .btn{flex:1;min-width:65px}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.module-card{padding:26px;background:white;border:1px solid var(--line);border-radius:18px}.module-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.module-card-top>span{font-size:13px;color:var(--muted)}.module-card .module-initial{height:48px;width:48px}.module-card h2{font-size:23px}.module-card p{font-size:14px;color:var(--muted);margin:10px 0 24px}.module-progress{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);margin-top:12px;flex-wrap:wrap}.module-open{display:flex;justify-content:space-between;width:100%;border:0;border-top:1px solid var(--line);border-radius:0;color:var(--purple);font-size:14px;padding:18px 0 0;margin-top:24px}.add-module{min-height:280px;border:1.5px dashed #a99eb5;border-radius:18px;color:#6c5c7b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#fcfbf8}.add-module .icon{width:30px;height:30px}.add-module span{font-size:13px}.semester-heading p{color:var(--muted);margin-top:6px}
.module-hero{display:flex;align-items:center;gap:18px;margin:20px 0 28px;flex-wrap:wrap}.module-initial.large{height:60px;width:60px;font-size:18px}.module-hero h2{font-size:28px}.module-hero p{color:var(--muted);margin-top:6px}.module-hero>.btn{margin-left:auto}.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px}.topic-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px 14px;border-top:1px solid var(--line);padding:20px 0}.topic-row>div:last-child{grid-column:2;display:flex;gap:8px;flex-wrap:wrap}.topic-row .plain{font-size:16px}.topic-row p{font-size:14px;color:var(--muted);margin:5px 0 10px}.topic-state{width:34px;height:34px;border-radius:50%;background:#eeebf4;display:grid;place-items:center;color:#6d5b85}.topic-state.done{background:#e4f0e8;color:#306b4b}.topic-state.doing{background:#eae4fa;color:var(--purple)}.topic-state .icon{width:18px}.mastery{display:inline-block;font-size:12px;color:#62526e;background:#f0ecf5;padding:4px 9px;border-radius:6px}.mastery.sure{background:#e5f0e9;color:#2b6849}.mastery.unsure{background:#fbefde;color:#865318}
.integration-intro{background:#eeebf8;border:1px solid #dcd5ee;border-radius:16px;padding:24px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.integration-intro p{font-size:14px;color:#605474;margin-top:9px;max-width:600px}.app-badges{display:flex;gap:12px;flex-shrink:0}.app-badges>span{font-size:13px;display:flex;gap:7px;align-items:center;color:#635474}.app-badges b{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:white}.remnote{color:#3e59a0}.goodnotes{color:#39667b}
.resource-card{display:flex;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.resource-card:last-child{border-bottom:0}.provider-icon{width:42px;height:42px;border:1px solid #dedde6;border-radius:10px;background:#f7f8fb;display:grid;place-items:center;font-size:20px;font-weight:600;flex-shrink:0}.resource-info{flex:1;min-width:0}.resource-info strong{font-size:15px;display:block;overflow-wrap:anywhere}.resource-info>span{font-size:12px;color:var(--muted);display:block;margin-top:5px}.resource-info p{font-size:13px;color:var(--muted);margin-top:7px;white-space:pre-wrap;overflow-wrap:anywhere}.resource-actions{display:flex;flex-wrap:wrap}
.exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.exam-card{margin-bottom:0}.exam-card .exam-mini>div>strong{font-size:20px}.exam-info{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);margin:18px 0;flex-wrap:wrap}.exam-card>p{font-size:14px;margin-top:12px}.exam-actions{display:flex;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap}
.settings-panel h2{margin-bottom:18px}.settings-panel p{font-size:14px;color:var(--muted);margin:10px 0 20px}.settings-panel h3{margin-top:22px}.settings-panel dl{display:grid;grid-template-columns:1fr 1.3fr;gap:16px;font-size:14px;margin-bottom:26px}.settings-panel dt{color:var(--muted)}.settings-panel dd{margin:0;overflow-wrap:anywhere}.button-row{display:flex;gap:10px;flex-wrap:wrap}hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.search-group{margin:22px 0 8px;color:#635275;font-size:12px;text-transform:uppercase;letter-spacing:1px}.search-result{width:100%;display:flex;justify-content:space-between;gap:15px;align-items:center;border:0;border-top:1px solid var(--line);background:none;padding:18px 4px;text-align:left;font-size:15px;min-height:48px}.search-result small{display:block;color:var(--muted);margin-top:7px}.search-result:hover{background:#f7f4fc}
.timer-banner{background:#eae5f7;border:1px solid #d7ceed;border-radius:14px;display:flex;align-items:center;gap:14px;padding:16px 20px;margin-bottom:24px;flex-wrap:wrap}.timer-banner>div{flex:1;min-width:120px}.timer-banner strong{font-size:15px}.timer-banner small{display:block;font-size:12px;color:#625477;margin-top:4px}.timer-orb{color:var(--purple)}#timer-value{font-variant-numeric:tabular-nums;font-size:25px}.conflict-banner{border:1px solid #dbb77e;background:#fff4df;border-radius:14px;padding:20px;display:flex;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.conflict-banner p{font-size:14px;margin-top:6px}
/* All workflows share the same form surface and spacing. */
dialog{border:1px solid #dad4e4;border-radius:20px;padding:0;width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 48px);box-shadow:0 24px 100px #24193640;color:var(--ink);background:white;overscroll-behavior:contain}
dialog::backdrop{background:#211d355c;backdrop-filter:blur(5px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fffffff5;backdrop-filter:blur(8px);z-index:2}.modal-heading h2{font-size:21px;overflow-wrap:anywhere}
dialog>form,dialog>.block-detail{padding:26px}dialog>form>p{margin-bottom:18px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;font-size:14px;color:#554b61}.field>span{font-weight:600}.field input,.field select,.field textarea{background:#fcfbfd;border:1px solid #bcb3c8;border-radius:10px;padding:11px 12px;min-height:46px;font-size:16px;color:#32283e;width:100%;min-width:0}.field textarea{resize:vertical;line-height:1.6;min-height:110px}.field:focus-within>span{color:var(--purple)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.check-field{display:flex;gap:12px;font-size:14px;align-items:flex-start;color:#50465b;line-height:1.6;margin:14px 0;padding:8px 0;min-height:44px}.check-field input{accent-color:var(--purple);width:22px;height:22px;flex-shrink:0;margin:1px 0}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:20px;margin-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}.modal-actions .danger{margin-right:auto}.form-help{font-size:13px;color:#665970;line-height:1.7;margin:14px 0}.form-error{font-size:14px;color:#a23131;margin:12px 0;line-height:1.7}.form-error:empty{display:none}.warning{background:#fff4df;border:1px solid #e2c38f;padding:16px;border-radius:10px;font-size:14px;line-height:1.65;color:#795014;margin:14px 0}.warning ul{padding-left:20px}.block-detail>p{font-size:15px;margin:16px 0;color:#60536d}.block-detail h3{margin-top:20px}.resource-open-links{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.boot{padding:20vh 25px;text-align:center;color:#675779;line-height:2}.boot h2{margin-bottom:12px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);background:#30263e;color:white;border-radius:12px;padding:14px 22px;font-size:14px;z-index:200;opacity:0;pointer-events:none;transition:.15s;max-width:calc(100% - 30px);box-shadow:0 5px 24px #0002}#toast.visible{opacity:1;transform:translate(-50%,0)}
.coach-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.coach-tools{align-self:start}.coach-tools h2,.coach-teaser h2{margin:12px 0}.coach-tools p,.coach-teaser p{font-size:14px;color:var(--muted);margin:12px 0 20px}.coach-tools .btn{width:100%;margin-bottom:10px}.coach-teaser{background:#f0ecfa}.coach-suggestion{padding:20px 0;border-bottom:1px solid var(--line)}.coach-suggestion h3{margin:0 0 8px;overflow-wrap:anywhere}.coach-suggestion p{color:var(--muted);margin-bottom:12px}.coach-suggestion>.btn{margin:10px 7px 0 0}.coach-panel>.form-help{background:#f7f5fa;border-radius:10px;padding:14px}.availability-day{border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:16px}.availability-day legend{font-weight:650;padding:0 8px}.availability-day .field{min-width:0}.availability-day input[type=time]{max-width:100%;min-width:0}.scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.scenario-column{padding:20px;min-width:0;background:#faf8fe}.scenario-column dt{color:var(--muted);margin-top:14px;font-size:13px}.scenario-column dd{margin:4px 0;font-weight:650}.scenario-column p{overflow-wrap:anywhere}.scenario-column summary,.recall-entry summary{cursor:pointer;line-height:1.6;min-height:44px;padding:10px 0;color:var(--purple)}.recall-answer{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;background:#f3f1eb;border-radius:12px}.recall-entry{padding:14px 0;border-bottom:1px solid var(--line)}
.auth-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.auth-art{background:#eae4f3;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-art:after{content:'';position:absolute;width:320px;height:320px;border:1px solid #aa99c4;border-radius:100px;transform:rotate(30deg);right:-160px;bottom:90px;box-shadow:0 0 0 35px #c4b8db22,0 0 0 70px #c4b8db15;pointer-events:none}.auth-art h1{font-size:clamp(36px,4.3vw,64px);line-height:1.12;letter-spacing:-2px;color:#55416d;margin:22px 0}.auth-art p{font-size:16px;color:#665575}.auth-art>span{font-size:13px;color:#695377}.auth-form{padding:48px;max-width:540px;width:100%;align-self:center;margin:0 auto}.auth-form h2{font-size:30px;letter-spacing:-.8px;margin:18px 0}.auth-form>p{color:#65576f;margin:16px 0 28px}.auth-form form>.btn{width:100%;margin-top:10px}.demo-link{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:28px;font-size:14px}.mobile-settings{display:none}
@media(max-width:1200px){main{padding:28px}.topbar{padding:0 28px}.home-grid{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.panel{padding:20px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.breadcrumb{display:none}.topbar{justify-content:flex-end}.next-card{padding:24px}.next-card h2{font-size:25px}.stat{padding:18px}.coach-layout{grid-template-columns:minmax(0,1fr) 270px}.exam-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}
@media(max-width:1024px){.sidebar{width:94px;padding:22px 8px}.workspace{margin-left:94px}.sidebar .brand>span,.nav-label,.semester-card,.profile>span:not(.avatar){display:none}.brand{justify-content:center}.sidebar nav{margin-top:28px}.nav-item{justify-content:center;flex-direction:column;padding:10px 3px;gap:5px;font-size:11px}.nav-item .nav-count{display:none}.nav-item.active{box-shadow:inset 3px 0 #6b53bd}.profile{justify-content:center}.profile .avatar{display:grid}.home-grid{grid-template-columns:minmax(0,1fr) 270px}.integration-intro{flex-wrap:wrap}.auth-art{padding:32px}.auth-form{padding:32px}}
@media(max-width:820px){.home-grid,.coach-layout{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.reflection,.coach-teaser{grid-column:1/-1}.coach-teaser{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px}.coach-teaser .eyebrow{grid-column:1/-1}.coach-teaser h2{margin-bottom:4px}.coach-teaser p{grid-column:1;margin-bottom:0}.coach-teaser .btn{grid-column:2;grid-row:2/4;align-self:center}.stat-label{font-size:10px;letter-spacing:.3px}.stat-label .icon{display:none}.stat>div:not(.mini-progress){display:block}.stat>div>span{display:block;margin-top:5px}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading p{font-size:14px}.page-heading>.btn{margin:0}.topbar{height:72px}.week-toolbar{align-items:flex-start}.resource-card{gap:10px}.resource-actions{flex-direction:column}}
@media(max-width:600px){.sidebar{inset:auto 0 0;width:auto;height:auto;padding:5px 4px calc(5px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);background:#fdfcfbf5;backdrop-filter:blur(12px);overflow:visible}.sidebar>.brand,.sidebar-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:0;margin:0}.nav-item{flex:1;min-width:0;min-height:58px;padding:7px 1px;font-size:10px;letter-spacing:-.15px}.nav-item .icon{width:20px;height:20px}.nav-item.active{box-shadow:inset 0 3px #6b53bd}.workspace{margin-left:0;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.mobile-settings{display:inline-flex}.topbar{height:auto;min-height:68px;padding:10px 16px}.top-actions{width:100%;gap:10px}.search-box{flex:1;min-width:0}.search-box input{width:100%;min-width:0}.search-box kbd{display:none}.sync-status{font-size:11px;max-width:85px;line-height:1.3}.sync-status .icon{display:none}.demo-banner{padding:10px 18px;font-size:11px;gap:5px}main{padding:26px 18px}.page-heading{gap:16px;margin-bottom:24px}.page-heading h1{font-size:30px}.page-heading .eyebrow{font-size:10px}.page-heading>.btn{min-height:44px}.sun{font-size:26px}.stats-grid{gap:8px}.stat{padding:14px 10px;border-radius:12px}.stat strong{font-size:28px}.stat .fraction{font-size:15px}.stat small,.stat>div>span{font-size:11px}.stat-label{font-size:9px;line-height:1.5}.panel{padding:20px}.section-heading h2{font-size:17px}.next-card h2{font-size:24px}.next-card{padding:22px}.next-top{font-size:12px}.pill{font-size:10px}.right-column,.module-grid{grid-template-columns:1fr}.coach-teaser{display:block}.coach-teaser p{margin-bottom:16px}.task-row{gap:8px;flex-wrap:wrap}.task-info{flex-basis:calc(100% - 60px)}.task-row>.due{margin-left:52px}.task-row>.icon-button{margin-left:auto}.agenda-time{width:48px;font-size:13px}.agenda-marker{width:17px}.agenda-title strong{font-size:14px}.agenda-meta{gap:7px}.module-hero>.btn{margin-left:0}.week-controls{gap:7px}.week-controls h2{font-size:15px}.week-toolbar>.button-row{width:100%}.week-toolbar .button-row .btn{flex:1}.week-grid{grid-template-columns:repeat(7,170px)}.day-tabs .btn{font-size:12px;min-width:66px}.form-grid,.scenario-grid{grid-template-columns:1fr}.form-grid{gap:0}.modal-heading{padding:14px 18px}.modal-heading h2{font-size:19px}dialog{width:calc(100% - 16px);max-height:calc(100dvh - 24px);border-radius:16px}dialog>form,dialog>.block-detail{padding:20px}.modal-actions{justify-content:stretch}.modal-actions>.btn{flex:1;min-width:110px}.field{font-size:14px}.topic-row{grid-template-columns:28px minmax(0,1fr);gap:10px}.topic-state{width:28px;height:28px}.topic-row>div:last-child .btn{min-height:44px}.settings-panel dl{grid-template-columns:1fr 1.3fr;font-size:14px}.timer-banner{padding:14px;gap:9px}.timer-orb{display:none}.timer-banner strong{font-size:14px}#timer-value{font-size:22px}.timer-banner>div{min-width:130px}.conflict-banner{flex-direction:column}footer{font-size:11px;flex-wrap:wrap}#toast{bottom:calc(85px + env(safe-area-inset-bottom))}.auth-page{grid-template-columns:1fr}.auth-art{min-height:310px;padding:28px}.auth-art .brand{justify-content:start}.auth-art h1{font-size:37px}.auth-art>span,.auth-art .eyebrow{display:none}.auth-form{padding:32px 24px}.auth-art p{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.demo-banner,.page-heading>.btn,footer,.btn,.skip-link{display:none!important}.workspace{margin:0;padding:0}main{padding:0}.panel,.stat,.next-card{break-inside:avoid}.home-grid,.coach-layout{display:block}.week-grid{overflow:visible;grid-template-columns:repeat(7,minmax(0,1fr))}dialog{position:static;max-height:none;width:100%;box-shadow:none}.icon-button{display:none}}

/* Compact weekly settings keep more weekdays visible on tablet. */
@media(min-width:601px){.availability-day:has(legend){display:grid;grid-template-columns:1fr 2fr;align-items:center;gap:12px;padding:12px 16px}.availability-day:has(legend) .field{margin-bottom:4px}.availability-day:has(legend) .check-field{margin:0}}

.module-detail-toolbar{display:flex;justify-content:flex-end;margin:-44px 0 24px}.plain{min-height:44px}@media(max-width:600px){.module-detail-toolbar{margin:8px 0 24px;justify-content:flex-start}}
