:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#263b50;background:#f5f7fa;font-synthesis:none;font-size:16px;--navy:#172e46;--blue:#245ac4;--line:#e2e7ee;--muted:#708092;--orange:#eea54c;--green:#187c62;--shadow:0 6px 24px #20364c06}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #eaab50;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #8fb3f1;outline-offset:1px}a{color:var(--blue)}button{border:0}svg{width:20px;height:20px;vertical-align:middle;flex-shrink:0}.shell{display:grid;grid-template-columns:246px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#c3ccda;padding:32px 20px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:246px}.brand{display:flex;align-items:center;gap:12px;color:white;font-weight:700;font-size:21px;letter-spacing:-.7px;padding:0 9px}.brand img{width:39px;height:39px}.brand small{display:block;font-size:11px;letter-spacing:2.5px;color:#aebed0;margin-top:5px;font-weight:500}.nav-label{text-transform:uppercase;letter-spacing:1.8px;font-size:11px;color:#8fa3ba;margin:43px 15px 12px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;gap:13px;align-items:center;color:#b9c9d9;background:transparent;text-align:left;padding:14px 16px;border-radius:8px;font-size:14px;font-weight:500}.nav button:hover{background:#243e57;color:white}.nav button.active{background:#314c65;color:#fff}.nav button.active svg{color:#f4b45f}.nav .counter{margin-left:auto;background:#efb366;color:#182e44;padding:2px 6px;border-radius:5px;font-size:11px}.sidebar-bottom{margin-top:auto;padding-top:28px}.side-note{padding:16px;background:#213b53;border:1px solid #355068;border-radius:9px;font-size:13px;line-height:1.6;color:#b8c9da}.side-note strong{display:block;color:#f0c38b;font-size:14px;margin-bottom:4px}.profile{display:flex;gap:11px;align-items:center;padding:21px 7px 0;font-size:14px}.profile small{display:block;font-size:12px;color:#98adc2;margin-top:4px}.avatar{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:50%;background:#e9eff8;color:#436387;font-size:13px;font-weight:650;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.profile .avatar{background:#405972;color:#fff}.workspace{grid-column:2;min-width:0}.topbar{height:86px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;gap:15px}.space-choice{display:flex;align-items:center;gap:11px}.space-choice>svg{color:#bd853c}.space-choice small{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.space-choice select{border:0;padding:0 24px 0 0;background:white;color:var(--navy);font-weight:600;max-width:330px}.top-actions{display:flex;align-items:center;gap:15px}.badge{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;border-radius:5px;background:#edf6f2;color:var(--green);white-space:nowrap}.badge.warning{background:#fff2dd;color:#95600f}.badge.blue{background:#eaf0fc;color:#3565b0}.badge.gray{background:#eef1f5;color:#65778b}.icon-btn{padding:9px;border:1px solid var(--line);border-radius:7px;background:white;color:#5d7082;display:inline-flex;align-items:center;justify-content:center}.main{padding:33px 38px 40px;max-width:1650px;margin:auto}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.6px;text-transform:uppercase;color:#8a96a5;margin-bottom:8px}h1{font-size:29px;line-height:1.2;letter-spacing:-1px;margin:0;color:var(--navy);font-weight:680}h2{font-size:18px;letter-spacing:-.25px;margin:0;color:var(--navy)}h3{font-size:15px;margin:0}p{line-height:1.6}.muted{color:var(--muted)}.subhead{margin:9px 0 0;color:var(--muted);font-size:14px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 15px;border-radius:7px;font-size:14px;font-weight:600;background:white;border:1px solid #dce3eb;color:#3a5067;text-decoration:none;white-space:nowrap}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.orange{background:#f4b660;color:#493019;border-color:#f4b660}.btn.danger{color:#ad3e49}.btn.small{padding:7px 11px;min-height:35px;font-size:13px}.btn:hover{filter:brightness(.97)}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.session-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 21px;border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:22px}.date-control{display:flex;align-items:center;gap:13px}.date-control>svg{color:#456fb7}.date-control label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#8290a0}.date-control input{display:block;border:0;padding:4px 0 0;color:var(--navy);font-size:15px;font-weight:600;max-width:180px}.segmented{display:flex;background:#eff2f7;border-radius:7px;padding:4px;gap:3px}.segmented button{padding:9px 17px;background:transparent;border-radius:5px;color:#758396;font-size:13px;font-weight:600}.segmented button.selected{background:#fff;box-shadow:0 2px 5px #293b5310;color:#285cc1}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:10px;padding:19px 21px;position:relative;box-shadow:var(--shadow)}.metric>svg{position:absolute;right:20px;top:21px;color:#7990ac;background:#f1f5fa;width:36px;height:36px;padding:9px;border-radius:8px}.metric .number{font-size:31px;font-weight:650;letter-spacing:-1px;color:var(--navy);margin:12px 0 5px}.metric .label{font-size:13px;color:#6f7f92}.metric small{font-size:12px;color:#97a1af}.metric.green .number{color:#26836e}.metric.red .number{color:#c46669}.metric.amber .number{color:#bb8a35}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 294px;gap:23px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:11px;overflow:hidden;box-shadow:var(--shadow)}.panel-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-head h2{font-size:16px}.panel-head small{font-size:12px;color:#8995a3}.search-row{display:flex;gap:11px;padding:18px 21px 14px}.search{position:relative;flex:1}.search svg{position:absolute;left:12px;top:12px;width:17px;color:#8b99a9}.search input{padding-left:38px;width:100%}input,select,textarea{border:1px solid #dce3eb;border-radius:6px;background:#fff;padding:10px 12px;color:#354b61;font-size:14px;min-height:42px;max-width:100%}textarea{resize:vertical;min-height:85px}input[type=checkbox]{min-height:initial;accent-color:var(--blue);width:17px;height:17px}.chips{display:flex;gap:7px;padding:0 21px 18px;flex-wrap:wrap}.chip{font-size:12px;padding:7px 12px;border:1px solid #e2e7ee;border-radius:5px;background:white;color:#758599;white-space:nowrap}.chip.active{background:#eaf0fb;border-color:#c9d8f4;color:#295cb1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f9fafc;color:#8a95a5;font-size:11px;font-weight:600;letter-spacing:.5px;padding:13px 21px;border-block:1px solid #eaf0f5;text-transform:uppercase}td{padding:13px 21px;border-bottom:1px solid #edf0f4;font-size:13px}tr:last-child td{border-bottom:0}.member-name{display:flex;gap:11px;align-items:center}.member-name button{background:none;padding:0;color:#334a61;text-align:left;font-weight:600;font-size:13px}.member-name small{display:block;font-size:11px;color:#9aa5b2;margin-top:4px}.mark-controls{display:flex;gap:5px}.mark{width:35px;height:33px;display:inline-flex;align-items:center;justify-content:center;background:white;border:1px solid #e0e6ee;border-radius:6px;color:#9ba7b3;font-size:15px}.mark svg{width:16px;height:16px}.mark.present.active{background:#e4f4ec;color:#208b62;border-color:#94d6b7}.mark.absent.active{background:#fff0f0;color:#d3656c;border-color:#eeb5bb}.mark.excused.active{background:#fff4df;color:#bc8730;border-color:#edcd8b}.mark.pending{box-shadow:0 0 0 2px #eeb35b}.table-foot{padding:14px 21px;display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fdfefe;border-top:1px solid var(--line);font-size:12px;color:#8b98a7}.legend{display:flex;gap:14px}.legend span{display:flex;align-items:center;gap:5px}.legend i{height:7px;width:7px;border-radius:2px;display:inline-block;background:#80ba9f}.legend i.red{background:#de9ca0}.legend i.amber{background:#eac684}.aside-stack{display:grid;gap:19px}.summary-content{padding:21px}.progress-ring{--progress:0;position:relative;width:148px;height:148px;border-radius:50%;background:conic-gradient(#2c8c78 calc(var(--progress)*1%),#edf2f5 0);margin:1px auto 21px;display:grid;place-items:center}.progress-ring:before{content:'';position:absolute;inset:11px;border-radius:50%;background:white}.progress-ring div{z-index:1;text-align:center}.progress-ring strong{display:block;color:#224c49;font-size:29px;letter-spacing:-1px}.progress-ring small{font-size:11px;color:#8a98a3}.summary-line{display:flex;justify-content:space-between;align-items:center;margin:13px 0;font-size:13px}.summary-line strong{font-size:13px;font-weight:600}.mini-bar{height:5px;border-radius:4px;background:#edf1f5;overflow:hidden;margin-top:-4px;margin-bottom:15px}.mini-bar span{height:100%;display:block;background:#7c9ebd}.aside-note{padding:18px 20px;background:#fff8ed;border:1px solid #f0ddbc;border-radius:10px;color:#997038;font-size:12px;line-height:1.6}.aside-note h3{font-size:13px;color:#8b5e22;margin-bottom:8px;display:flex;align-items:center;gap:7px}.lesson-preview{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f4;font-size:13px}.lesson-preview:last-child{border-bottom:0}.lesson-preview svg{color:#8598b0;width:17px}.lesson-preview small{display:block;color:#909eac;font-size:11px;margin-top:5px}.link-btn{background:none;color:var(--blue);font-size:13px;font-weight:600;padding:0}.notice{padding:12px 17px;border:1px solid #d7e3f5;background:#edf3ff;color:#526f9a;border-radius:8px;font-size:13px;line-height:1.6;margin-bottom:20px}.notice.warning{background:#fff6e6;border-color:#f1d69e;color:#916423}.empty{text-align:center;padding:50px 22px;color:#8593a4}.empty svg{width:33px;height:33px;margin-bottom:12px}.empty h3{color:#4c6176;margin-bottom:8px}.empty p{font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#52687e}.field.full{grid-column:1/-1}.field label{font-weight:600}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-list label{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.5}.form-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:25px;padding-top:19px;border-top:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:14px;width:min(650px,94vw);max-height:90vh;padding:0;box-shadow:0 20px 80px #0a213b44;color:#344b61}dialog::backdrop{background:#102e4b70;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:23px 26px;border-bottom:1px solid var(--line)}.dialog-body{padding:24px 26px}.dialog-body h3{margin:16px 0 11px}.error{color:#b84652;font-size:13px;margin-top:12px}.lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.lesson-card{padding:23px}.lesson-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}.lesson-num{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#eaf0fb;color:#5076b9;font-size:13px;flex-shrink:0}.lesson-title h2{font-size:16px;line-height:1.5}.lesson-title small{font-size:12px;color:#94a0ac}.lesson-card .field{margin-bottom:12px}.lesson-card select{width:100%}.slot{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:10px;align-items:center}.slot label{display:flex;gap:5px;align-items:center;font-size:12px;color:#7e8e9e}.lesson-card textarea{width:100%}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.member-card{padding:21px;cursor:pointer}.member-card:hover{border-color:#b1c7e8}.member-card .avatar{width:48px;height:48px;font-size:16px}.member-card h3{margin:14px 0 6px}.member-card p{font-size:13px;color:#8190a2;margin:7px 0}.member-card .badge{margin-top:9px}.access-table td{vertical-align:top}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:5px 8px;background:#f0f3f7;border-radius:4px;color:#6b7f94;font-size:11px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.padded{padding:24px}.group-row{display:flex;gap:11px;align-items:center;margin:12px 0}.group-row span{display:grid;place-items:center;min-width:30px;height:30px;border-radius:6px;background:#edf2fa;color:#627ea3;font-size:12px}.group-row input{flex:1;min-width:0}.mobile-brand{display:none}.auth-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:var(--navy);color:white;padding:60px;display:flex;flex-direction:column;justify-content:center}.auth-story .brand{padding:0;margin-bottom:65px}.auth-story h1{font-size:48px;line-height:1.16;color:white;max-width:480px}.auth-story p{max-width:400px;color:#b4c6d8}.auth-story .accent{color:#f4b65e}.auth-main{display:flex;align-items:center;justify-content:center;padding:35px}.auth-box{width:100%;max-width:410px}.auth-box h1{font-size:30px}.auth-box form{margin:28px 0}.auth-box .field{margin:18px 0}.auth-box .btn{width:100%;margin-top:8px}.auth-box>p{font-size:14px;color:#8492a1}.loading{padding:100px;text-align:center;color:#6b8097}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);transition:.2s;z-index:100;background:#172e46;color:white;border-radius:9px;padding:14px 22px;box-shadow:0 6px 35px #0002;font-size:14px;max-width:90vw}#toast.visible{transform:translateX(-50%) translateY(0)}.demo-ribbon{background:#fff5df;color:#8e6328;padding:7px 15px;text-align:center;font-size:12px;border-bottom:1px solid #ead9b7}.footer-note{display:flex;gap:7px;justify-content:center;align-items:center;font-size:11px;color:#98a3ae;margin-top:24px}.footer-note svg{width:14px;height:14px}.request-card{padding:24px;margin-bottom:16px;display:flex;gap:20px;justify-content:space-between;align-items:center}.request-card p{margin:6px 0;font-size:13px;color:#7d8c9d}.approval-actions{display:flex;gap:8px;flex-wrap:wrap}.inline-help{font-size:12px;line-height:1.6;color:#8a98a8}.view-tabs{display:flex;gap:10px;flex-wrap:wrap}.auth-footer{font-size:12px!important}.member-details{display:grid;grid-template-columns:1fr 1fr;gap:16px}.member-details small{display:block;color:#8a9bac;font-size:12px;margin-bottom:6px}.member-details p{margin:0;font-size:14px}.report-value{font-size:32px;font-weight:650;color:var(--navy);margin:10px 0}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px}
@media(min-width:1500px){.main{padding:38px 48px}.content-grid{grid-template-columns:minmax(0,1fr) 325px}td{padding-block:16px}}
@media(max-width:1200px){.shell{grid-template-columns:210px 1fr}.sidebar{width:210px;padding-inline:14px}.brand{font-size:18px;gap:7px}.brand img{width:33px}.main{padding:26px 24px}.topbar{padding-inline:24px}.content-grid{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.search-row{flex-wrap:wrap}td,th{padding-inline:14px}.member-grid{grid-template-columns:repeat(2,1fr)}.metrics{gap:12px}.metric{padding:17px}.metric>svg{right:14px;width:30px;height:30px;padding:7px}.legend{gap:8px}}
@media(max-width:1000px){.content-grid{grid-template-columns:1fr}.aside-stack{grid-template-columns:1fr 1fr}.aside-stack .aside-note{grid-column:1/-1}.lesson-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.top-actions .badge{font-size:11px}.metric .label{font-size:12px}.metric>svg{display:none}.topbar{gap:8px}.space-choice select{max-width:250px}.auth-story{padding:40px}.auth-story h1{font-size:38px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:68px;padding:5px 8px;z-index:20;border-top:1px solid #3c536b}.sidebar .brand,.sidebar .nav-label,.sidebar-bottom{display:none}.nav{display:flex;flex-direction:row;justify-content:space-around;overflow-x:auto;gap:0}.nav button{display:flex;flex-direction:column;gap:5px;padding:7px 10px;font-size:10px;min-width:62px;border-radius:6px}.nav button svg{width:20px;height:20px}.nav .counter{display:none}.topbar{height:74px;padding:12px 16px}.space-choice>svg{display:none}.space-choice select{font-size:13px;max-width:195px}.space-choice small{font-size:10px}.top-actions{gap:7px}.top-actions .badge{max-width:110px;white-space:normal;line-height:1.3}.main{padding:24px 16px 100px}h1{font-size:25px}.page-head{align-items:flex-start;margin-bottom:20px}.page-head>.btn{font-size:0;padding:10px}.page-head>.btn svg{font-size:16px}.subhead{font-size:13px;max-width:270px}.session-bar{padding:14px;flex-wrap:wrap;gap:12px}.date-control{gap:10px}.segmented button{padding:8px 13px}.metrics{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:17px}.metric{padding:15px 17px}.metric .number{font-size:27px;margin-top:8px}.metric>svg{display:block;top:14px}.metric small{font-size:11px}.search-row{padding:15px;gap:8px}.search-row>select{width:100%}.chips{padding:0 15px 15px;gap:6px}.chip{padding:7px 9px;font-size:11px}.panel-head{padding:17px 15px}td,th{padding:12px 14px}.register-table .group-col{display:none}.member-name{gap:8px}.member-name .avatar{width:30px;height:30px;font-size:11px}.member-name button{font-size:12px}.member-name small{font-size:10px}.mark-controls{gap:4px}.mark{width:33px;height:36px}.table-foot{padding:13px 15px;flex-wrap:wrap;font-size:11px}.legend{font-size:10px}.aside-stack{grid-template-columns:1fr}.aside-stack .aside-note{grid-column:auto}.member-grid{grid-template-columns:1fr}.form-grid,.check-list{grid-template-columns:1fr}.field.full{grid-column:auto}.dialog-body{padding:20px}.dialog-head{padding:18px 20px}.auth-screen{display:block}.auth-story{padding:28px}.auth-story .brand{margin:0}.auth-story h1,.auth-story>p{display:none}.auth-main{padding:35px 24px}.request-card{flex-direction:column;align-items:flex-start;padding:20px}.approval-actions{width:100%}.approval-actions select{flex:1}.report-grid{grid-template-columns:1fr}.notice{font-size:12px}.demo-ribbon{font-size:11px}.lesson-card{padding:18px}.lesson-title h2{font-size:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.actions,.btn,.demo-ribbon,.footer-note{display:none!important}.shell{display:block}.main{padding:0}.workspace{display:block}.panel{box-shadow:none;break-inside:avoid}body{background:white}}

@media(max-width:760px){.nav{scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{flex:1;min-width:56px;padding-inline:6px}.sidebar{overflow:hidden}.nav{min-width:0}}

.brand{font-size:18px;white-space:nowrap}.brand small{font-size:10px;letter-spacing:1.3px}.mark{width:39px;height:38px}.member-name button{font-size:14px}.subhead{font-size:14px}@media(max-width:760px){.mark{width:39px;height:42px}.member-name button{font-size:13px}.member-name .avatar{display:none}.register-table th,.register-table td{padding-inline:12px}.slot{grid-template-columns:minmax(0,1fr) auto}.table-wrap{max-width:100%}}

@media(max-width:760px){.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.metric{padding:12px 9px}.metric>svg,.metric small{display:none}.metric .label{font-size:11px}.metric .number{font-size:25px;margin:8px 0 0}.space-choice select{max-width:167px}.top-actions{flex-shrink:0}.top-actions .badge{white-space:nowrap;min-width:75px;padding:8px;font-size:10px}.top-actions .badge svg{display:none}.top-actions .icon-btn{padding:8px}.nav button{min-width:0;font-size:9px;padding-inline:4px;flex:1}.nav{overflow-x:hidden}.page-head{margin-bottom:16px}.subhead{font-size:13px}}

@media(max-width:760px){.session-bar{padding:12px;gap:8px;margin-bottom:15px}.date-control input{min-height:28px;font-size:14px}.date-control label{font-size:10px}.segmented button{padding:7px 12px}.session-bar .badge{font-size:10px}.metrics{background:white;border:1px solid var(--line);border-radius:9px;padding:3px 0}.metric{padding:10px 7px;border:0;box-shadow:none;background:none}.metric .label{white-space:nowrap;font-size:10px}.metric .number{font-size:24px;margin-top:5px}.chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.page-head .subhead{font-size:12px}.search-row{padding-bottom:11px}}

/* Website settings, import preview and personal history */
.branding-panel{margin-bottom:24px}.brand-preview{width:64px;height:64px;object-fit:contain;display:block;margin:16px 0}.branding-panel button{margin-top:16px;display:block}.history-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.history-counts>div{background:var(--bg,#f5f7fa);padding:16px;border-radius:12px}.history-counts strong{display:block;font-size:28px;color:var(--navy,#172e46)}.history-counts span{display:block;font-size:12px;line-height:1.5}.history-topic{display:block;margin-top:4px;color:var(--muted,#697b8d)}.import-preview{max-height:300px;overflow:auto;margin:16px 0}#import-mapping{margin:20px 0}[hidden]{display:none!important}@media(max-width:550px){.history-counts{grid-template-columns:1fr}.history-counts strong{font-size:24px}.history-counts>div{display:flex;align-items:center;gap:16px}}

/* Guided, high-speed attendance register */
.rush-register{max-width:1080px;margin:auto}.rush-session{padding:20px;margin-bottom:16px}.rush-step{display:flex;gap:12px;align-items:flex-start}.rush-step>span{display:grid;place-items:center;background:#172e46;color:white;min-width:32px;height:32px;border-radius:50%;font-weight:800}.rush-step strong{font-size:17px}.rush-step p{margin:4px 0 0;color:#52657a;font-size:14px}.rush-date{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:22px;font-weight:750;margin:15px 0}.rush-session .session-bar{margin:0;box-shadow:none;padding:12px 0;border:0}.rush-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.rush-totals>div{padding:14px;background:white;border:1px solid var(--line);border-radius:12px;font-size:14px}.rush-totals strong{font-size:26px;display:block;color:#172e46}.rush-ready,.rush-saved{padding:16px;border-radius:12px;margin-bottom:16px;background:#eaf5ef;color:#185738}.rush-saved{display:flex;justify-content:space-between;gap:14px;align-items:center}.rush-saved strong,.rush-saved small{display:block}.rush-saved small{margin-top:4px}.rush-find{padding:20px;background:white;border-radius:14px 14px 0 0}.rush-search{display:flex;gap:8px;margin-top:16px}.rush-search input{flex:1;min-width:0;height:56px;font-size:18px;border:2px solid #becddd;border-radius:10px;padding:12px}.rush-search input:focus{outline:3px solid #c5dbff;border-color:#255ccb}.rush-find .chips{padding:16px 0;margin:0;flex-wrap:wrap}.rush-find .chip{min-height:44px}.rush-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rush-filter select{min-height:44px}.rush-filter span{font-size:13px;color:#52657a}.rush-instruction{padding:18px 20px;background:#f1f5f9;border-block:1px solid var(--line)}.rush-member{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line);min-height:104px}.rush-member.is-present{background:#f0f9f3}.rush-member-name{min-width:0}.rush-member-name strong{font-size:18px;display:block;overflow-wrap:anywhere;line-height:1.4}.rush-member-name>span{display:block;font-size:14px;margin:4px 0;color:#4c6073}.rush-status{font-size:13px;font-weight:650;color:#69788b}.rush-status.present{color:#187640}.rush-status.absent{color:#a43030}.rush-member-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.rush-present{min-width:146px;min-height:60px;background:#187640;color:white;border:0;border-radius:12px;font-size:18px;font-weight:750;padding:12px 18px;cursor:pointer;display:flex;gap:8px;align-items:center;justify-content:center;touch-action:manipulation}.rush-present svg{width:24px;height:24px}.rush-present:disabled{background:#deeee4;color:#25643e;cursor:default;opacity:1}.rush-present:focus-visible,.rush-correct:focus-visible{outline:3px solid #255ccb;outline-offset:3px}.rush-correct{min-height:48px;background:white;border:1px solid #bbc8d4;border-radius:9px;color:#34495d;padding:10px;font-size:14px;cursor:pointer}.rush-correct:disabled{opacity:.5}.rush-help{padding:20px;color:#52657a;font-size:14px;line-height:1.6}.rush-help p{margin:6px 0}.correction-options{display:grid;gap:12px}.correction-options .btn{min-height:56px;justify-content:flex-start}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(min-width:800px){.rush-find{position:sticky;top:0;z-index:2;box-shadow:0 4px 8px #172e4608}}@media(max-width:600px){.rush-session,.rush-find{padding:14px}.rush-date{font-size:18px}.rush-search input{font-size:16px}.rush-search .btn{padding:10px;font-size:12px}.rush-member{padding:16px 14px;gap:10px;align-items:flex-start}.rush-member-name strong{font-size:16px}.rush-member-actions{flex-direction:column;gap:6px}.rush-present{min-width:114px;min-height:60px;font-size:16px;padding:10px}.rush-correct{min-height:44px;width:100%}.rush-totals{gap:6px}.rush-totals>div{padding:10px;font-size:12px}.rush-totals strong{font-size:24px}.rush-saved{align-items:flex-start;flex-direction:column}.rush-instruction{padding:16px 14px}.rush-step strong{font-size:16px}}

.group-team{margin:0 0 24px 42px;padding:12px;background:#f5f7fa;border-radius:10px}.group-team>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 0}.group-team strong{min-width:105px;font-size:13px}.group-team span{flex:1;font-size:14px}

/* Department lesson planning */
.planner-help{color:var(--muted);margin:16px 0}.speaker-list{display:grid;gap:16px}.speaker-row{display:grid;gap:7px;padding:14px;background:#f5f8fc;border-radius:10px}.speaker-row .link-btn{text-align:left;font-size:12px}.delivered-check{display:flex;gap:8px;align-items:center}.sequence-hint{background:#edf5ff;border-left:3px solid #2b60b9;border-radius:6px;padding:12px;margin:14px 0;display:grid;gap:5px}.sequence-hint small{display:block}.planner-save{position:sticky;bottom:10px;background:white;border:1px solid #d9e3ef;border-radius:12px;padding:16px;margin-top:20px;display:flex;gap:14px;align-items:center;justify-content:space-between;box-shadow:0 5px 25px #142d4920;z-index:3}.planner-save .error:empty{display:none}.lesson-card details{margin-top:14px}.lesson-card details textarea{width:100%;margin-top:10px}.config-lesson{margin:16px 0}.config-lesson label{display:grid;gap:8px}.config-lesson .check-list{margin:16px 0}.config-lesson .check-list label{display:flex;align-items:center}.speaker-result{display:flex;justify-content:space-between;gap:20px;width:100%;padding:14px;margin:8px 0;border:1px solid #d9e3ef;background:#fff;border-radius:8px;text-align:left;cursor:pointer}.print-sheet table{width:100%;border-collapse:collapse}.print-sheet th,.print-sheet td{border:1px solid #ccd5df;padding:12px;text-align:left;vertical-align:top}.print-sheet h1{font-size:24px}.print-sheet h2{font-size:18px}.print-sheet{color:#152b40;background:white}.print-sheet tr{break-inside:avoid}#lesson-print{display:none}@media(max-width:600px){.planner-save{flex-wrap:wrap}.planner-save .btn{width:100%}.speaker-result{flex-direction:column;gap:4px}.print-sheet th,.print-sheet td{padding:6px}}@media print{body.printing-lessons>*{display:none!important}body.printing-lessons>#lesson-print{display:block!important}body.printing-lessons #modal{display:none!important}#lesson-print .print-sheet{font:12pt Arial,sans-serif}#lesson-print th{background:#edf2f7!important}#lesson-print h1,#lesson-print h2{margin:0 0 10px}#lesson-print table{margin-top:20px}@page{size:A4;margin:15mm}}

.sequence-config[hidden]{display:none!important}

@media(max-width:760px){.nav{overflow-x:auto;justify-content:flex-start;gap:4px;scrollbar-width:thin}.nav button{flex:1 0 78px;min-width:78px;font-size:10px;padding:8px 6px;white-space:normal}.nav::-webkit-scrollbar{display:block;height:3px}.nav::-webkit-scrollbar-thumb{background:#8299b3;border-radius:3px}.planner-save{bottom:82px}.page-head{flex-direction:column;align-items:flex-start;gap:14px}.page-head .actions{flex-wrap:wrap}}

/* Interface refinement: shared spacing, readable forms and responsive navigation. */
:root {
  --muted: #607286;
  --line: #dfe6ee;
  --shadow: 0 3px 14px #172e4604;
  --blue: #255bc4;
}
body { line-height: 1.5; }
button, a, input, select, textarea { touch-action: manipulation; }
button, input, select, textarea { transition: border-color .15s, background-color .15s; }
.sidebar { padding-top: 26px; overflow-y: auto; }
.brand { white-space: normal; letter-spacing: -.3px; line-height: 1.3; }
.brand > div { min-width: 0; overflow-wrap: anywhere; }
.brand img { object-fit: contain; flex: 0 0 38px; width: 38px; height: 38px; }
.brand small { line-height: 1.5; font-size: 9px; letter-spacing: 1px; }
.nav-label { margin-top: 28px; }
.nav button { min-height: 46px; padding: 11px 13px; line-height: 1.3; }
.nav .mobile-more { display: none; }
.profile { border-top: 1px solid #ffffff20; padding-top: 18px; }
.topbar { min-height: 84px; height: auto; padding-block: 15px; }
.space-choice, .space-choice > div { min-width: 0; flex: 1; }
.space-choice { max-width: 850px; }
.space-choice select { width: 100%; max-width: 100%; text-overflow: ellipsis; min-height: 36px; }
.top-actions { flex-shrink: 0; gap: 9px; }
.top-actions .icon-btn { width: 42px; height: 42px; }
.main { max-width: 1480px; padding-top: 28px; }
.page-head { margin-bottom: 24px; align-items: center; }
h1 { font-size: 28px; letter-spacing: -.65px; }
h2 { line-height: 1.4; }
.subhead { color: var(--muted); max-width: 720px; margin-top: 6px; }
.panel { border-radius: 12px; }
.padded { padding: 24px; }
.panel-intro { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 20px; }
.panel-intro .btn { flex-shrink: 0; }
.field, .form-grid > label { color: #415970; font-size: 13px; }
.field label, .form-grid > label { font-weight: 600; }
.form-grid > label:not(.field) { display: grid; gap: 7px; }
.field input:not([type=checkbox]):not([type=radio]), .field select, .field textarea, .form-grid > label > input:not([type=checkbox]):not([type=radio]), .form-grid > label > select { width: 100%; }
input, select, textarea { border-color: #cdd8e4; border-radius: 8px; min-height: 44px; }
input[type=checkbox] { min-height: 18px; height: 18px; width: 18px; flex-shrink: 0; }
input:disabled, select:disabled, textarea:disabled { background: #f4f6f9; opacity: 1; color: #647486; }
.inline-help, .lesson-title small, .member-card p, .member-details small { color: var(--muted); }
.error:empty { display: none; }
.error:not(:empty) { padding: 10px 12px; background: #fff0f0; border-radius: 7px; line-height: 1.5; }
.btn { min-height: 44px; border-radius: 8px; }
.btn.small { min-height: 38px; }
.btn.primary:disabled { opacity: .65; }
.form-footer { flex-wrap: wrap; align-items: center; }
.form-footer .error { flex-basis: 100%; }
.notice { border-radius: 9px; }
.help-disclosure { margin-bottom: 20px; padding: 14px 18px; background: #eef3f9; border-radius: 9px; color: #51677c; font-size: 13px; }
summary { cursor: pointer; font-size: 13px; font-weight: 600; color: #415d7a; }
details p:last-child { margin-bottom: 0; }
.permission-details .tag-list { margin-top: 10px; max-width: 400px; }
.access-table td { padding-block: 18px; }
.access-table td p { margin: 5px 0; overflow-wrap: anywhere; }
.table-wrap { max-width: 100%; }
th { color: #596d83; }
.search-row .search { min-width: 180px; }
.search-row .btn { flex-shrink: 0; }
.member-card { transition: border-color .15s, box-shadow .15s; }
.member-card:hover { box-shadow: 0 5px 18px #23486b0d; }
.member-card h3, .request-card h3 { overflow-wrap: anywhere; }
.group-row { margin-top: 24px; }
.group-team { margin-left: 41px; border: 1px solid #e6ecf2; background: #f8fafc; }
.group-team > div { padding: 9px 0; }
.group-team > div + div { border-top: 1px solid #e4eaf1; }
.group-team .link-btn { min-height: 36px; padding: 6px 10px; }
#group-form > .btn { margin-top: 8px; }
#department-form, #branding-form { margin-top: 20px; }
#branding-form .brand-preview { padding: 5px; border: 1px dashed #cfdae7; border-radius: 8px; }
dialog { width: min(720px, 94vw); max-height: 90dvh; overflow-y: auto; }
.dialog-head { position: sticky; top: 0; z-index: 4; background: #fff; padding: 18px 24px; }
.dialog-head h2 { padding-right: 15px; }
.dialog-body { padding: 24px; }
.dialog-body form > .field { margin-bottom: 16px; }
.dialog-body .form-grid { margin-bottom: 18px; }
.dialog-body > p:first-child { margin-top: 0; }
.dialog-body .search-row { padding-inline: 0; }
.dialog-body .search-row input { flex: 1; min-width: 0; }
.dialog-body input[type=file] { padding: 8px; }
.more-menu { display: grid; gap: 6px; }
.more-menu button { display: flex; gap: 12px; align-items: center; padding: 14px; min-height: 52px; background: #f4f7fb; color: #263f58; border-radius: 8px; text-align: left; }
.more-menu button span { flex: 1; }
.more-menu button.active { color: #255bc4; background: #eaf1ff; }
.clean-auth { display: grid; grid-template-columns: 1fr; place-items: center; min-height: 100svh; padding: 32px 20px; background: #f4f7fb; }
.clean-auth .auth-box { max-width: 450px; padding: 34px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 12px 48px #172e4608; }
.clean-auth .brand { color: var(--navy); padding: 0; margin-bottom: 32px; font-size: 20px; }
.clean-auth .brand small { color: var(--muted); }
.clean-auth h1 { font-size: 26px; }
.clean-auth .auth-box form { margin: 24px 0 18px; }
.clean-auth .auth-box > p { color: var(--muted); margin-bottom: 0; }
.clean-auth .auth-footer { text-align: center; }
.rush-register { max-width: 1080px; }
.rush-session { padding: 16px 20px; margin-bottom: 14px; }
.rush-session .session-bar { padding: 0; }
.rush-session .date-control input { border: 1px solid #cdd8e4; padding: 8px 10px; margin-top: 5px; min-height: 44px; }
.rush-session .date-control label { color: #415970; font-weight: 600; font-size: 13px; text-transform: none; letter-spacing: 0; }
.rush-session .notice { margin: 14px 0 0; }
.rush-totals { display: flex; background: white; border: 1px solid var(--line); border-radius: 11px; gap: 0; overflow: hidden; }
.rush-totals > div { flex: 1; border: 0; border-radius: 0; padding: 12px 18px; display: flex; align-items: center; gap: 10px; color: #5f7285; }
.rush-totals > div + div { border-left: 1px solid var(--line); }
.rush-totals strong { font-size: 25px; }
.rush-step strong { font-size: 15px; }
.rush-step > span { min-width: 28px; height: 28px; font-size: 13px; }
.rush-step p { font-size: 13px; color: var(--muted); }
.rush-find { position: static; box-shadow: none; padding: 20px; }
.rush-search { margin-top: 14px; }
.rush-search input { height: 50px; font-size: 16px; border-width: 1px; }
.rush-instruction { padding: 13px 20px; background: #f7f9fc; }
.rush-member { min-height: 94px; padding: 16px 20px; }
.rush-member-name strong { font-size: 16px; }
.rush-member-name > span { font-size: 13px; margin: 3px 0; }
.rush-status { font-size: 12px; }
.rush-present { min-height: 52px; min-width: 135px; border-radius: 9px; font-size: 16px; }
.rush-correct { min-height: 44px; }
.rush-help { padding: 16px 0; font-size: 13px; }
.rush-help > strong { display: block; margin-top: 12px; }
.rush-saved { padding: 12px 16px; }
.session-bar { padding: 16px 20px; }
.date-control label { color: #526b83; }
.lesson-grid { align-items: start; }
.lesson-card { padding: 22px; }
.lesson-title { margin-bottom: 18px; }
.speaker-row { padding: 12px; }
.speaker-row > label { font-size: 13px; font-weight: 600; }
.speaker-row .delivered-check { font-weight: 400; margin-top: 4px; }
.planner-help { margin: -4px 0 18px; font-size: 13px; }
.planner-save { position: static; box-shadow: none; padding: 16px 20px; }
.sequence-hint strong { font-size: 14px; }
.sequence-hint small { color: #526b83; font-size: 12px; line-height: 1.5; }
.config-lesson .check-list { gap: 16px; }
.config-lesson .link-btn { min-height: 40px; margin-top: 10px; }
#lesson-config-day { margin-left: 12px; min-width: 160px; }
.print-sheet td, .print-sheet th { overflow-wrap: anywhere; }
#toast { line-height: 1.4; }
@media (max-width: 1000px) {
  .space-choice select { max-width: 100%; }
  .topbar { padding-inline: 24px; }
}
@media (max-width: 760px) {
  .sidebar { height: calc(68px + env(safe-area-inset-bottom)); padding: 4px 8px env(safe-area-inset-bottom); overflow: hidden; }
  .nav { gap: 4px; overflow: hidden; justify-content: space-around; }
  .nav button { flex: 1 1 0; min-width: 0; min-height: 58px; font-size: 11px; padding: 6px 3px; text-align: center; }
  .nav .nav-secondary { display: none; }
  .nav .mobile-more { display: flex; }
  .topbar { padding: 14px 16px; gap: 8px; display: grid; grid-template-columns: minmax(0,1fr) auto; }
  .space-choice { grid-column: 1 / -1; width: 100%; }
  .space-choice select { max-width: 100%; font-size: 14px; padding-right: 25px; }
  .space-choice small { margin: 0; }
  .top-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .top-actions .badge { margin-right: auto; white-space: normal; max-width: none; font-size: 11px; min-width: 0; }
  .top-actions .icon-btn { width: 36px; height: 36px; padding: 7px; }
  .main { padding: 22px 16px calc(96px + env(safe-area-inset-bottom)); }
  h1 { font-size: 25px; }
  .page-head { align-items: flex-start; gap: 13px; margin-bottom: 20px; }
  .page-head > .btn { font-size: 13px; padding: 10px 13px; }
  .page-head .subhead { font-size: 13px; max-width: none; }
  .page-head .actions { gap: 8px; }
  .padded, .lesson-card { padding: 18px; }
  .panel-intro { flex-direction: column; gap: 14px; }
  .rush-session { padding: 14px; }
  .rush-session .session-bar { gap: 14px; }
  .rush-session .actions { gap: 8px; }
  .rush-session .badge { font-size: 11px; }
  .rush-totals > div { flex-direction: column; align-items: flex-start; padding: 10px 12px; gap: 0; font-size: 12px; }
  .rush-find { padding: 16px; }
  .rush-find .chips { gap: 6px; }
  .rush-find .chip { min-height: 40px; padding: 8px 10px; }
  .rush-search input { min-width: 0; width: 100%; }
  .rush-search .btn { min-height: 44px; }
  .rush-instruction { padding: 12px 16px; }
  .rush-member { padding: 14px 16px; gap: 12px; }
  .rush-member-name strong { font-size: 15px; }
  .rush-present { min-width: 104px; min-height: 52px; padding: 10px; }
  .rush-member-actions { gap: 6px; }
  .rush-correct { font-size: 12px; }
  .session-bar .segmented { max-width: 100%; }
  .segmented button { padding: 8px 10px; }
  .group-team { margin-left: 0; padding: 10px 12px; }
  .group-team > div { gap: 7px; }
  .group-team strong { min-width: 96px; font-size: 12px; }
  .group-team span { font-size: 13px; overflow-wrap: anywhere; }
  .search-row > .search { flex-basis: 100%; min-width: 0; }
  .search-row > .btn { flex: 1; font-size: 12px; padding-inline: 10px; }
  .form-footer { gap: 12px; }
  .form-footer > .btn { flex: 1; }
  dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 36px); border-radius: 12px; }
  .dialog-head { padding: 16px 18px; }
  .dialog-body { padding: 18px; }
  .clean-auth { padding: 24px 16px; }
  .clean-auth .auth-box { padding: 26px 22px; }
  .planner-save { position: static; padding: 16px; }
  #toast { bottom: calc(84px + env(safe-area-inset-bottom)); max-width: calc(100vw - 32px); width: max-content; padding: 12px 16px; }
  #lesson-config-day { margin: 8px 0 0; width: 100%; }
  .print-sheet { font-size: 12px; }
  .print-sheet h1 { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  button, input, select, textarea { transition: none; }
}

@media (min-width: 761px) {
  .rush-find { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; }
  .rush-find > .rush-step { grid-column: 1 / -1; }
  .rush-find > .rush-step > div { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
  .rush-find > .rush-step p { margin: 0; }
  .rush-search { grid-column: 1; grid-row: 2; }
  .rush-filter { grid-column: 2; grid-row: 2; margin-top: 14px; }
  .rush-find .chips { grid-column: 1 / -1; grid-row: 3; padding: 12px 0 0; }
}

.new-department-groups{border:1px solid var(--line);border-radius:10px;padding:16px;margin:20px 0}.new-department-groups legend{font-weight:600;padding:0 6px}.new-group-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.new-group-row input{flex:1;min-width:0}.group-row .btn{flex-shrink:0}.department-groups .actions{margin-top:20px}

.optional-team summary{padding:4px 0;font-size:13px}.optional-team[open] summary{margin-bottom:8px}.optional-team>.inline-help{margin:0 0 10px}.optional-team:not([open]){background:transparent;border-color:transparent;padding-block:4px}

.member-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 16px}.member-tools label{display:flex;align-items:center;gap:8px}.compact-members{background:white;border:1px solid #dce5ef;border-radius:14px;overflow:hidden}.compact-member{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #e5ebf2}.compact-member:last-child{border-bottom:0}.compact-member>div{flex:1;min-width:0}.compact-member small{display:block;color:#63758a;margin-top:5px}.compact-member .link-btn{text-align:left;padding:0}.compact-member .avatar{flex-shrink:0}#team-members{max-height:45vh;overflow:auto}@media(max-width:600px){.compact-member{padding:12px;gap:9px}.compact-member .avatar{display:none}.member-tools{gap:10px}.member-tools .btn{width:100%}}

/* Department entrance and event forms */
.department-home{max-width:1120px;margin:auto;padding:48px 24px}.department-home>.brand{margin-bottom:48px}.department-home>h1{font-size:clamp(28px,4vw,42px);margin-bottom:12px}.department-home>p{color:#63758a}.department-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin:32px 0}.department-tile{display:flex;flex-direction:column;text-align:left;gap:12px;padding:28px;background:#fff;border:1px solid #d7e2ef;border-radius:20px;color:#172e46;cursor:pointer;min-height:220px;box-shadow:0 8px 24px #172e4605}.department-tile:hover,.department-tile:focus-visible{border-color:#265cc6;box-shadow:0 8px 24px #172e4610}.department-tile strong{font-size:21px}.department-tile small{line-height:1.5;color:#63758a}.department-icon{font-size:36px}.tile-hint{margin-top:auto;font-size:13px;color:#265cc6}.register-tile{background:#172e46;color:white}.register-tile small{color:#dce5ef}#portal-settings .btn{margin-top:16px}#department-unlock input{display:block;width:100%;margin:12px 0;font-size:24px;letter-spacing:6px}#department-unlock .btn{width:100%}@media(max-width:600px){.department-home{padding:24px 16px}.department-home>.brand{margin-bottom:32px}.department-tiles{grid-template-columns:1fr 1fr;gap:12px}.department-tile{padding:18px;min-height:200px}.department-tile strong{font-size:17px}.page-heading{align-items:flex-start;flex-direction:column}.event-grid{grid-template-columns:1fr}.top-actions{gap:5px}}

.department-home .brand{color:var(--navy);padding:0}.department-home .brand small{color:var(--muted)}.department-icon{display:flex;align-items:center;justify-content:center;background:#eef3fb;color:#245ac4;width:56px;height:56px;border-radius:15px}.department-icon svg{width:32px;height:32px}.register-tile .department-icon{background:#2a4864;color:#f4b45f}

/* Shared interface system. Behaviour, permissions and print layouts stay in their existing modules. */
:root {
  --navy: #142d49;
  --blue: #285bd1;
  --line: #dde5f0;
  --muted: #5f7087;
  --orange: #f1ae51;
  --green: #117454;
  --shadow: 0 4px 18px #172e4606;
  color: #2b4058;
  background: #f3f6fb;
  line-height: 1.5;
}
h1, h2, h3 { font-family: inherit; }
h1 { font-size: clamp(25px, 2.4vw, 32px); font-weight: 750; letter-spacing: -.8px; }
h2 { font-weight: 700; }
p { overflow-wrap: anywhere; }
.eyebrow { display: block; color: #5f7087; font-size: 10px; font-weight: 750; letter-spacing: 1.7px; }
.subhead, .inline-help, .muted, .page-heading p { color: var(--muted); }
.inline-help { font-size: 12px; }
button, a, input, select, textarea { transition: background-color .18s, border-color .18s, box-shadow .18s, color .18s; }
.btn { border-radius: 10px; min-height: 44px; padding: 10px 16px; font-weight: 650; }
.btn.primary { box-shadow: 0 3px 8px #285bd118; }
.btn:hover { filter: none; background: #f2f6fd; border-color: #b7cae7; }
.btn.primary:hover { background: #204cbc; border-color: #204cbc; }
.btn.small { min-height: 40px; }
.icon-btn { min-height: 40px; min-width: 40px; border-radius: 10px; }
.icon-btn:hover { background: #edf3fc; color: var(--blue); }
.badge { border-radius: 7px; line-height: 1.35; }
.badge.green { background: #e8f6ef; color: #096443; }
.badge.gray { background: #eef2f7; color: #52637a; }
.badge.warning { background: #fff2d9; color: #805012; }
.panel, .compact-members { border-radius: 16px; box-shadow: var(--shadow); }
.panel-head { padding: 20px 24px; }
.padded { padding: 24px; }
.main { max-width: 1480px; padding: 30px 32px 48px; }
.page-head, .page-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 25px; }
.page-heading p { margin: 8px 0 0; font-size: 14px; }
.sidebar { background: #142d49; padding: 28px 16px 20px; border-right: 1px solid #ffffff0c; }
.sidebar .brand { gap: 10px; white-space: normal; font-size: 17px; letter-spacing: -.3px; }
.sidebar .brand small { font-size: 9px; letter-spacing: 1.5px; color: #b7c7db; }
.nav-label { margin-top: 35px; color: #a0b2c8; }
.nav { gap: 5px; }
.nav button { position: relative; padding: 12px 14px; min-height: 46px; border-radius: 10px; font-size: 13px; color: #c6d4e5; }
.nav button.active { background: #294666; color: white; box-shadow: inset 3px 0 var(--orange); }
.nav button:hover { background: #223e5c; }
.profile { border-top: 1px solid #ffffff18; padding: 20px 8px 0; }
.profile small { color: #acbfd5; }
.topbar { min-height: 80px; height: auto; padding: 17px 32px; background: #ffffffed; }
.space-choice { min-width: 0; }
.space-choice > div { min-width: 0; }
.space-choice > svg { background: #fff4e2; color: #9c641d; width: 38px; height: 38px; padding: 9px; border-radius: 11px; }
.space-choice small { font-size: 9px; color: #61748d; letter-spacing: 1.5px; }
.current-department { display: block; font-size: 15px; color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 440px; }
.top-actions { gap: 10px; }
.top-actions #sync-label { font-size: 11px; }
input, select, textarea { border-color: #ccd8e8; border-radius: 9px; min-height: 44px; color: #213b58; font-size: 14px; }
input::placeholder, textarea::placeholder { color: #738299; opacity: 1; }
input:focus, select:focus, textarea:focus { outline: 2px solid #aac3fa; outline-offset: 1px; border-color: #4779df; }
label { font-size: 13px; color: #415a77; }
input[type=checkbox] { width: 18px; height: 18px; min-height: 18px; flex-shrink: 0; }
.field { color: #415a77; }
.check-list { gap: 14px; }
.check-list label { line-height: 1.6; }
.notice { border-radius: 12px; color: #385c8d; background: #edf3ff; }
.notice.warning { color: #80531d; }
.error:not(:empty) { padding: 12px 14px; background: #fff0f2; border: 1px solid #f6d5da; border-radius: 9px; color: #a12538; line-height: 1.55; }
.empty { color: #5f728c; padding: 44px 24px; }
.empty h2, .empty h3 { color: var(--navy); }
.session-bar { border-radius: 14px; padding: 18px 22px; }
.date-control label { color: #546d88; font-size: 10px; font-weight: 700; }
.date-control input { border: 0; min-height: 34px; }
.rush-session { margin-bottom: 18px; }
.rush-totals { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 22px; padding: 0; background: transparent; border: 0; }
.rush-totals .attendance-stat { display: flex; flex-direction: column; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--line); border-radius: 13px; background: white; gap: 6px; min-width: 0; }
.attendance-stat span { color: #5b6e87; font-size: 12px; font-weight: 600; }
.rush-totals .attendance-stat strong { font-size: 28px; line-height: 1.15; color: var(--navy); letter-spacing: -.6px; }
.rush-totals .positive { background: #edf8f2; border-color: #cce7d9; }
.rush-totals .positive strong { color: #0b7250; }
.rush-totals .negative strong { color: #b3444d; }
.rush-totals .pending strong { color: #9a6715; }
.attendance-stat small { font-size: 10px; color: #617088; }
.rush-find { background: #fff; padding: 22px; }
.rush-step > span, .step-number { display: inline-grid; place-items: center; width: 30px; height: 30px; flex-shrink: 0; border-radius: 10px; background: #edf2fc; color: #285bd1; font-size: 13px; font-weight: 750; }
.rush-search input { min-height: 52px; border-width: 2px; font-size: 16px; background: #fafcff; }
.rush-instruction { background: #f5f8fc; border-block: 1px solid #e3ebf6; padding: 14px 22px; }
.rush-instruction p, .rush-step p { color: #62748c; font-size: 12px; }
.rush-member { padding: 15px 22px; border-bottom: 1px solid #e8eef5; }
.rush-member:hover { background: #f8faff; }
.rush-member.is-present { background: #f0f9f4; }
.rush-member-name strong { font-size: 15px; font-weight: 650; }
.rush-member-name span { color: #5e718a; font-size: 12px; }
.rush-present { min-width: 122px; min-height: 52px; background: #117653; border-radius: 11px; font-size: 15px; box-shadow: 0 2px 5px #11765318; }
.rush-present:not(:disabled):hover { background: #095d3f; }
.rush-present:disabled { opacity: 1; }
.is-present .rush-present:disabled { color: #116343; border-color: #c8e9d5; background: #dcf0e4; box-shadow: none; }
.rush-correct { color: #546d8a; padding: 5px 8px; }
.chip { border-radius: 8px; min-height: 36px; color: #526987; font-size: 12px; }
.chip.active { color: #204ea7; background: #e9f0ff; border-color: #b9cef7; font-weight: 650; }
.compact-member:hover { background: #f7faff; }
.compact-member strong { font-size: 14px; }
.compact-member small { color: #5c718a; line-height: 1.5; }
.member-tools { font-size: 13px; color: #5c718a; }
.avatar { background: #eaf0fb; color: #42659a; border-radius: 12px; }
.avatar img { border-radius: inherit; }
th { color: #536a85; background: #f4f7fc; padding-block: 14px; }
td { color: #3e546e; }
tbody tr:hover { background: #f9fbfe; }
.lesson-card { border-top: 3px solid #bccff0; padding: 24px; }
.lesson-title { align-items: center; }
.lesson-title small { color: #637995; }
.lesson-num { background: #fff1d9; color: #976319; }
.speaker-row { border-radius: 11px; background: #f6f9fd; }
.planner-save { background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 -4px 20px #172e4606; }
.group-report-value { display: flex; align-items: center; gap: 10px; }
.group-report-value meter { width: 100px; height: 9px; accent-color: #16805c; }
.group-report-value meter::-webkit-meter-bar { background: #e9f1ee; border: 0; }
.group-report-value meter::-webkit-meter-optimum-value { background: #16805c; }
dialog { border-radius: 18px; max-height: calc(100dvh - 48px); }
dialog.wide-dialog { width: min(850px, calc(100vw - 40px)); }
.dialog-head { position: sticky; top: 0; z-index: 2; background: #fff; padding: 20px 26px; }
.dialog-head h2 { font-size: 18px; }
.dialog-body { padding: 24px 26px; }
.dialog-body h3 { color: var(--navy); }
.dialog-body form > label { display: block; margin: 15px 0; }
.dialog-body form > label > :is(input:not([type=checkbox]),select,textarea) { display: block; width: 100%; margin-top: 7px; }
.clean-auth { background: radial-gradient(ellipse at 50% 0%,#e8f0fd 0%,#f3f6fb 65%); }
.clean-auth .auth-box { border-radius: 20px; padding: 36px; border-color: #dce5f2; box-shadow: 0 16px 50px #172e4608; }
.clean-auth .brand { font-size: 19px; margin-bottom: 32px; }
.clean-auth .auth-box h1 { font-size: 28px; }
.auth-box > p { color: #60738d; }
.department-tile { border-radius: 16px; transition: border-color .18s, box-shadow .18s; }
.department-tile:hover { box-shadow: 0 8px 22px #1f477815; }
.register-tile .tile-hint { color: #f5c580; }

/* Events: cards, builder, review and the public registration page share one vocabulary. */
.event-workflow { display: flex; gap: 28px; flex-wrap: wrap; margin: 0 0 26px; color: #5a708d; font-size: 12px; }
.event-workflow span { display: flex; gap: 9px; align-items: center; }
.event-workflow b { display: grid; place-items: center; width: 24px; height: 24px; background: #e5ecf8; color: #416295; border-radius: 8px; font-size: 11px; }
.event-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%,310px), 1fr)); gap: 22px; }
.event-card { display: flex; flex-direction: column; }
.event-card-top { display: flex; justify-content: space-between; align-items: center; padding: 24px 24px 20px; }
.event-symbol { display: inline-grid; place-items: center; width: 46px; height: 46px; background: #fff2dd; color: #976019; border-radius: 13px; font-size: 17px; font-weight: 700; }
.event-card-content { padding: 0 24px; flex: 1; }
.event-card h2 { font-size: 20px; margin-top: 8px; overflow-wrap: anywhere; }
.event-description { white-space: pre-wrap; overflow-wrap: anywhere; color: #5a708c; font-size: 14px; }
.event-card .event-description { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.event-counts { display: flex; gap: 32px; padding: 18px 0; border-top: 1px solid #e8edf5; margin-top: 20px; }
.event-counts div { display: flex; flex-direction: column; gap: 3px; }
.event-counts strong { font-size: 23px; color: var(--navy); font-weight: 700; }
.event-counts span { font-size: 11px; color: #5f7087; }
.event-card-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 24px 20px; }
.event-card-actions .btn { font-size: 12px; padding-inline: 12px; }
.event-card-footer { display: flex; gap: 22px; padding: 13px 24px; background: #f8faff; border-top: 1px solid #e7edf7; }
.event-card-footer .link-btn { font-size: 12px; min-height: 24px; }
.event-empty { grid-column: 1/-1; }
.event-empty h2 { margin-top: 18px; }
.builder-intro p { margin-top: 0; font-size: 17px; color: var(--navy); }
.builder-nav { display: flex; gap: 6px; padding: 6px; background: #f0f4fa; border-radius: 10px; margin-bottom: 28px; }
.builder-nav a { flex: 1; padding: 9px 8px; border-radius: 7px; text-align: center; font-size: 12px; font-weight: 600; text-decoration: none; }
.builder-nav a:hover { background: white; }
.builder-section { padding: 0 0 28px; margin-bottom: 26px; border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.section-heading { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 20px; }
.section-heading h3 { margin: 2px 0 5px; font-size: 16px; }
.section-heading p { margin: 0; color: #5f7087; font-size: 12px; }
.form-grid > label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; min-width: 0; }
.form-grid > .full { grid-column: 1/-1; }
#event-editor :is(input:not([type=checkbox]),select,textarea) { width: 100%; }
#event-editor input[type=checkbox] { width: 18px; }
.included-fields { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; }
.included-fields span { color: #32694f; background: #edf7f1; border: 1px solid #d8eade; border-radius: 7px; font-size: 11px; padding: 6px 9px; }
.form-question { border: 1px solid #dce5f1; background: #f9fbfe; border-radius: 13px; padding: 20px; margin: 16px 0; }
.question-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.question-heading .eyebrow { margin: 0; }
.question-heading .icon-btn { min-width: 32px; min-height: 32px; padding: 4px; }
.question-heading .link-btn { font-size: 11px; padding: 8px; }
.question-inputs { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 14px; }
.form-question :is(input:not([type=checkbox]),select,textarea) { display: block; margin-top: 7px; }
.question-options { display: block; margin-top: 14px; }
.question-options[hidden] { display: none; }
.check-choice { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0 0; font-size: 13px; line-height: 1.65; }
.check-choice input { margin-top: 2px; }
.audience-card { background: #f5f8fd; padding: 18px; border: 1px solid #e0e8f4; border-radius: 12px; font-size: 13px; }
.audience-card p { color: #5d738e; margin: 8px 0 0; }
#builder-publish > label { display: block; max-width: 340px; }
#builder-publish > label select { margin-top: 7px; }
.builder-footer { align-items: center; justify-content: space-between; }
.builder-footer > span { color: #5f7087; font-size: 12px; }
#form-preview:not(:empty) { background: #fff; border: 1px solid #d6e2f4; border-radius: 12px; padding: 24px; margin-top: 20px; }
.preview-label { text-transform: uppercase; letter-spacing: 1px; font-size: 10px; color: #5f7087; margin-bottom: 18px; }
#form-preview > fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
#form-preview > p { white-space: pre-wrap; }
.event-answer { margin: 22px 0; }
.event-answer label small, .event-answer legend small { font-size: 11px; color: #657990; font-weight: 400; margin-left: 5px; }
.event-answer textarea, .event-answer select, .event-answer input:not([type=checkbox]) { width: 100%; }
fieldset.event-answer { border: 1px solid #d9e3f0; padding: 12px 18px 18px; border-radius: 11px; min-width: 0; }
fieldset.event-answer legend { font-size: 13px; font-weight: 600; color: #415a77; padding: 0 5px; }
.required-label { font-size: 9px; letter-spacing: .2px; color: #5f7087; font-weight: 500; margin-left: 4px; }
.response-header h2 { font-size: 23px; }
.response-header p { color: #5f7087; font-size: 13px; }
.response-toolbar { display: flex; gap: 12px; margin: 20px 0 16px; }
.response-toolbar .search-label { flex: 1; }
.search-label input { width: 100%; }
.response-filters { padding: 0 0 16px; flex-wrap: wrap; overflow: visible; }
.event-response-row { border: 1px solid #dce5f1; border-radius: 12px; padding: 18px; margin-bottom: 12px; }
.response-person { display: flex; align-items: center; gap: 12px; }
.response-person > div { flex: 1; min-width: 0; }
.response-person strong { display: block; font-size: 14px; overflow-wrap: anywhere; }
.response-person small { display: block; margin-top: 3px; color: #637993; font-size: 11px; }
.event-response-row .actions { margin: 16px 0; justify-content: space-between; }
.checkin-label { display: flex; gap: 10px; align-items: center; color: #617691; font-size: 11px; }
.checkin-label select { min-height: 38px; padding: 7px 10px; font-size: 12px; }
.event-response-row summary { font-size: 12px; color: var(--blue); }
.answer-details { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 16px; background: #f4f7fc; border-radius: 10px; font-size: 13px; }
.answer-details dt { font-size: 11px; color: #5d738f; margin-bottom: 5px; }
.answer-details dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: #213c5d; }
.participant-heading { display: flex; align-items: center; gap: 14px; margin: 24px 0; }
.participant-heading .avatar { width: 50px; height: 50px; }
.participant-heading p { color: #637793; margin: 5px 0; font-size: 13px; }
.participant-answers { margin-bottom: 22px; }
.review-choice { border: 1px solid #dce5f1; border-radius: 12px; padding: 20px; margin: 20px 0; }
.review-choice h3 { margin: 0; }
.review-choice > p { color: #617793; font-size: 13px; }
.review-choice summary { color: var(--navy); font-weight: 650; }
.review-choice form > label { display: block; margin-bottom: 14px; }
.review-choice form > .check-choice { display: flex; }
.form-honeypot { position: absolute; left: -9999px; }
.public-event-screen.clean-auth { display: flex; align-items: flex-start; justify-content: center; padding: 48px 20px; }
.public-event-screen.clean-auth .auth-box { max-width: 740px; padding: 36px 42px; border-top: 5px solid var(--blue); }
.public-event-screen .brand { margin-bottom: 36px; }
.public-event-heading { border-bottom: 1px solid #e0e7f2; padding-bottom: 20px; }
.public-event-heading h1 { font-size: clamp(26px,4vw,34px) !important; margin-bottom: 16px; overflow-wrap: anywhere; }
.public-event-heading .eyebrow { color: #95621f; }
.event-date { display: inline-block; color: #3f6291; background: #edf3fd; border-radius: 7px; padding: 7px 10px; font-size: 12px; }
.public-event-screen .auth-box form { margin: 0; }
.public-form-section { padding: 26px 0; border-bottom: 1px solid #e4ebf4; }
.public-form-section h2 { font-size: 17px; }
.public-form-section > p { font-size: 12px; color: #5f7087; margin-top: 5px; }
.public-form-section .field { margin: 14px 0 0; }
.public-form-section .event-answer { margin: 20px 0 0; }
.public-form-section input:not([type=checkbox]), .public-form-section select { min-height: 48px; }
.public-form-section .field small { color: #5f7087; font-size: 11px; }
.consent-section { border: 0; padding-bottom: 16px; }
.consent-section .check-choice { margin: 0; }
.public-submit { min-height: 50px; }
.public-form-footnote { text-align: center; font-size: 11px; color: #5f7087; margin-bottom: 0; }
.registration-success { text-align: center; }
.registration-success p { color: #5d748e; }
.success-symbol { display: grid; place-items: center; border-radius: 50%; background: #e6f6ec; color: #117653; width: 62px; height: 62px; font-size: 30px; margin: 0 auto 24px; }

@media (max-width: 1100px) {
  .main { padding-inline: 24px; }
  .topbar { padding-inline: 24px; }
  .current-department { max-width: 300px; }
  .rush-totals .attendance-stat { padding: 14px; }
}
@media (max-width: 760px) {
  .main { padding: 24px 16px calc(96px + env(safe-area-inset-bottom)); }
  .topbar { padding: 14px 16px; min-height: 72px; }
  .current-department { font-size: 14px; max-width: 190px; }
  .top-actions { gap: 6px; }
  .top-actions .icon-btn { min-width: 36px; min-height: 36px; padding: 7px; }
  .sidebar { padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); height: auto; background: #142d49; }
  .nav { gap: 5px; }
  .nav button { min-height: 49px; padding: 7px 5px; font-size: 10px; gap: 5px; }
  .nav button.active { box-shadow: inset 0 2px var(--orange); }
  .page-head, .page-heading { margin-bottom: 20px; flex-wrap: wrap; }
  .page-heading { align-items: flex-start; }
  .page-head > .btn { font-size: 12px; }
  .page-head h1 { font-size: 25px; }
  .session-bar { padding: 16px; gap: 12px; }
  .session-bar > .actions { width: 100%; gap: 7px; }
  .session-bar .segmented { flex: 1; }
  .segmented button { flex: 1; padding: 8px; font-size: 12px; }
  .rush-totals { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
  .rush-totals .attendance-stat { padding: 12px; gap: 5px; border-radius: 11px; }
  .rush-totals .attendance-stat strong { font-size: 25px; }
  .attendance-stat span { font-size: 11px; }
  .rush-totals .neutral, .rush-totals .rate { flex-direction: row; align-items: center; justify-content: space-between; }
  .rush-totals .rate { grid-column: span 2; }
  .rush-totals .neutral strong, .rush-totals .rate strong { font-size: 19px; }
  .rush-find, .rush-member { padding: 16px; }
  .rush-present { min-width: 100px; min-height: 50px; padding: 10px; }
  .rush-search { flex-wrap: wrap; }
  .rush-search input { flex: 1; min-width: 140px; }
  .rush-search .btn { font-size: 12px; padding-inline: 10px; }
  .rush-member-name strong { font-size: 14px; }
  .event-workflow { gap: 10px 18px; font-size: 11px; }
  .event-grid { grid-template-columns: 1fr; gap: 16px; }
  .event-card-top { padding: 20px; }
  .event-card-content, .event-card-actions { padding-inline: 20px; }
  .event-card-actions .btn { flex: 1; }
  dialog, dialog.wide-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 24px); border-radius: 15px; }
  .dialog-head { padding: 16px 18px; }
  .dialog-body { padding: 20px 18px; }
  .dialog-head h2 { font-size: 17px; }
  .builder-nav { gap: 2px; }
  .builder-nav a { padding: 8px 4px; font-size: 11px; }
  .question-inputs { grid-template-columns: 1fr; }
  .form-question { padding: 15px; }
  .builder-footer { align-items: stretch; flex-direction: column; }
  .builder-footer .btn { width: 100%; }
  .answer-details { grid-template-columns: 1fr; }
  .response-person { flex-wrap: wrap; gap: 10px; }
  .response-person .badge { font-size: 10px; }
  .response-person .avatar { width: 32px; height: 32px; }
  .checkin-label { flex-wrap: wrap; }
  .event-response-row .actions { align-items: flex-end; }
  .review-choice { padding: 16px; }
  .clean-auth .auth-box { padding: 28px 24px; }
  .public-event-screen.clean-auth { padding: 18px 12px; }
  .public-event-screen.clean-auth .auth-box { padding: 26px 22px; border-radius: 16px; }
  .public-event-screen .brand { margin-bottom: 28px; }
  .public-event-screen input, .public-event-screen select, .public-event-screen textarea { font-size: 16px; }
  .public-form-section { padding: 22px 0; }
  .public-form-section .form-grid { gap: 4px; }
}
@media (max-width: 390px) {
  .current-department { max-width: 130px; }
  .top-actions #sync-label { max-width: 75px; min-width: 0; white-space: normal; font-size: 9px; }
  .response-toolbar { flex-wrap: wrap; }
  .response-toolbar .search-label { flex-basis: 100%; }
  .rush-totals .neutral { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .main { padding: 0; }
  .panel { box-shadow: none; }
  .lesson-card { border-top: 1px solid #ddd; }
}

.attendance-stat > span { display: flex; align-items: center; gap: 6px; }
.attendance-stat > span svg { width: 14px; height: 14px; }
.member-group-badge { display: inline-block; margin-right: 5px; padding: 3px 7px; color: #355d97; background: #edf2fc; border-radius: 6px; font-size: 11px; }
@media (max-width:760px) { .attendance-stat > span svg { display: none; } }

/* Readable secondary text and keyboard focus on both light and dark surfaces. */
.table-foot, .tag, .member-details small, .panel-head small, .footer-note { color: #526987; }
button:focus-visible, a:focus-visible { outline-color: #285bd1; }
.sidebar button:focus-visible { outline-color: #f4b45f; }
.btn:active:not(:disabled), .icon-btn:active:not(:disabled) { box-shadow: inset 0 1px 3px #122d491c; }

/* Event lifecycle controls share the existing buttons and form layout. */
.event-view-tabs { padding: 0 0 20px; flex-wrap: wrap; }
.event-card-footer { flex-wrap: wrap; align-items: center; }
.event-card-footer .danger { color: #a12d3d; margin-left: auto; }
.builder-footer .actions { justify-content: flex-end; }
.question-options small { display: block; margin-top: 7px; color: var(--muted); }
@media (max-width:760px) { .builder-footer .actions { flex-direction: column-reverse; align-items: stretch; } }

.member-contact-line { display: block; margin-top: 3px; }

/* Phone layout: a single alignment and spacing system, after shared styles. */
@media screen and (max-width: 760px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { line-height: 1.5; }
  body:has(dialog[open]) { overflow: hidden; }
  .workspace, .main, .panel, .page-head > *, .page-heading > *, .form-grid > *, .lesson-grid > * { min-width: 0; }
  .main { padding: 24px 16px calc(94px + env(safe-area-inset-bottom)); }
  h1, h2, h3, p, label, summary, .link-btn { overflow-wrap: anywhere; }
  h1, .page-head h1 { font-size: 25px; line-height: 1.25; letter-spacing: -.6px; }
  h2 { line-height: 1.35; }
  .subhead, .page-head .subhead, .page-heading p { font-size: 14px; line-height: 1.6; max-width: none; }
  .page-head, .page-heading { flex-direction: column; align-items: stretch; text-align: left; gap: 16px; margin-bottom: 22px; }
  .page-head > .btn, .page-heading > .btn { align-self: stretch; font-size: 14px; }
  .page-head .actions { display: flex; width: 100%; gap: 8px; }
  .page-head .actions > .btn { flex: 1 1 140px; }
  .btn { min-height: 44px; font-size: 14px; line-height: 1.4; white-space: normal; text-align: center; }
  .btn.small { min-height: 42px; font-size: 13px; }
  .icon-btn { min-width: 44px; min-height: 44px; }
  input, select, textarea { font-size: 16px; min-width: 0; line-height: 1.4; }
  input:not([type=checkbox]):not([type=radio]), select { min-height: 46px; }
  input[type=checkbox], input[type=radio] { flex: 0 0 auto; }
  label, .field, .form-grid > label { font-size: 14px; line-height: 1.5; }
  .field input:not([type=checkbox]):not([type=radio]), .field select, .field textarea, .form-grid > label > :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { width: 100%; }
  .form-grid, .check-list { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .check-list label, .check-choice { align-items: flex-start; }
  .check-list input { margin-top: 3px; }
  .topbar { display: grid; grid-template-columns: minmax(0,1fr) 44px 44px; gap: 4px 8px; height: auto; min-height: 84px; padding: 12px 16px; }
  .space-choice { grid-column: 1; grid-row: 1; width: auto; }
  .space-choice > div { width: 100%; }
  .space-choice small { font-size: 10px; letter-spacing: 1px; }
  .current-department { max-width: none; white-space: normal; overflow-wrap: anywhere; font-size: 15px; line-height: 1.4; }
  .top-actions { display: contents; }
  .top-actions #sync-label { grid-column: 1; grid-row: 2; justify-self: start; margin: 0; max-width: 100%; min-width: 0; padding: 3px 7px; font-size: 11px; line-height: 1.4; white-space: normal; }
  .top-actions .icon-btn { width: 44px; height: 44px; }
  .top-actions #sync { grid-column: 2; grid-row: 1 / 3; }
  .top-actions #account { grid-column: 3; grid-row: 1 / 3; }
  .sidebar { padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
  .nav { gap: 4px; align-items: stretch; }
  .nav button { flex: 1 1 0; min-width: 0; min-height: 56px; padding: 6px 2px; font-size: 11px; line-height: 1.2; gap: 5px; justify-content: flex-start; text-align: center; }
  .nav button svg { width: 20px; height: 20px; }
  .padded, .lesson-card, .panel-head { padding: 18px 16px; }
  .panel-head, .panel-intro { flex-wrap: wrap; align-items: flex-start; }
  .panel-intro > *, .panel-head > * { min-width: 0; }
  .panel-intro > .btn { width: 100%; }
  .session-bar { padding: 16px; gap: 14px; align-items: stretch; }
  .session-bar .date-control { width: 100%; min-width: 0; }
  .date-control > div { flex: 1; min-width: 0; }
  .date-control input { width: 100%; max-width: 100%; font-size: 16px; }
  .session-bar > .actions { width: 100%; display: flex; gap: 8px; }
  .session-bar .segmented { flex: 1 1 180px; flex-wrap: wrap; min-width: 0; }
  .segmented button { flex: 1 1 auto; min-height: 40px; padding: 8px 10px; font-size: 13px; }
  .rush-totals { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
  .rush-totals .attendance-stat { grid-column: span 2; padding: 12px 10px; gap: 6px; }
  .rush-totals .neutral, .rush-totals .rate { grid-column: span 3; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; }
  .attendance-stat > span { font-size: 12px; line-height: 1.4; }
  .rush-totals .attendance-stat strong { font-size: 25px; line-height: 1.2; }
  .rush-totals .neutral strong, .rush-totals .rate strong { font-size: 21px; }
  .rush-find, .rush-instruction { padding: 16px; }
  .rush-step { gap: 10px; }
  .rush-step > div { min-width: 0; }
  .rush-step strong { font-size: 16px; line-height: 1.4; }
  .rush-step p { font-size: 13px; line-height: 1.5; }
  .rush-search { flex-wrap: nowrap; }
  .rush-search input { min-width: 0; flex: 1; width: 100%; }
  .rush-search .btn { flex: 0 0 auto; padding: 8px 12px; }
  .chips, .rush-find .chips { flex-wrap: wrap; overflow: visible; gap: 8px; }
  .chip, .rush-find .chip { min-height: 40px; padding: 8px 12px; font-size: 13px; white-space: normal; text-align: left; overflow-wrap: anywhere; }
  .rush-filter { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; }
  .rush-filter select { width: 100%; }
  .rush-filter > span { grid-column: 1/-1; }
  .rush-member { display: grid; grid-template-columns: minmax(0,1fr) 104px; gap: 12px; align-items: start; padding: 16px; }
  .rush-member-name strong { font-size: 16px; line-height: 1.5; }
  .rush-member-name > span, .rush-status { font-size: 13px; line-height: 1.5; }
  .rush-member-actions { width: 104px; align-items: stretch; gap: 8px; }
  .rush-present { min-width: 0; width: 100%; min-height: 52px; padding: 10px 6px; font-size: 15px; }
  .rush-correct { min-height: 44px; width: 100%; font-size: 13px; }
  .search-row { padding: 16px; gap: 8px; }
  .search-row > .btn { flex: 1 1 130px; font-size: 13px; }
  .member-tools { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; }
  .member-tools label { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
  .member-tools select { width: 100%; }
  .member-tools > .btn { grid-column: 1/-1; width: 100%; }
  .compact-member { align-items: flex-start; padding: 16px; gap: 12px; }
  .compact-member strong { font-size: 15px; line-height: 1.5; }
  .compact-member small { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
  .compact-member > .btn { flex-shrink: 0; }
  .member-contact-line { display: block; margin-top: 3px; }
  .lesson-title { align-items: flex-start; gap: 10px; }
  .lesson-title > div { min-width: 0; }
  .lesson-title h2 { font-size: 17px; line-height: 1.4; }
  .lesson-num { flex-shrink: 0; }
  .speaker-row { padding: 14px 12px; }
  .speaker-row .link-btn { font-size: 13px; line-height: 1.5; min-height: 40px; }
  .planner-help { font-size: 14px; line-height: 1.6; }
  .group-row { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 8px; }
  .group-team { margin-left: 0; padding: 14px 12px; }
  .group-team > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 10px; }
  .group-team strong { min-width: 0; font-size: 13px; }
  .group-team span { grid-column: 1; font-size: 13px; }
  .group-team .link-btn { grid-column: 2; grid-row: 1/3; min-height: 44px; }
  .table-wrap { max-width: 100%; }
  .table-wrap th, .table-wrap td { padding: 12px; }
  .event-workflow { display: grid; gap: 10px; font-size: 13px; }
  .event-workflow b { flex-shrink: 0; }
  .event-card-top, .event-card-footer { padding: 16px; }
  .event-card-content, .event-card-actions { padding-inline: 16px; }
  .event-card h2 { font-size: 20px; line-height: 1.4; }
  .event-card-actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .event-card-actions .btn { width: 100%; font-size: 14px; }
  .event-card-footer { gap: 8px 16px; }
  .event-card-footer .link-btn { font-size: 13px; min-height: 40px; text-align: left; }
  dialog, dialog.wide-dialog { position: fixed; inset: 0; margin: 0; width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom); overflow-x: hidden; }
  .dialog-head { padding: 14px 16px; gap: 12px; align-items: center; }
  .dialog-head h2 { font-size: 19px; line-height: 1.4; }
  .dialog-head .icon-btn { flex-shrink: 0; }
  .dialog-body { padding: 20px 16px 28px; }
  .form-footer { flex-wrap: wrap; gap: 12px; }
  .form-footer > .btn { flex: 1 1 140px; }
  .builder-section { scroll-margin-top: 88px; }
  .builder-nav a { min-width: 0; font-size: 12px; padding: 10px 4px; }
  .builder-intro p { font-size: 16px; }
  .section-heading { gap: 10px; }
  .section-heading > div { min-width: 0; }
  .section-heading p { font-size: 13px; line-height: 1.6; }
  .question-inputs { grid-template-columns: minmax(0,1fr); }
  .question-top { flex-wrap: wrap; gap: 8px; }
  .form-question { padding: 14px; }
  .form-question .link-btn { min-height: 40px; }
  .builder-footer .actions { width: 100%; }
  #form-preview:not(:empty) { padding: 16px; }
  .response-toolbar { flex-wrap: wrap; }
  .response-toolbar .search-label { flex-basis: 100%; min-width: 0; }
  .response-toolbar > .btn { width: 100%; }
  .response-person .badge { white-space: normal; }
  .event-response-row { padding: 16px; }
  .checkin-label { width: 100%; justify-content: space-between; font-size: 13px; }
  .checkin-label select { flex: 1; font-size: 16px; }
  .participant-heading { align-items: flex-start; }
  .participant-heading > div { min-width: 0; overflow-wrap: anywhere; }
  .answer-details { grid-template-columns: minmax(0,1fr); padding: 14px; }
  .department-home { padding: 28px 16px; }
  .department-tiles { grid-template-columns: minmax(0,1fr); gap: 12px; margin: 24px 0; }
  .department-tile { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 4px 14px; padding: 18px; min-height: 0; align-items: start; }
  .department-icon { grid-column: 1; grid-row: 1/4; width: 52px; height: 52px; }
  .department-tile strong, .department-tile small, .department-tile .tile-hint { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }
  .department-tile strong { font-size: 18px; line-height: 1.4; }
  .tile-hint { margin-top: 8px; }
  .clean-auth { padding: 24px 16px; }
  .clean-auth .auth-box { padding: 24px 20px; }
  .clean-auth .brand { white-space: normal; }
  .public-event-screen.clean-auth { padding: 16px 10px; }
  .public-event-screen.clean-auth .auth-box { padding: 24px 18px; }
  .public-event-screen .brand { font-size: 18px; gap: 10px; }
  .public-event-heading h1 { font-size: 26px !important; line-height: 1.3; }
  .public-form-section .form-grid { gap: 8px; }
  .public-form-section > p, .public-form-section .field small, .public-form-footnote { font-size: 13px; }
  #toast { bottom: calc(86px + env(safe-area-inset-bottom)); font-size: 14px; }
  body:has(dialog[open]) #toast { bottom: calc(16px + env(safe-area-inset-bottom)); }
}
@media screen and (max-width: 360px) {
  .main { padding-inline: 12px; }
  .rush-totals .attendance-stat { padding: 10px 8px; }
  .rush-totals .neutral, .rush-totals .rate { flex-direction: column; align-items: flex-start; gap: 4px; }
  .rush-member { padding: 14px 12px; grid-template-columns: minmax(0,1fr) 96px; gap: 10px; }
  .rush-member-actions { width: 96px; }
  .nav button { font-size: 10px; }
}
