@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=DM+Sans:wght@400;500;600;700;800&family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&display=swap');
:root{--forest:#0B3D2E;--green:#146B4E;--deep:#082B23;--cream:#F4F1EA;--cream2:#FBF9F4;--white:#fff;--gold:#EAB939;--red:#A3190F;--ink:#172D25;--muted:#67766D;--line:#E3E5DD;--soft:#ECF0E9;--shadow:0 15px 55px rgba(8,43,35,.065);--radius:18px;--sidebar:268px;--font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--serif:'Source Serif 4',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream2);color:var(--ink);font:14px/1.55 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}h1,h2,h3,h4,p{margin-top:0}h1,h2{letter-spacing:-.045em}h1{font:600 clamp(34px,4vw,54px)/1.06 var(--serif)}h2{font:600 clamp(25px,3vw,35px)/1.1 var(--serif)}h3{font-size:18px;line-height:1.25}p{color:#65736B}strong{font-weight:800}small{color:var(--muted)}.eyebrow,.overline{font-size:10px;letter-spacing:.17em;font-weight:800;text-transform:uppercase}.eyebrow{color:var(--green)}.brand-mark{font-family:'Archivo Black',Arial Black,sans-serif;font-size:18px;letter-spacing:-.085em;display:flex;align-items:baseline;gap:9px;color:var(--forest);white-space:nowrap}.brand-mark span{font:800 9px var(--font);letter-spacing:.20em;color:var(--red)}.brand-mark.light{color:var(--cream)}.brand-mark.light span{color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:var(--forest);border:1px solid #DBE2D9;min-height:42px;padding:9px 16px;border-radius:10px;font-weight:800;text-decoration:none;transition:transform .12s ease,background .12s ease,border-color .12s ease}.btn:hover{transform:translateY(-1px);border-color:#b9c9ba}.btn.primary{background:var(--forest);color:white;border-color:var(--forest)}.btn.primary:hover{background:#135440}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1A3029}.btn.ghost{background:transparent;border-color:transparent}.btn.small{min-height:32px;padding:5px 10px;font-size:12px}.btn.block{width:100%}.btn.critical{color:var(--red);border-color:#e8cbca}.linkbtn{border:none;padding:0;background:transparent;color:var(--green);font-weight:800;text-align:left}.surface{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.faded{color:var(--muted)}.muted{color:var(--muted)!important}.fineprint{font-size:11px;color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:5px 9px;border-radius:999px;background:var(--soft);color:var(--forest);font-weight:800;white-space:nowrap}.chip.green{background:#E6F3EB;color:#166B47}.chip.red{background:#FAE9E5;color:#A3190F}.chip.gold{background:#FFF3D5;color:#896300}.chip.blue{background:#E9F2F8;color:#2E617E}.chip.grey{background:#F2F2EF;color:#69716A}.tag{font-size:10px;letter-spacing:.06em;font-weight:800;color:var(--muted);text-transform:uppercase}.divider{height:1px;background:var(--line);border:0;margin:20px 0}.empty{padding:35px;text-align:center;border:1px dashed #CFD9CE;border-radius:14px;color:var(--muted);background:#fbfcf9}.empty svg{margin:0 auto 12px}.empty h3{color:var(--ink);margin-bottom:6px}.empty p{max-width:340px;margin:0 auto 15px}
/* login */
.authpage{min-height:100dvh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(390px,.92fr);background:#F8F7F1}.authart{padding:40px clamp(28px,6.2vw,110px);background:var(--forest);position:relative;min-height:100vh;display:flex;flex-direction:column;overflow:hidden;color:#fff}.authart:before{content:"";position:absolute;width:720px;height:720px;border:1px solid rgba(236,238,208,.15);border-radius:50%;right:-280px;top:18%;box-shadow:0 0 0 74px rgba(255,255,255,.035),0 0 0 148px rgba(255,255,255,.025),0 0 0 222px rgba(255,255,255,.018)}.authart:after{content:"✳";position:absolute;bottom:5%;right:15%;font-size:220px;color:rgba(235,185,57,.11);font-family:serif;line-height:1}.authart>*{position:relative;z-index:1}.authart .topline{display:flex;justify-content:space-between;align-items:center}.authart h1{color:var(--cream);font-size:clamp(50px,6vw,94px);margin:0 0 25px;max-width:700px}.authart .muted-white{font-size:16px;color:#C9DCD0;max-width:480px}.authart .authcopy{margin:auto 0}.authart .authfoot{display:flex;align-items:center;gap:12px;letter-spacing:.12em;font-size:10px;color:#d2e1d7;text-transform:uppercase}.authart .goldline{height:3px;width:45px;background:var(--gold)}.authform{padding:60px clamp(24px,7vw,95px);display:flex;flex-direction:column;align-items:center;justify-content:center}.authform .inner{max-width:440px;width:100%}.authform h2{font-size:42px;margin:16px 0}.authform .role-switch{display:flex;gap:7px;background:#ECEFE7;border-radius:11px;padding:5px;margin:24px 0}.role-switch button{flex:1;background:transparent;border:0;border-radius:8px;padding:12px;color:#607268;font-weight:800}.role-switch button.active{background:#fff;color:var(--forest);box-shadow:0 2px 8px #142d2220}.authform label,.formlabel{display:flex;flex-direction:column;gap:6px;color:#2E4539;font-size:12px;font-weight:800;margin:0 0 16px}.authform input,form input,form textarea,form select,.input,.select,.textarea{width:100%;border:1px solid #D4DDD4;border-radius:10px;background:white;padding:12px 13px;color:var(--ink);min-height:44px;outline:none}.authform input:focus,form input:focus,form textarea:focus,form select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(20,107,78,.09)}.alert{padding:12px;border-radius:9px;background:#FBE9E6!important;color:#9B2A1A!important;font-size:12px}.authform .alert{margin-bottom:15px}.authform .fineprint{margin-top:25px;line-height:1.7}.tinylabel{font-weight:800;color:var(--forest);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.demo-hint{margin-top:15px;background:#F4F1E5;padding:12px;border-radius:10px;color:#6A674C;font-size:12px}
/* shell */
.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{background:var(--deep);position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;color:#EAF4E9;z-index:20;overflow-y:auto}.sidehead{padding:29px 27px 32px;border-bottom:1px solid #ffffff19}.sidehead .sidecaption{font-size:10px;letter-spacing:.15em;color:#9DB7A8;margin-top:12px;font-weight:700}.side-nav{padding:26px 12px;display:grid;gap:5px}.side-nav .navtitle{font-size:10px;letter-spacing:.16em;color:#91AEA0;margin:3px 14px 9px;font-weight:800}.navitem{width:100%;display:flex;align-items:center;gap:13px;border:0;padding:12px 14px;border-radius:11px;color:#B8CEC0;background:transparent;text-align:left;font-size:13px;font-weight:700;transition:background .12s}.navitem:hover{background:#ffffff12;color:white}.navitem.active{background:#E9EFE5;color:#0B3D2E;font-weight:800}.navitem svg{opacity:.9;flex:none}.navitem .navcount{margin-left:auto;background:#ffffff24;border-radius:8px;padding:1px 6px;font-size:10px}.side-bottom{margin-top:auto;padding:20px 18px;border-top:1px solid #ffffff14}.identity-mini{display:flex;gap:10px;align-items:center}.avatar{width:40px;height:40px;border-radius:12px;background:#E2EBDA;color:var(--forest);display:flex;align-items:center;justify-content:center;font:700 16px var(--serif);flex:none}.avatar.goldavatar{background:#DFC983;color:#2f3c2d}.identity-mini strong{display:block;font-size:12px}.identity-mini span{font-size:11px;color:#98B9A7}.identity-mini button{margin-left:auto;background:transparent;border:0;color:#b7cdbc}.workspace{min-width:0;background:var(--cream2)}.topbar{position:sticky;top:0;background:rgba(251,249,244,.92);backdrop-filter:blur(20px);z-index:10;min-height:81px;border-bottom:1px solid #ECEDE5;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(19px,3.3vw,52px);gap:20px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb strong{color:var(--ink)}.top-actions{display:flex;gap:9px;align-items:center}.toplabel{font-size:11px;color:var(--muted);font-weight:700}.top-pill{background:#EDF1E9;border:1px solid #DEE7DC;border-radius:99px;padding:8px 12px;font-weight:800;font-size:11px;white-space:nowrap}.container{max-width:1430px;margin:0 auto;padding:32px clamp(18px,3.3vw,52px) 90px}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:25px}.pagehead p{margin:6px 0 0;max-width:660px}.pagehead h1{margin:6px 0 0}.pagehead .eyebrow{margin-bottom:1px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon.lg{width:26px;height:26px}.icon.sm{width:16px;height:16px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.sectionhead h3{margin:0;font:600 22px/1.2 var(--serif);letter-spacing:-.02em}.sectionhead .smallcopy{color:var(--muted);font-size:12px}.section{margin-top:27px}.two-col{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.9fr);gap:18px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.card{padding:22px}.card h3{font-size:16px;margin-bottom:8px}.card p:last-child{margin-bottom:0}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar .spacer{flex:1}.filter-input{max-width:300px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{padding:20px;border:1px solid var(--line);background:#fff;border-radius:15px;min-height:133px}.stat .statlabel{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.stat .num{font:600 38px/.9 var(--serif);letter-spacing:-.04em;color:var(--forest);margin:18px 0 6px}.stat .sub{font-size:11px;color:var(--muted)}.hero{border-radius:22px;background:var(--forest);min-height:265px;color:#fff;padding:clamp(26px,4vw,47px);overflow:hidden;position:relative;display:flex;align-items:center;margin-bottom:24px}.hero:before{content:"";position:absolute;height:430px;width:430px;border-radius:50%;border:1px solid #ffffff35;right:-100px;top:-100px;box-shadow:0 0 0 52px #ffffff09,0 0 0 105px #ffffff06,0 0 0 160px #ffffff05}.hero:after{content:"";position:absolute;right:90px;bottom:-20px;width:160px;height:160px;border-radius:50%;border:2px solid #F6C21B55}.hero>*{position:relative;z-index:1}.hero h1{color:#fff;max-width:660px;font-size:clamp(35px,4vw,56px);margin:13px 0}.hero p{color:#CBDCD0;max-width:570px;margin-bottom:24px}.hero .eyebrow{color:var(--gold)}.hero .btn{background:var(--cream);color:var(--forest);border-color:var(--cream)}.hero-pair{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.hero-note{font-size:11px;color:#BDD2C4;padding-left:8px}.progressbar{height:8px;background:#E3E8DD;border-radius:12px;overflow:hidden}.progressbar>i{display:block;height:100%;background:var(--green);border-radius:12px}.listrows{display:grid}.listrow{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.listrow:last-child{border-bottom:none}.listrow h4{margin:0;font-size:13px}.listrow p{font-size:11px;margin:4px 0 0}.roundnum{height:38px;min-width:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#EEF2EB;font-weight:800;color:var(--forest)}.listrow .trailing{margin-left:auto;white-space:nowrap}.module-rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:14px 0 24px}.module-rail .segment{height:7px;border-radius:3px;opacity:.9}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{position:relative;background:white;padding:23px;border:1px solid var(--line);border-radius:16px;min-height:220px;display:flex;flex-direction:column;align-items:flex-start;overflow:hidden}.module-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--module-color)}.module-card .modn{color:var(--module-color);font:600 41px/1 var(--serif)}.module-card h3{font-size:18px;margin:17px 0 6px}.module-card p{font-size:12px;margin-bottom:19px}.module-card .foot{margin-top:auto;display:flex;width:100%;justify-content:space-between;color:var(--muted);font-size:11px;font-weight:700;align-items:center}.week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.week-card{padding:19px;border:1px solid var(--line);background:#fff;border-radius:14px;display:flex;flex-direction:column;gap:9px;transition:border-color .12s,transform .12s;min-height:203px}.week-card:hover{border-color:#A9C2B1;transform:translateY(-1px)}.week-card h3{margin:0;font-size:17px}.week-card p{font-size:12px;flex:1;margin:0}.week-top{display:flex;align-items:center;justify-content:space-between}.week-top .wkn{font:700 30px/1 var(--serif);letter-spacing:-.04em}.week-card .week-bottom{display:flex;justify-content:space-between;align-items:center}.detail-hero{padding:28px;border:1px solid var(--line);background:white;border-radius:20px;margin-bottom:18px}.detail-hero .meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.detail-hero h2{font-size:36px;margin:8px 0}.detail-hero p{margin-bottom:0;max-width:770px}.session-card{padding:22px;min-width:0}.session-card .session-top{display:flex;justify-content:space-between;gap:12px}.session-card h3{font:600 23px/1.12 var(--serif);margin:12px 0}.session-card h4{margin:15px 0 5px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--green)}.session-card p{font-size:12px}.agenda-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #EFF1EC}.agenda-item:last-child{border:0}.agenda-time{font-weight:800;color:var(--green);font-size:11px;min-width:44px}.mini-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-card{background:#F6F8F4;border:1px solid #E7ECE5;border-radius:12px;padding:15px}.mini-card .cap{font-size:11px;color:var(--muted);margin-bottom:6px}.mini-card .value{font-weight:800;line-height:1.25}.callout{padding:18px 19px;background:#F4F6EF;border-left:3px solid var(--green);border-radius:0 12px 12px 0}.callout.gold{border-color:var(--gold);background:#FFF9E9}.callout.red{border-color:var(--red);background:#FFF0EC}.callout h4{margin:0 0 5px}.callout p{font-size:12px;margin:0}.att-list{display:grid;gap:0}.att-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.att-item:last-child{border:0}.att-item .name{flex:1;font-size:13px;font-weight:800}.select-inline{width:auto!important;min-width:135px;min-height:38px!important;padding:7px 9px!important;font-size:12px!important}.student-list{display:grid;gap:8px}.student-row{display:flex;align-items:center;gap:12px;padding:15px 16px;background:#fff;border-radius:13px;border:1px solid var(--line)}.student-row .grow{flex:1;min-width:0}.student-row .grow .name{font-weight:800}.student-row .grow .meta{font-size:11px;color:var(--muted)}.student-row .end{display:flex;align-items:center;gap:9px}.student-row .flag{font-size:11px;color:var(--red)}.submitted{background:white;border:1px solid var(--line);border-radius:15px;padding:19px;margin-bottom:12px}.submitted p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.submitted .byline{font-size:11px;color:var(--muted)}.submitted h3{margin:8px 0}.submitted .ref{overflow-wrap:anywhere;font-size:12px;color:var(--green)}.statstrip{display:flex;gap:10px;flex-wrap:wrap}.statstrip .chip{border:1px solid #E6E9E0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label{margin-bottom:0}.form-grid label.span2{grid-column:span 2}form textarea,.textarea{min-height:115px;resize:vertical}.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(3,25,19,.63);display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(5px)}.modal{max-width:560px;width:100%;max-height:min(91vh,900px);overflow-y:auto;border-radius:18px;background:#FFFEFA;box-shadow:0 30px 90px #0004}.modal-header{padding:22px 24px 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border-bottom:1px solid var(--line)}.modal-header h2{font-size:29px;margin:4px 0 0}.modal-body{padding:22px 24px 25px}.modal-close{background:#EFF2EC;border:0;border-radius:9px;height:35px;width:35px;font-size:20px;color:var(--forest)}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:13px}.codebox{border:1px dashed #A9BCAD;background:#F1F6F0;border-radius:12px;padding:18px 10px;text-align:center;font-size:24px;letter-spacing:.17em;font-weight:800;overflow-wrap:anywhere}.notice{padding:11px 13px;background:#FFF5E2;border-radius:11px;font-size:12px;color:#765B28}.toast{pointer-events:none;position:fixed;bottom:23px;right:25px;z-index:200;max-width:380px;background:#103B2D;color:white;border-radius:11px;padding:13px 18px;box-shadow:0 16px 30px #17352635;font-size:12px;font-weight:700}.toast.bad{background:#9B3120}.view-loading{min-height:95vh;display:flex;align-items:center;justify-content:center;flex-direction:column}.view-loading .brand-mark{font-size:23px}.bottom-nav{display:none}.mobile-menu{display:none}.print-only{display:none}.template{white-space:pre-wrap;background:#F4F6F1;border:1px solid #E3EAE0;color:#264235;border-radius:12px;padding:17px;font-size:12px;line-height:1.8;max-height:360px;overflow:auto}.recovery-step{display:flex;gap:13px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.recovery-step .number{background:#e6efe6;color:var(--green);border-radius:9px;width:27px;height:27px;display:grid;place-items:center;font-weight:800}.recovery-step p{font-size:12px;margin:4px 0 0}.grades{display:flex;gap:5px;flex-wrap:wrap}.gradebox{padding:16px;background:#F6F8F3;border-radius:11px}.gradebox .big{font:600 35px var(--serif)}.highlight{color:var(--green)}.alertbar{padding:13px 16px;border-radius:12px;background:#FFF4E4;color:#80581E;display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:20px}.alertbar p{color:#80581E;margin:0;font-size:12px}.setup-body{min-height:100vh;display:grid;place-items:center;background:var(--forest);padding:25px}.setup-card{background:#FFFEFB;border-radius:20px;padding:38px;max-width:510px;box-shadow:0 20px 80px #0002}.setup-card h1{margin:18px 0}.setup-card p{line-height:1.7}.setup-card form{margin-top:20px}.setup-card .btn{width:100%}
@media(max-width:1190px){.two-col{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.week-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){:root{--sidebar:0px}.shell{display:block}.sidebar{display:none}.topbar{min-height:67px;padding:10px 18px}.container{padding:22px 17px 94px}.toplabel,.top-pill{display:none}.mobile-menu{display:flex;background:transparent;border:0;padding:7px;color:var(--forest)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(67px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;align-items:flex-start;padding:7px 5px env(safe-area-inset-bottom);background:rgba(255,255,251,.97);backdrop-filter:blur(18px);border-top:1px solid #E2E7DD;z-index:30;box-shadow:0 -7px 28px #0b382311}.bottom-nav button{color:#75857A;background:transparent;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:2px 8px;font-size:10px;min-width:58px;font-weight:800}.bottom-nav button.active{color:var(--green)}.bottom-nav .icon{width:20px;height:20px}.sidebar.mobile-open{position:fixed;display:flex;width:285px;top:0;left:0;bottom:0;height:100dvh;z-index:55;box-shadow:10px 0 55px #0004}.shade{position:fixed;inset:0;background:#06211988;z-index:50}.pagehead h1{font-size:36px}.hero{min-height:255px}.stat-grid{grid-template-columns:repeat(2,1fr)}.authpage{display:flex;min-height:100dvh;flex-direction:column}.authart{min-height:260px;padding:25px 25px 36px}.authart h1{font-size:43px;max-width:500px;margin:15px 0}.authart .authcopy{margin:28px 0 0}.authart .authfoot{display:none}.authart .muted-white{font-size:13px}.authart:before{height:380px;width:380px;right:-150px;top:-80px}.authform{padding:32px 24px 50px}.authform .inner{max-width:520px}.authform h2{font-size:34px}.authform .role-switch{margin:16px 0}}
@media(max-width:560px){.pagehead{align-items:flex-start;flex-direction:column}.pagehead .actions{width:100%}.hero{border-radius:17px;min-height:265px;padding:24px}.hero h1{font-size:39px}.hero:before{right:-240px}.hero .hero-pair .btn{width:100%}.stat-grid{gap:8px}.stat{min-height:111px;padding:15px}.stat .num{font-size:32px;margin:14px 0 5px}.stat .statlabel{font-size:11px}.module-grid{grid-template-columns:1fr}.module-card{min-height:175px}.module-card h3{margin:12px 0 6px}.week-grid{grid-template-columns:1fr}.week-card{min-height:0}.three-col{grid-template-columns:1fr}.mini-cards{grid-template-columns:1fr}.card{padding:17px}.detail-hero{padding:20px}.detail-hero h2{font-size:30px}.session-card{padding:18px}.session-card h3{font-size:21px}.student-row{flex-wrap:wrap;padding:14px}.student-row .end{width:100%;justify-content:flex-end}.authart{min-height:240px}.authart h1{font-size:40px}.authform{padding:25px 23px 44px}.sectionhead{align-items:flex-start}.form-grid{grid-template-columns:1fr}.form-grid label.span2{grid-column:auto}.modal{max-height:90dvh}.modal-body{padding:18px}.modal-header{padding:18px}.statstrip{gap:6px}.topbar .breadcrumb{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section{margin-top:20px}}
@media print{.sidebar,.topbar,.bottom-nav,.btn,.toolbar,.modal-overlay{display:none!important}.shell{display:block}.container{max-width:100%;padding:0}.surface,.card{box-shadow:none}.print-only{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
