:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#12233b;background:#f3f6fa;--nav:#163a63;--nav2:#214d7c;--blue:#1769d2;--line:#dfe6ef;--muted:#738196;--card:#fff;--green:#087a55;--red:#b42318;--amber:#b76e00;--cyan:#177bb5;--shadow:0 12px 32px rgba(20,50,84,.07)}*{box-sizing:border-box}body{margin:0;background:#f3f6fa}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--red);font-size:13px;min-height:18px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0,#e7f0ff,#f4f7fb 50%)}.login-card{width:min(470px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:var(--shadow)}.logo-big,.brand-l{display:grid;place-items:center;border-radius:50%;background:var(--nav);color:#fff;font-weight:900}.logo-big{width:64px;height:64px;font-size:32px;margin-bottom:18px}.login-tabs{display:flex;gap:8px;margin:20px 0}.seg-btn,.btn,.icon-btn{border:1px solid var(--line);background:#fff;color:#29415e;border-radius:11px;padding:10px 13px;font-weight:700}.seg-btn.active,.btn.primary{background:var(--nav);color:#fff;border-color:var(--nav)}.btn.danger{background:#fff1f0;color:var(--red);border-color:#ffd3cf}.btn.small{padding:7px 9px;font-size:12px}.form{display:grid;gap:13px}.field{display:grid;gap:6px;font-size:13px;font-weight:700}.field input,.field select,.field textarea,.search-input{width:100%;border:1px solid #cfd8e5;border-radius:11px;padding:10px 12px;background:#fff;outline:0}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:#8eb8ee;box-shadow:0 0 0 3px #e8f2ff}.shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}.sidebar{background:var(--nav);color:#fff;padding:22px 15px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px}.brand-l{width:40px;height:40px;font-size:21px;border:2px solid rgba(255,255,255,.25)}.brand strong{font-size:18px;letter-spacing:.04em}.brand small{display:block;color:#b6c8dc;margin-top:2px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#dbe7f3;text-align:left;border-radius:10px;padding:11px 12px;font-weight:650}.nav button:hover,.nav button.active{background:rgba(255,255,255,.13);color:#fff}.side-foot{margin-top:auto;padding:16px 8px 0;border-top:1px solid rgba(255,255,255,.15)}.side-user{font-size:13px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-role{font-size:11px;color:#b6c8dc;margin-top:3px}.logout{display:inline-block;color:#dbe7f3;font-size:12px;margin-top:10px;text-decoration:none}.main{min-width:0;padding:26px 32px 60px}.topbar{height:54px;display:flex;align-items:center;gap:18px;margin-bottom:20px}.global-search{position:relative;width:min(560px,55vw)}.search-input{padding-left:38px}.search-icon{position:absolute;left:13px;top:11px;color:#8190a4}.search-results{position:absolute;top:48px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 55px rgba(18,35,59,.16);z-index:80;overflow:hidden}.search-result{display:block;width:100%;border:0;background:#fff;text-align:left;padding:11px 13px}.search-result:hover{background:#f4f8fd}.search-result strong{display:block}.search-result span{font-size:12px;color:var(--muted)}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#2a78d3;font-weight:850;font-size:10px}.page-head h1{font-size:29px;letter-spacing:-.03em;margin:3px 0 3px}.page-head p{margin:0}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:15px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 2px 4px rgba(20,50,84,.02)}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.card h2,.card h3{margin:0 0 5px;letter-spacing:-.02em}.card h2{font-size:20px}.card h3{font-size:16px}.card p{margin:0}.weekbar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:13px}.day{border:1px solid var(--line);border-radius:12px;padding:9px;min-height:78px}.day.today{border-color:#94bde9;background:#f3f8ff}.day b{display:block;font-size:12px}.day .date{font-size:11px;color:var(--muted)}.day .dot{height:5px;border-radius:8px;background:#bdd6f3;margin-top:7px}.session-row,.list-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f5}.session-row:last-child,.list-row:last-child{border-bottom:0}.session-time{width:64px;font-weight:850}.grow{min-width:0;flex:1}.grow strong{display:block}.grow small{display:block;color:var(--muted);margin-top:2px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#eef3f8;color:#52667e;font-size:11px;font-weight:780}.badge.green{background:#e9f8f1;color:var(--green)}.badge.red{background:#fff0ee;color:var(--red)}.badge.amber{background:#fff6df;color:var(--amber)}.badge.blue{background:#eaf5fc;color:var(--cyan)}.course-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.course-card{border:1px solid var(--line);border-radius:15px;padding:15px;cursor:pointer;background:#fff}.course-card:hover{border-color:#9abde5;box-shadow:0 9px 24px rgba(20,50,84,.06)}.course-card h3{font-size:16px;margin:4px 0}.course-card .code{font-size:10px;color:#2a78d3;font-weight:850;text-transform:uppercase}.tabs{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 17px}.tab-btn{border:0;background:transparent;padding:10px 11px;color:#68788d;font-weight:720;border-bottom:2px solid transparent}.tab-btn.active{color:#163a63;border-bottom-color:#1769d2}.toolbar{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin:12px 0}.toolbar .field{min-width:150px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;font-size:12px;background:#fff}th{position:sticky;top:0;background:#f8fafc;color:#64748b;font-weight:800;text-align:left;padding:9px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:9px;border-bottom:1px solid #eef2f6;vertical-align:middle}tr:last-child td{border-bottom:0}.student-link{border:0;background:transparent;padding:0;color:#163a63;font-weight:750;text-align:left}.att-present{background:#ecfbf3}.att-absent{background:#fff2f0}.att-excused{background:#fff8e8}.att-notified{background:#edf8ff}.status-select{min-width:135px;border:1px solid #ccd6e2;border-radius:8px;padding:6px}.drawer-backdrop{position:fixed;inset:0;background:rgba(9,20,34,.24);z-index:100}.drawer{position:fixed;right:0;top:0;height:100vh;width:min(610px,95vw);background:#fff;z-index:101;box-shadow:-20px 0 55px rgba(15,35,60,.18);overflow:auto;padding:24px}.drawer-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.icon-btn{width:38px;height:38px;padding:0;display:grid;place-items:center}.drawer-tabs{display:flex;gap:5px;margin:18px 0;border-bottom:1px solid var(--line)}.empty{padding:28px;text-align:center;color:#8996a8}.attention{border-left:4px solid #e4a11b;padding-left:12px}.qr-wrap{display:grid;place-items:center;padding:15px}.qr-box{width:330px;height:330px;max-width:78vw;display:grid;place-items:center}.qr-box img,.qr-box canvas{max-width:100%;height:auto!important}.modal-backdrop{position:fixed;inset:0;background:rgba(9,20,34,.35);z-index:110;display:grid;place-items:center;padding:18px}.modal{width:min(720px,98vw);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:22px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kpi{border:1px solid var(--line);border-radius:13px;padding:12px}.kpi b{font-size:23px;display:block}.kpi span{font-size:11px;color:var(--muted)}.supervisor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.supervisor-card{border:1px solid var(--line);border-radius:15px;padding:15px}.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.tag{font-size:10px;background:#eef4fb;color:#355d87;border-radius:999px;padding:4px 7px}.free{color:var(--green);font-weight:850}.full{color:var(--red);font-weight:850}.import-preview{max-height:360px;overflow:auto}.toast{position:fixed;right:22px;top:20px;z-index:500;background:#173a63;color:#fff;border-radius:12px;padding:11px 14px;box-shadow:var(--shadow);font-size:13px}.mobile-nav{display:none}.service-note{border:1px dashed #c9d5e3;background:#f8fafc;border-radius:13px;padding:12px}.split{display:flex;gap:10px;align-items:center;justify-content:space-between}.nowrap{white-space:nowrap}
@media(max-width:1050px){.shell{grid-template-columns:190px 1fr}.main{padding:22px 20px}.span-8,.span-7,.span-5,.span-4{grid-column:span 12}.course-cards,.supervisor-grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.shell{display:block}.sidebar{display:none}.main{padding:14px 12px 76px}.topbar{height:auto;position:sticky;top:0;background:#f3f6fa;z-index:50;padding:7px 0}.global-search{width:100%}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:25px}.grid{display:block}.card{margin-bottom:12px}.weekbar{overflow-x:auto;grid-template-columns:repeat(7,110px)}.mobile-nav{display:grid;position:fixed;bottom:0;left:0;right:0;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);z-index:90}.mobile-nav button{border:0;background:#fff;padding:10px 4px;font-size:11px;color:#697b91}.mobile-nav button.active{color:#1769d2;font-weight:800}.qr-box{width:280px;height:280px}.kpis{grid-template-columns:repeat(2,1fr)}}
.student-shell{min-height:100vh}.student-top{background:var(--nav);color:#fff;padding:14px max(18px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px}.student-brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none}.student-brand .brand-l{width:38px;height:38px}.student-brand small{display:block;color:#bfd0e2;font-size:11px}.student-logout{margin-left:14px}.student-nav{max-width:1120px;margin:18px auto 0;padding:0 18px;display:flex;gap:6px;overflow:auto}.student-nav button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 14px;color:#5d7088;font-weight:750;white-space:nowrap}.student-nav button.active{background:var(--nav);border-color:var(--nav);color:#fff}.student-main{max-width:1120px;margin:14px auto;padding:0 18px 60px}.student-hero{background:linear-gradient(135deg,#173a63,#24588f);color:#fff}.student-hero .muted{color:#cfdeed}.student-course{cursor:default}.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.metric{border:1px solid var(--line);border-radius:12px;padding:10px}.metric b{display:block;font-size:20px}.metric span{font-size:10px;color:var(--muted)}.requirement{padding:9px 0;border-bottom:1px solid #edf1f5}.requirement:last-child{border-bottom:0}@media(max-width:720px){.student-top{padding:12px 14px}.student-top>div:last-child{font-size:12px}.student-main{padding:0 12px 70px}.student-nav{padding:0 12px}.metric-row{grid-template-columns:repeat(2,1fr)}}
.public-main{max-width:980px;margin:0 auto;padding:24px 18px 60px}.public-brand{display:flex;align-items:center;gap:10px;margin-bottom:20px}.public-brand .brand-l{width:42px;height:42px}.public-brand strong{display:block;font-size:20px}.public-brand small{display:block;color:var(--muted)}.public-hero{margin-bottom:14px}.supervisor-card.selectable{cursor:pointer;transition:.15s}.supervisor-card.selectable:hover{border-color:#8cb8e9;box-shadow:0 8px 22px rgba(20,50,84,.07)}.supervisor-card.selected{border-color:var(--blue);box-shadow:0 0 0 3px #e4f0ff}.supervisor-card.disabled{opacity:.56}.public-step{margin-top:14px}.person-results{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:8px}.person-results:empty{display:none}.choice-summary{background:#f4f8fd;border:1px solid #cfe0f4;border-radius:14px;padding:14px}.success-card{text-align:center;padding:32px}.success-mark{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#e9f8f1;color:var(--green);font-size:36px;font-weight:900}@media(max-width:720px){.public-main{padding:14px 12px 40px}.supervisor-grid{grid-template-columns:1fr}.public-brand{margin-bottom:14px}}

/* beta.3 r3 acceptance refinements */
.side-system{display:block;width:100%;margin-top:12px;border:0;background:transparent;color:#dbe7f3;text-align:left;border-radius:9px;padding:8px 0;font-size:12px;font-weight:700}.side-system:hover,.side-system.active{color:#fff;text-decoration:underline}.compact-empty{padding:8px 0;color:#8996a8;font-size:13px}.week-session{margin-top:6px;border-radius:7px;background:#e8f2ff;color:#244c78;padding:4px 5px;font-size:10px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-more{margin-top:5px;color:#718299;font-size:10px}.session-day{padding:14px 0 5px;border-bottom:1px solid var(--line);font-size:13px;color:#2d425c;font-weight:850}.session-day:first-child{padding-top:4px}.course-session-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5}.course-session-row:last-child{border-bottom:0}.course-session-row .session-main{min-width:0;flex:1}.course-session-row .session-main strong{display:block}.course-session-row .session-main small{display:block;color:var(--muted);margin-top:2px}.session-state{font-size:10px;color:#728197}.qr-presenter{width:100%;border:1px solid var(--line);border-radius:18px;background:#fff;margin:14px 0;padding:18px;display:grid;place-items:center;text-align:center}.qr-presenter h3{font-size:20px;margin:0 0 4px}.qr-presenter .qr-meta{font-size:13px;color:var(--muted);margin-bottom:8px}.qr-presenter .qr-countdown{font-size:18px;font-weight:850;color:#163a63;margin:8px 0}.qr-presenter .preview-warning{max-width:620px;margin:8px auto 10px;padding:10px 12px;border-radius:11px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px}.qr-presenter:fullscreen{background:#fff;padding:3vh 4vw;display:flex;flex-direction:column;justify-content:center}.qr-presenter:fullscreen .qr-box{width:min(62vmin,760px);height:min(62vmin,760px);max-width:none}.qr-presenter:fullscreen h3{font-size:clamp(26px,3vw,46px)}.qr-presenter:fullscreen .qr-meta{font-size:clamp(16px,1.6vw,25px)}.qr-presenter:fullscreen .qr-countdown{font-size:clamp(20px,2vw,30px)}.system-test-tools{border-color:#f1c27d;background:#fffaf2}.danger-note{color:#9a3412}.request-id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;color:#8795a8;margin-top:5px}.system-foot-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}

/* beta.3 r3 projector + attendance editor */
.session-actions{align-items:center;flex-wrap:wrap}.live-duration{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:750;color:#64748b}.live-duration select{width:auto;min-width:100px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.att-edit{display:flex;flex-direction:column;gap:7px;min-width:210px}.att-reason-box{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(180px,1.3fr);gap:6px}.status-detail,.status-comment{width:100%;border:1px solid var(--line);border-radius:9px;padding:7px 8px;background:#fff;font-size:12px}.qr-presenter{position:relative}.qr-presenter-toolbar{width:100%;display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-bottom:8px}.qr-presenter .qr-box{width:min(360px,72vw);height:min(360px,72vw);display:grid;place-items:center;background:#fff}.qr-presenter .qr-box canvas,.qr-presenter .qr-box img{width:100%!important;height:100%!important;image-rendering:pixelated}.qr-live-meta{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:10px}.qr-live-meta>div{display:flex;flex-direction:column;gap:3px}.qr-live-meta strong{font-size:16px}.qr-live-meta span{font-size:12px;color:var(--muted)}.qr-hint{font-size:12px;color:var(--muted);margin:10px 0 3px}.qr-brand{font-size:11px;color:#8b98aa}.qr-ended{height:100%;width:100%;display:grid;place-items:center;align-content:center;gap:6px;color:#7a3340;background:#fff7f7;border:1px dashed #efb7bf;border-radius:14px;padding:18px}.qr-ended span{font-size:12px;color:#8b6470}.qr-presenter.projector-mode{position:fixed;inset:0;z-index:6500;width:100vw;height:100vh;margin:0;border:0;border-radius:0;padding:2vh 3vw;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;box-shadow:none}.qr-presenter.projector-mode .qr-presenter-toolbar{position:fixed;left:18px;right:18px;top:16px;width:auto;z-index:6501}.qr-presenter.projector-mode h3{font-size:clamp(28px,3vw,48px);margin:2px 0 4px}.qr-presenter.projector-mode .qr-meta{font-size:clamp(15px,1.45vw,23px);margin-bottom:.7vh}.qr-presenter.projector-mode .qr-box{width:min(70vmin,800px);height:min(70vmin,800px);max-width:none}.qr-presenter.projector-mode .qr-live-meta{font-size:clamp(15px,1.4vw,23px);margin-top:.8vh}.qr-presenter.projector-mode .qr-live-meta strong{font-size:clamp(17px,1.6vw,26px)}.qr-presenter.projector-mode .qr-live-meta span{font-size:clamp(13px,1.15vw,18px)}.qr-presenter.projector-mode .qr-hint{font-size:clamp(13px,1vw,17px);margin:.5vh 0 2px}.qr-presenter.projector-mode .qr-brand{font-size:clamp(10px,.8vw,14px)}.qr-presenter.projector-mode .preview-warning{max-width:900px}.qr-presenter:fullscreen{width:100vw;height:100vh;border:0;border-radius:0;background:#fff;padding:2vh 3vw}.qr-projector-open{overflow:hidden}
@media(max-width:720px){.att-reason-box{grid-template-columns:1fr}.qr-live-meta{gap:8px;flex-direction:column}.qr-presenter.projector-mode{padding:62px 12px 16px}.qr-presenter.projector-mode .qr-box{width:min(88vw,66vh);height:min(88vw,66vh)}}

/* beta.3 r4 — owner management + restored dark navigation */
:root{--nav:#101828;--nav2:#1D2939}
.sidebar{background:#101828}
.nav button{color:#e4e7ec}
.nav button:hover{background:#182230;color:#fff}
.nav button.active{background:#1D2939;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
.brand small,.side-role{color:#98a2b3}.side-foot{border-top-color:#344054}.logout,.side-system{color:#d0d5dd}.brand-l{background:#101828;border-color:#475467}
.management-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.management-tabs button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px;font-weight:750;color:#5c6b7e}.management-tabs button.active{background:#1D2939;color:#fff;border-color:#1D2939}
.management-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:15px}.management-stack{display:grid;gap:12px}.panel-soft{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:13px}.panel-soft h3{margin:0 0 8px}.quick-actions{display:flex;flex-wrap:wrap;gap:7px}.group-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.group-card.active{border-color:#98bce4;box-shadow:0 0 0 2px #edf5ff}.group-card button.group-open{border:0;background:transparent;text-align:left;width:100%;padding:0;color:inherit}.group-card strong{display:block}.group-card small{color:var(--muted)}
.manage-students-table td:first-child{min-width:230px}.role-pill{display:inline-flex;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;background:#eef2f6;color:#56667a}.role-pill.headman{background:#e8f2ff;color:#245b94}.role-pill.deputy{background:#f2ecff;color:#6e4aa5}
.bulk-file-row{border:1px solid var(--line);border-radius:12px;padding:11px;margin-top:8px;background:#fff}.bulk-file-row .status{font-size:11px;color:var(--muted);margin-top:4px}.batch-list{display:grid;gap:8px;margin-top:10px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.check-grid label{display:flex;gap:7px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff}.check-grid small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
.course-admin-card{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.course-admin-card h3{margin:0}.staff-admin-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(140px,.7fr) minmax(260px,1.4fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}.staff-admin-row:last-child{border-bottom:0}
.calendar-source{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.calendar-source .meta{font-size:11px;color:var(--muted);margin-top:4px}.calendar-source-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.calendar-source-result{margin-top:8px;font-size:12px}
.journal-cell-btn{border:0;background:transparent;width:100%;min-width:54px;padding:6px 5px;border-radius:7px;color:#49596e;font-size:11px;font-weight:750}.journal-cell-btn:hover{outline:1px solid #9abde5;background:#f7fbff}.journal-cell-btn.present{color:var(--green)}.journal-cell-btn.absent{color:var(--red)}.journal-cell-btn.excused{color:var(--amber)}.journal-cell-btn.notified{color:var(--cyan)}
.bulk-work-table input,.bulk-work-table select{width:100%;min-width:100px;border:1px solid #ccd6e2;border-radius:8px;padding:7px}.bulk-work-table .remove-row{border:0;background:transparent;color:var(--red);font-size:18px}.info-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.settings-section{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.settings-section:first-child{border-top:0;padding-top:0;margin-top:0}.config-card{border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:9px}.config-card .config-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.config-explain{font-size:11px;color:var(--muted);margin-top:4px}.session-type-checks{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.session-type-checks label{font-size:12px}.sticky-name{position:sticky;left:0;background:#fff;z-index:3}.table-wrap thead .sticky-name{background:#f8fafc;z-index:5}
.student-directory-toolbar{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.student-directory-toolbar .field{min-width:180px}.student-drawer-section{margin-top:14px}.student-drawer-section h3{margin:0 0 8px}.student-admin-actions{display:flex;gap:7px;flex-wrap:wrap}.student-detail-tabs{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:14px 0}.student-detail-pane{display:none}.student-detail-pane.active{display:block}.student-detail-course{border:1px solid var(--line);border-radius:13px;padding:12px;margin-bottom:9px}
@media(max-width:1100px){.management-grid{grid-template-columns:1fr}.staff-admin-row{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}}

/* beta.3 r4 functional-completion polish */
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.modal.wide{width:min(980px,98vw)}
.session-modal .qr-presenter:not(.projector-mode){max-width:540px;margin:14px auto;padding:14px}.session-modal .qr-presenter:not(.projector-mode) .qr-box{width:min(300px,64vw);height:min(300px,64vw)}.session-modal .qr-presenter:not(.projector-mode) .qr-live-meta{gap:12px}.session-modal .qr-presenter:not(.projector-mode) .qr-hint{max-width:430px}
.group-card.archived{opacity:.58}.course-admin-card .code{font-size:10px;color:#2a78d3;font-weight:850;text-transform:uppercase}.calendar-source-result:not(:empty){padding-top:8px;color:#52667e}.side-system{display:block;border:0;background:transparent;padding:0;margin-top:10px;text-align:left;font-size:12px}.nav button[data-page="management"]{margin-top:8px;border-top:1px solid #344054;border-radius:0;padding-top:16px}.nav button[data-page="management"].active{border-radius:10px;border-top-color:transparent;padding-top:11px}
@media(max-width:720px){.two-col{grid-template-columns:1fr}.management-tabs{overflow:auto;flex-wrap:nowrap}.management-tabs button{white-space:nowrap}}

/* beta.3 r5 — analytics, inline journal, cohorts, rewards */
.week-session{margin-top:6px;padding:5px 6px;border-radius:8px;background:#edf5ff;color:#244b74;line-height:1.15;overflow:hidden}.week-session strong{display:block;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-session span{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.week-more{font-size:9px;color:var(--muted);margin-top:4px}.day{min-height:94px}
.role-pill.headman,.role-pill.deputy{font-weight:850}.role-star{font-size:13px;line-height:1}.role-pill.student-role{opacity:.62}
.group-filter-tools{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px}.group-filter-tools input,.group-filter-tools select{width:100%;border:1px solid #cfd8e5;border-radius:9px;padding:8px;background:#fff}
.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check-line{display:flex;align-items:flex-start;gap:8px;font-size:13px;margin-top:10px}.check-line input{margin-top:2px}
.attendance-popover{position:fixed;z-index:7500;width:310px;background:#fff;border:1px solid #ccd8e6;border-radius:15px;padding:11px;box-shadow:0 18px 55px rgba(10,30,55,.22)}.attendance-popover-title{font-weight:800;font-size:12px;padding:2px 3px 8px}.attendance-popover-title small{display:block;color:var(--muted);font-weight:500;margin-top:2px}.attendance-quick-list{display:grid;gap:4px}.attendance-choice{border:0;background:#f8fafc;border-radius:9px;padding:7px 9px;display:grid;grid-template-columns:26px 1fr;align-items:center;text-align:left;color:#344054}.attendance-choice:hover,.attendance-choice.active{background:#edf5ff}.attendance-choice b{font-size:13px;text-align:center}.attendance-choice:disabled{opacity:.35;cursor:not-allowed}.attendance-popover .field{margin-top:8px}.journal-cell-btn.just-saved{box-shadow:0 0 0 2px #52b788;background:#effcf5}.journal-legend{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0 10px}.legend{font-size:10px;border-radius:999px;padding:4px 7px;background:#f3f5f8;color:#667085}.legend.present{background:#ecfbf3;color:var(--green)}.legend.absent{background:#fff2f0;color:var(--red)}.legend.excused{background:#fff8e8;color:var(--amber)}.legend.notified{background:#edf8ff;color:var(--cyan)}.journal-summary-head{background:#eef3f8!important;border-left:1px solid #d7e0ea}.journal-summary-cell{background:#fbfcfe;border-left:1px solid #edf1f5;min-width:105px}.journal-summary-cell strong{display:block}.journal-summary-cell small{display:block;color:var(--muted);margin-top:2px}.journal-control-input{width:105px;border:1px solid #ccd6e2;border-radius:7px;padding:5px 6px;font-size:11px}.journal-rec-select{width:135px;border:1px solid #ccd6e2;border-radius:7px;padding:5px 6px;font-size:11px}.reward-mini{display:inline-block;border-radius:8px;background:#fff7d6;color:#7a5a00;padding:4px 6px;font-size:10px;font-weight:760;margin:2px;max-width:180px;white-space:normal}
.analytics-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.analytics-group-card{border:1px solid var(--line);border-radius:14px;padding:12px}.analytics-pct{font-size:22px;color:#163a63}.analytics-bars{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px;font-size:10px;color:#667085}.analytics-absent{color:var(--red);font-weight:800}.analytics-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.session-modal .qr-presenter:not(.projector-mode) #liveQr,.session-modal .qr-presenter:not(.projector-mode) .qr-box{width:280px!important;height:280px!important;max-width:280px!important;max-height:280px!important;overflow:hidden}.session-modal .qr-presenter:not(.projector-mode) #liveQr canvas,.session-modal .qr-presenter:not(.projector-mode) #liveQr img{width:280px!important;height:280px!important;max-width:280px!important;max-height:280px!important}.session-modal .qr-presenter:not(.projector-mode){overflow:hidden}
@media(max-width:1100px){.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.three-col{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.three-col{grid-template-columns:1fr}.attendance-popover{width:min(310px,calc(100vw - 18px))}.analytics-kpis{grid-template-columns:1fr}.week-session span{display:none}}
/* r5 — restored individual/source fields */
.source-values{margin-top:14px;padding-top:12px;border-top:1px solid var(--border,#e5e7eb);display:grid;gap:9px}.source-values .field{margin:0}.source-values input{max-width:100%}.list-stack{display:grid;gap:8px}

/* beta.3 r5 — owner setup checklist */
.setup-checklist{margin-bottom:12px;padding:14px 16px}.setup-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.setup-item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 11px;display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;text-align:left;color:inherit}.setup-item>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:12px}.setup-item.ok>span{background:#ecfbf3;color:#137a4d}.setup-item.warn>span{background:#fff4e5;color:#a35a00}.setup-item:hover{border-color:#aebed0;background:#fbfdff}.setup-item strong,.setup-item small{display:block}.setup-item small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.25}
@media(max-width:1000px){.setup-items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.setup-items{grid-template-columns:1fr}}

/* beta.3 r6 — permanent diploma QR */
.diploma-qr-card .split{align-items:center}.diploma-qr-thumb{width:112px;height:112px;flex:0 0 112px;background:#fff;border-radius:10px;padding:4px}.diploma-qr-thumb canvas,.diploma-qr-thumb img{max-width:100%;height:auto}.diploma-qr-modal{max-width:720px}.diploma-qr-stage{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:10px}.diploma-qr-stage #diplomaQrLarge{background:#fff;padding:12px;border-radius:14px}.diploma-qr-stage canvas,.diploma-qr-stage img{display:block;max-width:min(520px,72vw);height:auto}.diploma-qr-stage small{max-width:620px;word-break:break-all;color:var(--muted)}.diploma-qr-actions{justify-content:center}.danger-zone{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.danger-zone summary{cursor:pointer;font-weight:700;color:#b42318}.diploma-qr-modal:fullscreen{max-width:none;width:100vw;height:100vh;border-radius:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff}.diploma-qr-modal:fullscreen .modal-head{position:absolute;left:30px;right:30px;top:24px}.diploma-qr-modal:fullscreen .diploma-qr-stage #diplomaQrLarge canvas,.diploma-qr-modal:fullscreen .diploma-qr-stage #diplomaQrLarge img{max-width:min(62vh,720px);width:min(62vh,720px)}

/* beta.3 r6 — railway role markers */
.train-mark{width:16px;height:16px;display:inline-block;vertical-align:-3px;color:#d99a00;filter:drop-shadow(0 1px 0 rgba(255,255,255,.65));margin-right:4px}
.train-mark.secondary{color:#b8892b}
.role-pill.headman{display:inline-flex;align-items:center;background:#fff7d6;color:#6f5400;border:1px solid #f0d47b;border-radius:999px;padding:2px 7px;font-weight:800}
.role-pill.deputy{display:inline-flex;align-items:center;background:#fffaf0;color:#725f2b;border:1px solid #e8dcb7;border-radius:999px;padding:2px 7px;font-weight:760}

/* beta.3 r6 — discoverability, module engine and visual polish */
body{font-size:16px}
.page-head h1{font-size:31px}.card h2{font-size:21px}.card h3{font-size:17px}
.small{font-size:12.5px}table{font-size:13px}th,td{padding:10px}
.day b{font-size:13.5px;color:#344054}.day .date{font-size:13px;font-weight:750;color:#667085;margin-top:2px;display:block}
.day.weekend{background:#fff7f7;border-color:#f5dada}.day.weekend b,.day.weekend .date{color:#a64b4b}
.day.calendar-exception{background:#fff8ec;border-color:#f0d7a8}.day.calendar-exception .day-note{display:block;margin-top:4px;font-size:9.5px;line-height:1.15;color:#925f16;font-weight:750}
.week-session{cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.week-session:hover{background:#dfeeff;box-shadow:0 0 0 1px #9bc1eb;transform:translateY(-1px)}
.week-group-link{border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:900;text-decoration:underline;text-decoration-color:rgba(36,75,116,.28);text-underline-offset:2px;cursor:pointer}.week-group-link:hover{text-decoration-color:currentColor}
.help-q{display:inline-grid;place-items:center;width:20px;height:20px;margin-left:4px;border:1px solid #c9d5e3;border-radius:50%;background:#f8fafc;color:#52667e;font-size:11px;font-weight:900;vertical-align:2px;padding:0}.help-q:hover{background:#edf5ff;border-color:#93b8df;color:#245b94}.help-popover{position:fixed;z-index:9000;width:min(360px,calc(100vw - 24px));background:#fff;border:1px solid #ccd8e6;border-radius:14px;padding:12px 14px;box-shadow:0 18px 55px rgba(10,30,55,.22)}.help-popover strong{display:block;margin-bottom:5px}.help-popover p{margin:0;color:#667085;font-size:13px;line-height:1.45}
.course-card{display:flex;align-items:stretch;gap:10px;padding:0;cursor:default;overflow:hidden}.course-card-main{min-width:0;flex:1;border:0;background:transparent;text-align:left;color:inherit;padding:15px;cursor:pointer}.course-card-actions{display:flex;align-items:center;gap:6px;padding:10px 12px 10px 0}.course-card:hover .course-card-main{background:#fbfdff}
.friendly-empty{padding:28px;border:1px dashed #cdd8e5;border-radius:14px;background:#fbfcfe;text-align:center;color:#667085}.friendly-empty strong{display:block;color:#344054;font-size:16px}.friendly-empty p{max-width:720px;margin:7px auto 13px;line-height:1.45}
.matrix-wrap{max-width:100%;margin-top:12px}.matrix-table{min-width:max-content}.matrix-table th,.matrix-table td{text-align:center}.matrix-table .sticky-name{text-align:left;min-width:220px}.sticky-summary{position:sticky;right:0;background:#fbfcfe;z-index:3;min-width:105px;border-left:1px solid #e6ebf1}.matrix-table thead .sticky-summary{background:#f1f5f9;z-index:5}.sticky-summary small{display:block;color:#667085;font-size:10px;margin-top:2px}
.matrix-status{width:94px;min-height:48px;border:1px solid #d8e0ea;border-radius:9px;background:#fff;color:#52667e;padding:5px 6px;display:grid;place-items:center;gap:2px}.matrix-status b{font-size:15px}.matrix-status span{font-size:9px;line-height:1.05}.matrix-status:hover:not(:disabled){border-color:#91b6dd;background:#f6faff}.matrix-status.accepted,.matrix-status.tracker-accepted{background:#ecfbf3;border-color:#b9e7cf;color:#087a55}.matrix-status.remarks,.matrix-status.tracker-remarks{background:#fff8e8;border-color:#efd89d;color:#976300}.matrix-status.revision,.matrix-status.tracker-revision{background:#edf5ff;border-color:#bdd6f0;color:#245b94}.matrix-status.not-shown,.matrix-status.tracker-not_shown{background:#fafbfc;color:#7b8797}
.cell-popover{position:fixed;z-index:7600;width:340px;background:#fff;border:1px solid #cbd7e5;border-radius:15px;padding:12px;box-shadow:0 18px 55px rgba(10,30,55,.23)}.cell-pop-title strong,.cell-pop-title small{display:block}.cell-pop-title small{color:#667085;margin-top:2px}.cell-status-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:10px 0}.cell-status-choice{border:1px solid #dde5ee;background:#f8fafc;border-radius:9px;padding:8px;text-align:left;color:#475467}.cell-status-choice:hover,.cell-status-choice.active{border-color:#8fb6df;background:#edf5ff;color:#244b74}.popover-actions{display:flex;gap:7px;margin-top:9px}
.work-plan-strip{display:flex;gap:8px;overflow:auto;padding:10px 0}.work-plan-chip{min-width:160px;border:1px solid #dce4ed;border-radius:11px;padding:9px;background:#fbfcfe}.work-plan-chip strong,.work-plan-chip span{display:block}.work-plan-chip span{font-size:10px;color:#667085;margin:2px 0 6px}.work-plan-chip input{width:100%;border:1px solid #ccd6e2;border-radius:7px;padding:5px}.legend-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.status-dot{border-radius:999px;padding:4px 8px;font-size:10px;background:#f4f6f8;color:#667085}.status-dot.accepted{background:#ecfbf3;color:#087a55}.status-dot.remarks{background:#fff8e8;color:#976300}.status-dot.revision{background:#edf5ff;color:#245b94}
.source-matrix input.source-cell{width:118px;border:1px solid transparent;background:transparent;border-radius:7px;padding:6px}.source-matrix input.source-cell:hover,.source-matrix input.source-cell:focus{border-color:#9dbde0;background:#fff;outline:0;box-shadow:0 0 0 2px #edf5ff}.source-matrix th small{display:block;font-size:9px;font-weight:500;color:#8a97a8;margin-top:2px}
.tracker-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.tracker-matrix .matrix-status{width:104px}.tracker-matrix .matrix-status span{white-space:normal}
.module-disabled{text-align:center;padding:34px}.module-disabled .module-icon{width:44px;height:44px;margin:0 auto 10px;border-radius:14px;display:grid;place-items:center;background:#edf5ff;color:#245b94;font-size:28px;font-weight:500}.module-disabled p{max-width:700px;margin:6px auto 14px}
.security-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.security-tabs button{border:1px solid #d9e2ec;background:#fff;border-radius:9px;padding:8px 10px;color:#5a697b;font-weight:750}.security-tabs button.active{background:#1D2939;color:#fff;border-color:#1D2939}.audit-toolbar{display:flex;gap:8px;margin:10px 0}.audit-toolbar input{flex:1;border:1px solid #cfd8e5;border-radius:9px;padding:9px 10px}.audit-toolbar pre{white-space:pre-wrap}
.export-json-card{position:relative;overflow:hidden}.export-json-card .btn{display:inline-flex;margin-top:10px}.service-note p{line-height:1.45}
@media(max-width:1100px){.course-card{display:block}.course-card-actions{padding:0 15px 14px}.tracker-head{display:block}.tracker-head .quick-actions{margin-top:8px}}
@media(max-width:720px){body{font-size:15px}.page-head h1{font-size:27px}.day b{font-size:12px}.day .date{font-size:12px}.cell-popover{width:min(340px,calc(100vw - 20px))}.course-card-actions{flex-wrap:wrap}.matrix-table .sticky-name{min-width:170px}.help-popover{font-size:12px}}

/* beta.3 r7 — final pre-release polish */
.train-mark.headman-mark{color:#d99a00}.train-mark.deputy-mark{color:#1685a3}
.role-pill.headman{background:#fff6cf;color:#6d5100;border-color:#ebcf6d}
.role-pill.deputy{background:#e9f8fb;color:#12657a;border-color:#a9dce6;font-weight:800}

.student-detail-course{padding:18px;margin-bottom:14px;border-radius:15px}.student-detail-course>h3{margin:0 0 14px}.student-attendance-block{padding-bottom:15px;border-bottom:1px solid var(--line)}
.student-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}.student-section-title>span{font-size:11px;color:var(--muted)}
.student-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.student-plan-card{display:flex;flex-direction:column;gap:6px;padding:12px 13px;border:1px solid #dce5ee;border-radius:12px;background:#fbfcfe}.student-plan-card>strong{font-size:13px;color:#344054;margin-bottom:2px}.student-plan-card>span{display:flex;justify-content:space-between;gap:10px;color:#667085;font-size:12px}.student-plan-card b{color:#25364a;font-weight:800}
.student-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:14px}.student-module-card{display:flex;flex-direction:column;gap:6px;padding:12px 13px;border-radius:12px;background:#f7f9fc}.student-module-card strong{font-size:12px}.student-module-card span{font-size:12px;line-height:1.35}.student-recommendation{margin:14px 0 0!important;padding-top:11px;border-top:1px dashed #dce4ed}

.reward-campaign-grid{margin-top:14px}.reward-campaign-card{display:flex;flex-direction:column;gap:11px}.reward-effect{padding:10px 12px;border-radius:11px;background:#edf6ff;border:1px solid #cfe3f7}.reward-effect small,.reward-terms small{display:block;color:#667085;font-size:10px;font-weight:750;margin-bottom:3px}.reward-effect strong{display:block;color:#244b74}.reward-terms{padding-top:8px;border-top:1px dashed #d8e1eb}.reward-terms p{margin:2px 0 0;font-size:12px;line-height:1.45;color:#667085}.reward-pool-box{margin:12px 0;padding:12px 14px;border:1px solid #d7e6f3;background:#f8fbff;border-radius:12px}.reward-pool-box p{margin:4px 0 9px}.reward-rule-checks{display:grid;gap:6px;margin:10px 0}.reward-save{margin-top:14px}

.diploma-year-switcher{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 12px}.diploma-year-switcher button{display:flex;flex-direction:column;gap:1px;align-items:flex-start;min-width:105px;border:1px solid #d9e2ec;background:#fff;border-radius:11px;padding:8px 11px;color:#425466}.diploma-year-switcher button small{font-size:9px;color:#8390a0;text-transform:uppercase}.diploma-year-switcher button.active{background:#163a63;border-color:#163a63;color:#fff}.diploma-year-switcher button.active small{color:#c9d9e9}
.diploma-tabs{display:flex;gap:5px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:7px}.diploma-tabs button{white-space:nowrap;border:0;background:transparent;border-radius:9px;padding:8px 10px;color:#667085;font-weight:760}.diploma-tabs button:hover:not(:disabled){background:#f1f5f9}.diploma-tabs button.active{background:#1d2939;color:#fff}.diploma-tabs button:disabled{opacity:.38}
.diploma-campaign-panel{max-width:760px;margin-top:14px}.diploma-import-box{margin-top:18px;padding:14px;border:1px dashed #cbd8e6;border-radius:13px;background:#fbfcfe}.diploma-import-box>strong{display:block}.capacity-input{width:78px}.capacity-input.over{border-color:#e5a6a6;background:#fff7f7}.capacity-over-row{background:#fff9f7}.capacity-warning{color:#b42318;font-size:10px;font-weight:800}.diploma-qr-main{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:760px;margin-top:14px;padding:18px}.diploma-public-url{display:block;word-break:break-all;color:#667085;margin:6px 0 12px}.public-verify-field{margin-top:11px!important;padding-top:10px;border-top:1px dashed #d7e0e9}.public-verify-field small{display:block;color:#667085;font-size:10px;line-height:1.35;margin-top:4px}
@media(max-width:720px){.student-detail-course{padding:14px}.student-plan-grid,.student-module-grid{grid-template-columns:1fr}.student-section-title{display:block}.student-section-title>span{display:block;margin-top:3px}.diploma-qr-main{display:block}.diploma-qr-main .diploma-qr-thumb{margin-top:14px}.diploma-tabs{margin-left:-4px;margin-right:-4px}}
.diploma-linea-groups label{align-items:flex-start}.diploma-linea-groups label span{display:flex;flex-direction:column;gap:2px}.diploma-linea-groups label small{color:var(--muted);font-size:10px}

/* beta.3 r8 — acceptance fixes and interaction polish */
.topbar{justify-content:space-between}.server-clock{margin-left:auto;white-space:nowrap;border:1px solid #d9e2ec;background:#fff;border-radius:11px;padding:9px 12px;font-size:12px;font-weight:850;color:#28445f;letter-spacing:.02em;box-shadow:0 2px 8px rgba(20,50,84,.04)}

/* Clickable surfaces get motion, but never lose contrast. */
.course-card,.course-admin-card,.attention-action,.setup-item,.panel-soft,.diploma-year-switcher button,.month-session{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background-color .15s ease,color .15s ease}.course-card:hover,.course-admin-card:hover,.attention-action:hover,.setup-item:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(20,50,84,.08);border-color:#aac5e1}
.diploma-year-switcher button:hover:not(.active){transform:translateY(-1px);background:#eaf3ff;border-color:#8bb6e4;color:#173a63;box-shadow:0 7px 17px rgba(26,73,121,.10)}.diploma-year-switcher button:hover:not(.active) small{color:#476b90}.diploma-year-switcher button.active:hover{transform:translateY(-1px);background:#204b78;color:#fff;box-shadow:0 7px 17px rgba(16,49,82,.22)}.diploma-year-switcher button.active:hover small{color:#d7e6f4}
.identity-lock-note{margin:8px 0 2px;padding:10px 12px;border:1px solid #d7e5f2;border-radius:11px;background:#f7fbff;color:#536b84;font-size:12px;line-height:1.4}

/* Headman/deputy need to be distinguishable at a glance. */
.role-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #d8e0e8}.role-pill .train-mark,.train-mark{width:17px;height:17px;vertical-align:-3px}.role-pill.headman{background:#fff2b8;color:#624800;border-color:#d9b83b;box-shadow:inset 0 0 0 1px rgba(217,184,59,.12)}.role-pill.deputy{background:#d7f4fa;color:#075a70;border-color:#58b8ca;box-shadow:inset 0 0 0 1px rgba(88,184,202,.15)}.train-mark.headman-mark{color:#c98700}.train-mark.deputy-mark{color:#08758e}

/* Custom/student labels are separate from official group roles. */
.student-label-row,.student-public-labels{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.student-label{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:820;line-height:1}.student-label small{font-size:8px;font-weight:700;opacity:.75;margin-left:2px}.student-label-icon{display:inline-grid;place-items:center;width:16px;height:16px}.student-label-icon svg{width:16px;height:16px}.student-label.tone-slate{background:#eef2f6;color:#405267;border-color:#d3dce6}.student-label.tone-blue{background:#eaf3ff;color:#175d9c;border-color:#bdd8f3}.student-label.tone-teal{background:#e2f7f5;color:#10675e;border-color:#a7ded8}.student-label.tone-amber{background:#fff4cf;color:#805e00;border-color:#ebcf70}.student-label.tone-red{background:#fff0ef;color:#a12820;border-color:#efb6b1}.student-label.tone-black{background:#171c24;color:#fff;border-color:#171c24;box-shadow:0 2px 9px rgba(0,0,0,.14)}.student-label.staff-only{border-style:dashed}.student-label-manager{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.student-label-assignments{display:grid;gap:8px;margin:12px 0}.label-assign-row{display:grid;grid-template-columns:minmax(230px,.9fr) 1fr;gap:10px;align-items:center;padding:10px;border:1px solid #e1e7ef;border-radius:11px;background:#fff}.label-assign-row input[type=text],.label-assign-row>input{width:100%;border:1px solid #cfd8e5;border-radius:9px;padding:8px 10px}.label-definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.label-definition-card p{margin-top:8px!important}

/* Bonus form: presets are the primary UX, numeric value only appears when needed. */
.reward-wording-box,.reward-terms-box{margin:12px 0;padding:13px 14px;border:1px solid #d9e5f0;border-radius:13px;background:#fbfdff}.reward-wording-box>p{margin:7px 0 0!important}.reward-terms-box textarea{line-height:1.45}

/* Shared multi-group audience and event pair planner. */
.audience-box{margin-top:8px}.audience-all{padding:8px 0;font-weight:800}.audience-groups{margin-top:7px}.audience-groups label{background:#fff}.timing-mode{display:flex;gap:5px;margin:12px 0 10px;padding:4px;background:#eef3f8;border-radius:11px;width:max-content}.timing-mode button{border:0;background:transparent;color:#607185;border-radius:8px;padding:8px 11px;font-weight:800}.timing-mode button.active{background:#fff;color:#173a63;box-shadow:0 2px 8px rgba(20,50,84,.08)}.event-pair-row{display:grid;grid-template-columns:180px minmax(0,1fr) 38px;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid #e8edf3}.event-pair-row:last-child{border-bottom:0}.pair-choice{display:flex;gap:6px;flex-wrap:wrap}.pair-choice label{position:relative}.pair-choice input{position:absolute;opacity:0;pointer-events:none}.pair-choice span{display:block;border:1px solid #d3dde8;background:#fff;border-radius:9px;padding:8px 9px;font-size:11px;font-weight:780;color:#566a80;cursor:pointer}.pair-choice input:checked+span{background:#173a63;border-color:#173a63;color:#fff}.info-explain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}.info-explain{padding:11px 12px;border:1px solid #dce5ee;border-radius:12px;background:#f9fbfd}.info-explain strong{display:block;font-size:12px;margin-bottom:3px}.info-explain span{display:block;color:#6c7b8e;font-size:11px;line-height:1.4}

/* Home week navigation + month academic calendar. */
.week-nav{display:flex;align-items:center;gap:7px}.semester-calendar-card{margin-top:15px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav strong{min-width:140px;text-align:center;text-transform:capitalize}.month-grid-head{display:grid;grid-template-columns:62px repeat(7,minmax(0,1fr));gap:5px;margin-top:12px}.month-grid-head>div{font-size:10px;font-weight:850;color:#718096;text-align:center;padding:4px}.month-grid{display:grid;gap:5px}.month-week-row{display:grid;grid-template-columns:62px repeat(7,minmax(0,1fr));gap:5px}.month-week-no{display:grid;place-items:center;border:1px solid #dde5ee;border-radius:10px;background:#f7f9fc;color:#617287;font-size:10px;text-align:center;line-height:1.25;padding:4px}.month-week-no b{display:block;font-size:13px;color:#2e455f}.month-day{min-height:91px;border:1px solid #dde5ee;border-radius:10px;background:#fff;padding:6px;overflow:hidden}.month-day.weekend{background:#fff7f6}.month-day.outside{opacity:.42}.month-day.has-exception{border-color:#efb4ae;background:#fff3f1}.month-date{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#758399;font-weight:800}.month-date b{font-size:12px;color:#2d4259}.month-exception{margin-top:4px;padding:3px 5px;border-radius:6px;background:#fee4e2;color:#9c2d24;font-size:8px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-session{display:block;width:100%;margin-top:4px;border:0;border-radius:6px;background:#edf5ff;color:#245985;text-align:left;padding:4px 5px;font-size:8px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-session:hover{background:#dcecff;color:#173f69;transform:translateY(-1px)}

@media(max-width:900px){.server-clock{font-size:11px;padding:8px}.label-definition-grid{grid-template-columns:1fr}.info-explain-grid{grid-template-columns:1fr}.month-grid-head,.month-week-row{grid-template-columns:48px repeat(7,minmax(84px,1fr))}.semester-calendar-scroll{overflow-x:auto}.event-pair-row{grid-template-columns:1fr 38px}.event-pair-row>.field{grid-column:1/-1}.label-assign-row{grid-template-columns:1fr}}
@media(max-width:720px){.topbar{gap:8px}.server-clock{position:fixed;right:10px;top:9px;z-index:55;background:rgba(255,255,255,.96)}.global-search{padding-right:118px}.diploma-year-switcher button{min-width:96px}.timing-mode{width:100%}.timing-mode button{flex:1}.month-grid{min-width:770px}.month-grid-head{min-width:770px}.student-public-labels{margin-top:10px}}
.month-grid-head{align-items:end}.month-grid-head>span{font-size:10px;font-weight:850;color:#718096;text-align:center;padding:4px}.month-calendar{display:grid;gap:5px}.month-day.calendar-exception{border-color:#efb4ae;background:#fff3f1}.month-date{display:block;font-size:11px;color:#2d4259;font-weight:850}.month-week-no strong{display:block;font-size:13px;color:#2e455f}.month-week-no span{font-size:9px;color:#6e7d8f}.month-more{display:block;margin-top:4px;color:#64748b;font-size:8px;font-weight:800}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.diploma-roster-actions{margin-top:12px;align-items:center}.diploma-linea-groups label:has(input:checked){border-color:#79a9df;background:#eef6ff;box-shadow:0 0 0 1px rgba(55,114,176,.08)}

/* r9 final acceptance polish */
.server-clock{font-size:18px;font-weight:900;padding:11px 16px;min-width:138px;text-align:center;border-width:1.5px;box-shadow:0 5px 16px rgba(20,50,84,.08)}
.diploma-year-switcher button:hover:not(.active){background:#173a63!important;border-color:#173a63!important;color:#fff!important;box-shadow:0 8px 20px rgba(17,53,89,.22)!important;transform:translateY(-2px)}
.diploma-year-switcher button:hover:not(.active) strong,.diploma-year-switcher button:hover:not(.active) small{color:#fff!important}
.diploma-year-switcher button.active,.diploma-year-switcher button.active:hover{background:#102f50!important;border-color:#102f50!important;color:#fff!important;box-shadow:0 8px 20px rgba(17,53,89,.24)}
.diploma-year-switcher button.active strong,.diploma-year-switcher button.active small,.diploma-year-switcher button.active:hover strong,.diploma-year-switcher button.active:hover small{color:#fff!important}
.role-pill.deputy .train-mark{width:21px;height:21px}.role-pill.headman .train-mark{width:19px;height:19px}
.tracker-matrix th{min-width:128px}.tracker-col-code{display:block;font-size:12px;color:#27496b;margin-bottom:3px}.tracker-col-title{display:block;white-space:normal;font-size:10px;line-height:1.2;color:#5a6c80}.tracker-item-editor td:first-child{width:56px;text-align:center;font-weight:850}.tracker-item-editor input{width:100%}.tracker-date-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 10px}.tracker-date-strip span{display:flex;flex-direction:column;background:#f5f8fb;border:1px solid #e0e7ef;border-radius:8px;padding:7px 8px;font-size:10px;color:#52667e}.tracker-date-strip b{font-size:9px;color:#7a8797;margin-bottom:2px}.tracker-detail-popover{min-width:430px}
.source-matrix th,.source-matrix td{border-right:1px solid #edf1f5}.source-matrix tr{border-bottom:1px solid #edf1f5}.source-matrix tbody tr:hover{background:#f8fbff}.source-matrix input.source-cell{width:124px;border:1px solid #dce5ee;background:#fff;border-radius:7px;padding:7px 8px}.source-matrix input.source-cell:hover,.source-matrix input.source-cell:focus{border-color:#75a8d6;background:#fff;outline:0;box-shadow:0 0 0 2px #eaf3fb}.source-grid-help{margin:8px 0 10px;padding:8px 10px;background:#f6f9fc;border:1px solid #e3eaf2;border-radius:8px;color:#65768a;font-size:11px}
.info-row-actions{display:flex;gap:5px;align-items:center;margin-left:8px;flex-wrap:wrap}.info-row-actions .btn{padding:5px 8px}.registration-actions{display:flex;gap:5px;justify-content:flex-end}.campaign-access-mode{margin:8px 0}.campaign-date-presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
@media(max-width:900px){.server-clock{font-size:15px;min-width:116px;padding:9px 12px}.tracker-date-strip{grid-template-columns:1fr}.tracker-detail-popover{min-width:320px}}

/* r10 pre-production: group-context workflows and unambiguous controls */
.diploma-tabs button:hover:not(:disabled){background:#e9f2fc!important;color:#173a63!important;transform:none!important}
.diploma-tabs button.active,.diploma-tabs button.active:hover{background:#173a63!important;color:#fff!important;box-shadow:inset 0 0 0 1px #173a63!important}
.work-chip-head{display:flex;align-items:center;justify-content:space-between;gap:7px}.work-chip-remove{width:22px;height:22px;border:1px solid #efc8c4;border-radius:7px;background:#fff5f4;color:#b42318;font-weight:900;line-height:1;padding:0}.work-chip-remove:hover{background:#ffe9e7;border-color:#e79b94}.work-plan-chip>span{max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coursework-final{margin-top:18px;padding-top:16px;border-top:1px solid #dde5ee}.coursework-final-head{margin-bottom:9px}.coursework-final-head strong{font-size:14px}.coursework-final-cell{border:1px solid #cfdbe7;background:#fff;border-radius:8px;padding:7px 9px;font-weight:780;color:#29415e;min-width:104px}.coursework-final-cell:hover:not(:disabled){background:#edf5ff;border-color:#8db5dc;color:#173a63}.coursework-final-popover{min-width:470px}
@media(max-width:720px){.coursework-final-popover{min-width:320px}}
.tracker-scope-note{display:inline-flex;gap:5px;align-items:center;margin:7px 0 0;padding:5px 8px;border:1px solid #dbe5ef;border-radius:8px;background:#f7fafd;color:#52677d;font-size:10px}.tracker-scope-note b{color:#304a65}.coursework-final-cell strong,.coursework-final-cell small{display:block}.coursework-final-cell small{margin-top:2px;color:#718096;font-size:9px;font-weight:650}

/* LINEA 2.0 beta.3 r11 — UX simplification: group-first workspace */
.nav-spacer{height:14px;margin-top:5px;border-top:1px solid rgba(255,255,255,.14)}
.nav .nav-secondary{color:#b8cadd;font-size:13px}
.nav-section{display:block;margin:14px 10px 3px;color:#98a2b3;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.nav-section:first-of-type{margin-top:7px}.nav-management-section{margin-top:18px}
.setup-route{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0;margin:16px 0 0;list-style:none}.setup-route button{width:100%;min-height:76px;border:1px solid #d7e2ef;border-radius:12px;padding:10px;background:#fbfdff;text-align:left;color:#244564}.setup-route button:hover{border-color:#86b1e1;background:#f3f8ff}.setup-route strong,.setup-route span{display:block}.setup-route strong{font-size:12px}.setup-route span{margin-top:4px;color:#718197;font-size:10px;line-height:1.25}.public-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:11px;margin-top:14px}.public-choice{min-height:88px;border:1px solid #cdddec;border-radius:14px;padding:14px;background:#fff;text-align:left;color:#173a63}.public-choice:hover:not(:disabled){border-color:#70a9e4;background:#f5f9ff}.public-choice:disabled{cursor:not-allowed;opacity:.58}.public-choice strong,.public-choice span{display:block}.public-choice span{margin-top:6px;color:#718197;font-size:12px}.topic-choice-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.topic-choice{border:1px solid #cfdbe8;border-radius:999px;padding:8px 12px;background:#fff;color:#284a6d;font-weight:700;font-size:12px}.topic-choice.active{border-color:#1769d2;background:#eaf3ff;color:#14539f}
@media(max-width:720px){.setup-route{grid-template-columns:1fr}.setup-route button{min-height:58px}.public-choice-grid{grid-template-columns:1fr}}
.nav .nav-secondary:hover,.nav .nav-secondary.active{color:#fff}
.group-directory-card{padding:20px}.group-directory-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.group-directory-toolbar .grow{min-width:280px}.group-year-section+ .group-year-section{margin-top:24px}.group-year-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 2px 9px}.group-year-title strong{font-size:18px;color:#173a63}.group-year-title span{font-size:11px;color:#718096}.group-work-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.group-work-card{border:1px solid #dbe4ee;background:#fff;border-radius:15px;padding:15px;text-align:left;color:#17324f;transition:.14s ease}.group-work-card:hover{border-color:#9dbfe5;background:#f7fbff;box-shadow:0 8px 24px rgba(20,50,84,.07);transform:translateY(-1px)}.group-work-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.group-work-card-top strong{display:block;font-size:20px}.group-work-card-top span{display:block;margin-top:2px;font-size:11px;color:#718096}.group-work-card-top span.warn{color:#b54708}.group-work-card-top b{font-size:18px;color:#386b9f}.group-course-mini{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0 10px}.group-course-mini span{font-size:10px;border-radius:999px;padding:4px 7px;background:#edf4fc;color:#355f8a}.group-work-card>small{color:#718096}
.group-workspace-head{margin-bottom:10px}.group-context-bar{position:sticky;top:0;z-index:34;display:flex;gap:14px;align-items:end;justify-content:space-between;background:rgba(243,246,250,.96);backdrop-filter:blur(8px);padding:10px 0 13px;margin-bottom:12px;border-bottom:1px solid #dde5ee}.group-context-bar>.field{min-width:340px}.group-view-switch,.group-work-switcher{display:flex;gap:5px;flex-wrap:wrap}.group-view-switch button,.group-work-switcher button{border:1px solid #dbe4ee;background:#fff;color:#53677e;border-radius:10px;padding:9px 11px;font-weight:760}.group-view-switch button:hover,.group-work-switcher button:hover{background:#f2f7fc;color:#173a63}.group-view-switch button.active,.group-work-switcher button.active{background:#173a63;color:#fff;border-color:#173a63}.group-course-row{display:block;width:100%;border:1px solid #e0e6ed;background:#fff;border-radius:11px;padding:10px 11px;text-align:left;margin-top:7px}.group-course-row.active{background:#f1f7fd;border-color:#a9c9ea}.group-course-row strong,.group-course-row span{display:block}.group-course-row span{font-size:11px;color:#718096;margin-top:2px}.group-quick-actions{display:flex;gap:8px;margin-top:14px}.context-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #d8e3ef;background:#f7faff;border-radius:10px;padding:10px 12px;color:#53677e;font-size:12px}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.roster-person{border:1px solid #e0e6ed;border-radius:11px;background:#fff;text-align:left;padding:10px;color:#173a63}.roster-person:hover{background:#f6faff;border-color:#afcae7}
.attendance-workspace{padding:20px}.attendance-title{align-items:flex-start}.attendance-mode-hint{display:flex;align-items:center;gap:7px;border:1px solid #dbe5ef;border-radius:11px;padding:7px 10px;background:#f8fbff;color:#6d7c8f;font-size:11px}.attendance-mode-hint span:first-child{font-weight:850;color:#1769d2}.attendance-mode-hint strong{color:#173a63}.attendance-toolbar{margin-top:14px}.attendance-only-table .sticky-name{min-width:185px}.attendance-person{vertical-align:top}.student-name-two-line{display:inline-grid;gap:1px;line-height:1.13}.student-name-two-line strong{font-size:14px;color:#173a63}.student-name-two-line span{font-size:12px;color:#52677f;font-weight:650}.journal-session-head{display:grid;gap:3px;justify-items:start;min-width:94px}.journal-session-head>strong{font-size:11px;color:#334e68}.journal-session-head>span{font-size:9px;color:#78879a}.mini-action{border:1px solid #cfdcea;background:#fff;color:#2c5d8a;border-radius:7px;padding:4px 6px;font-size:9px;font-weight:800}.mini-action:hover{background:#edf5ff}.mini-action.disabled,.mini-action:disabled{opacity:.4;cursor:not-allowed}.attendance-footer-note{display:flex;gap:9px;align-items:baseline;margin-top:10px;border:1px solid #e1e7ee;border-radius:11px;padding:10px 12px;background:#f9fbfd;font-size:11px;color:#66788d}.attendance-footer-note strong{color:#36516d;white-space:nowrap}.roll-call-modal{width:min(820px,98vw)}.roll-call-list{max-height:55vh;overflow:auto;margin:12px 0;border:1px solid #e0e6ed;border-radius:12px}.roll-call-row{display:grid;grid-template-columns:1fr 210px;gap:12px;align-items:center;padding:9px 11px;border-bottom:1px solid #edf1f5}.roll-call-row:last-child{border-bottom:0}.roll-call-name{display:flex;align-items:center;gap:8px}.roll-call-name .student-name-two-line{pointer-events:none}.roll-call-row select{border:1px solid #ccd8e6;border-radius:9px;padding:8px;background:#fff}.roll-call-actions{display:flex;justify-content:flex-end;gap:8px}
.work-plan-strip{align-items:stretch}.work-plan-chip{position:relative}.work-drag{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:4px;border:0;background:transparent;color:#8a99ab;cursor:grab;font-size:17px}.work-plan-chip.dragging{opacity:.45;transform:scale(.98)}.work-chip-edit{border:0;background:transparent;color:#315f8c;text-align:left;font-weight:800;padding:0}.work-chip-edit:hover{text-decoration:underline}.tracker-head.simplified{border-top:1px solid #edf1f5;margin-top:12px;padding-top:14px}.tracker-scope-note{font-size:11px;color:#66788d;margin-top:7px!important}.coursework-final{margin-top:18px;border-top:2px solid #dce7f3;padding-top:15px}.coursework-final-head{margin-bottom:10px}.coursework-final td{white-space:nowrap}.tracker-matrix .sticky-name{min-width:190px}
.compact-academic-calendar{margin-top:15px;padding:16px 18px}.compact-month-head,.compact-month-week{display:grid;grid-template-columns:58px repeat(7,minmax(0,1fr));gap:5px}.compact-month-head{margin-top:12px}.compact-month-head>span{padding:4px;text-align:center;color:#6c7d91;font-size:10px;font-weight:850}.compact-month-head>span.weekend{color:#b42318}.compact-month-body{display:grid;gap:5px}.compact-week-label{min-height:55px;border:1px solid #dfe7ef;border-radius:10px;background:#f7f9fc;display:grid;place-items:center;align-content:center;gap:0;color:#61738a}.compact-week-label strong{font-size:12px}.compact-week-label span{font-size:10px;font-weight:850}.compact-month-day{position:relative;min-height:55px;border:1px solid #dfe7ef;border-radius:10px;background:#fff;color:#304b68;padding:7px;text-align:left;transition:.12s ease}.compact-month-day>strong{font-size:15px;display:block}.compact-month-day.weekend{background:#fff8f7;color:#a63b31}.compact-month-day.outside{opacity:.38}.compact-month-day.has-sessions{background:#f7fbff;border-color:#cfe0f2}.compact-month-day:hover{border-color:#8fb8e3;box-shadow:0 4px 12px rgba(20,50,84,.06);transform:translateY(-1px)}.compact-month-count{display:block;margin-top:5px;font-size:10px;color:#2c669e;font-weight:800}.compact-month-empty{display:block;margin-top:5px;color:#c0c8d2}.compact-exception-dot{position:absolute;right:7px;top:7px;width:7px;height:7px;border-radius:50%;background:#e5484d}.calendar-nav strong{text-transform:capitalize}
.diploma-tabs button{color:#5d7087!important}.diploma-tabs button:hover:not(:disabled){background:#edf5fd!important;color:#173a63!important}.diploma-tabs button.active,.diploma-tabs button.active:hover{background:#173a63!important;color:#fff!important}.identity-lock-note{font-size:11px;color:#65788e;border:1px solid #dce6f0;background:#f8fbfe;border-radius:10px;padding:9px 11px}
@media(max-width:1100px){.group-work-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.group-context-bar{align-items:stretch;flex-direction:column}.group-context-bar>.field{min-width:0;width:100%}.compact-month-head,.compact-month-week{grid-template-columns:48px repeat(7,minmax(68px,1fr))}.compact-academic-calendar{overflow-x:auto}.compact-month-head,.compact-month-body{min-width:650px}}
@media(max-width:720px){.mobile-nav{grid-template-columns:repeat(6,1fr)}.mobile-nav button{font-size:10px}.group-work-cards,.roster-grid{grid-template-columns:1fr}.group-directory-toolbar{display:grid}.group-view-switch,.group-work-switcher{width:100%;overflow-x:auto;flex-wrap:nowrap}.group-view-switch button,.group-work-switcher button{white-space:nowrap}.roll-call-row{grid-template-columns:1fr}.attendance-footer-note{display:grid}.student-name-two-line strong{font-size:13px}.student-name-two-line span{font-size:11px}}
.group-work-switcher{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #dce5ef;background:#fff;border-radius:15px;padding:12px 14px;margin-bottom:12px}.group-work-switcher>div:first-child strong,.group-work-switcher>div:first-child span{display:block}.group-work-switcher>div:first-child span{font-size:11px;color:#718096;margin-top:2px}.group-work-mode-buttons{display:flex;gap:5px;flex-wrap:wrap}.group-work-mode-buttons button{border:1px solid #dbe4ee;background:#fff;color:#53677e;border-radius:10px;padding:9px 11px;font-weight:760}.group-work-mode-buttons button:hover{background:#f2f7fc;color:#173a63}.group-work-mode-buttons button.active{background:#173a63;color:#fff;border-color:#173a63}.person-two-line,.student-name-two-line{white-space:normal}.person-two-line strong,.student-name-two-line strong{display:block}.person-two-line span,.student-name-two-line span{display:block}
@media(max-width:900px){.group-work-switcher{align-items:stretch;flex-direction:column}.group-work-mode-buttons{overflow-x:auto;flex-wrap:nowrap}.group-work-mode-buttons button{white-space:nowrap}}

/* r11.2.5 — clearer lesson types and attendance journal */
.session-type-legend{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 3px}.session-type-badge{border:1px solid transparent;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;white-space:nowrap}.session-type-lecture{background:#eaf3ff!important;border-color:#bfd8f7!important;color:#245b98!important}.session-type-practice{background:#eaf8f5!important;border-color:#bfe6dc!important;color:#167264!important}.session-type-lab{background:#fff5e5!important;border-color:#efd8aa!important;color:#966300!important}.session-row.session-type-lecture,.course-session-row.session-type-lecture{box-shadow:inset 4px 0 0 #6fa7e5;background:#f8fbff}.session-row.session-type-practice,.course-session-row.session-type-practice{box-shadow:inset 4px 0 0 #5eb6a5;background:#f8fcfb}.session-row.session-type-lab,.course-session-row.session-type-lab{box-shadow:inset 4px 0 0 #dea84b;background:#fffdf8}.session-row.session-type-lecture,.session-row.session-type-practice,.session-row.session-type-lab{padding-left:10px;border-radius:8px}.course-session-row.session-type-lecture,.course-session-row.session-type-practice,.course-session-row.session-type-lab{padding-left:12px;border-radius:8px}
.attendance-action-guide{display:grid;gap:3px;min-width:175px;border:1px solid #dbe5ef;border-radius:11px;padding:8px 10px;background:#f8fbff;color:#60748b;font-size:10px}.attendance-action-guide strong{color:#173a63;font-size:11px}.attendance-action-guide span{white-space:nowrap}.journal-wrap{max-height:calc(100vh - 290px);min-height:330px;overflow:auto;position:relative;scrollbar-gutter:stable}.journal-wrap .journal-table thead th{position:sticky;top:0;z-index:8}.journal-wrap .journal-table thead .sticky-name{left:0;z-index:12}.journal-wrap .journal-table tbody .sticky-name{position:sticky;left:0;z-index:5;background:#fff;box-shadow:8px 0 12px -14px rgba(19,58,99,.75)}.journal-wrap .journal-table tbody tr:nth-child(even) .sticky-name{background:#fcfdff}.journal-session-col.session-type-lecture{box-shadow:inset 0 4px 0 #6fa7e5}.journal-session-col.session-type-practice{box-shadow:inset 0 4px 0 #5eb6a5}.journal-session-col.session-type-lab{box-shadow:inset 0 4px 0 #dea84b}.journal-person-name{display:grid;gap:2px;line-height:1.08;white-space:normal}.journal-person-name strong{font-size:14px;color:#173a63;font-weight:850}.journal-person-name span{font-size:11px;color:#718096;font-weight:650}.journal-session-head{min-width:106px}.journal-session-head .mini-action{white-space:nowrap}.student-message-history{display:grid;gap:7px;margin-top:10px}.student-message-row{display:flex;justify-content:space-between;gap:10px;border:1px solid #e0e8f1;border-radius:11px;padding:10px 11px;background:#fbfdff}.student-message-row strong,.student-message-row small{display:block}.student-message-row small{margin-top:2px;color:#718096;font-size:11px}.student-message-row p{margin:7px 0 0;color:#405872;font-size:12px;white-space:pre-wrap}.student-message-row .badge{align-self:flex-start}.student-drawer-section+.student-drawer-section{margin-top:18px;padding-top:16px;border-top:1px solid #e7edf3}.student-drawer-section h3{margin:0 0 4px}
@media(max-width:720px){.attendance-title{display:grid}.attendance-action-guide{width:100%}.journal-wrap{max-height:62vh;min-height:300px}.student-message-row{display:grid}.student-message-row .badge{justify-self:start}.session-type-legend{margin-bottom:8px}}

/* r11.2 — mobile/student + diploma + home polish */
.home-week-primary{padding:22px}.home-week-primary .day{min-height:104px}.home-week-primary .week-session{font-size:11px}.home-status-card{min-height:150px}.home-courses-card{align-self:start}
.compact-academic-calendar{margin-top:0!important;align-self:start;padding:14px!important}.compact-academic-calendar .calendar-title-row{align-items:flex-start}.compact-academic-calendar .calendar-title-row h2{font-size:18px}.compact-academic-calendar .calendar-nav{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:4px;min-width:0}.compact-academic-calendar .calendar-nav .icon-btn{width:30px;height:30px}.compact-academic-calendar .calendar-nav strong{font-size:11px;text-align:center;white-space:nowrap}.compact-academic-calendar .compact-month-head,.compact-academic-calendar .compact-month-week{grid-template-columns:34px repeat(7,minmax(0,1fr));gap:3px}.compact-academic-calendar .compact-week-label{min-height:42px;border-radius:8px}.compact-academic-calendar .compact-week-label strong{font-size:9px}.compact-academic-calendar .compact-week-label span{font-size:8px}.compact-academic-calendar .compact-month-day{min-height:42px;padding:5px;border-radius:8px}.compact-academic-calendar .compact-month-day>strong{font-size:12px}.compact-academic-calendar .compact-month-count{font-size:8px;margin-top:3px}.compact-academic-calendar .compact-month-head>span{font-size:8px;padding:3px}.compact-calendar-hint{margin-top:8px!important}
.student-coursework,.student-tracker-summary{margin-top:16px}.student-coursework-items{display:grid;gap:6px;margin-top:9px}.student-coursework-row{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:#fff}.student-coursework-row>span{font-size:11px;font-weight:800;color:#5d7088}.student-coursework-row.status-accepted{background:#f3fbf7;border-color:#ccebdd}.student-coursework-row.status-remarks,.student-coursework-row.status-revision{background:#fffaf0;border-color:#f0dfba}.student-coursework-final{margin-top:9px}.student-coursework-compact{display:flex;justify-content:space-between;gap:12px;margin-top:12px;border-top:1px solid #e8eef4;padding-top:11px;font-size:12px}.student-coursework-compact span{color:var(--muted)}.student-tracker-summary{display:grid;gap:3px;border:1px solid var(--line);border-radius:11px;padding:10px 11px}.student-tracker-summary>span,.student-tracker-summary>small{color:var(--muted);font-size:11px}
.manual-applicant-help{margin-top:8px}.manual-applicant-help .btn{background:transparent;border-color:transparent;padding-left:0;color:#4f6d8d}.public-verify-field small{line-height:1.45}.student-add-panel{position:sticky;top:10px;z-index:2;border-color:#b8d2ee;background:#f8fbff}
@media(max-width:1050px){.home-week-primary,.home-status-card,.home-courses-card,.compact-academic-calendar{grid-column:span 12}.compact-academic-calendar .compact-month-head,.compact-academic-calendar .compact-month-body{min-width:0}.compact-academic-calendar{overflow:visible}.compact-academic-calendar .compact-month-head,.compact-academic-calendar .compact-month-week{grid-template-columns:34px repeat(7,minmax(38px,1fr))}}
@media(max-width:720px){.student-top>div:last-child{display:flex;align-items:center;gap:6px;max-width:58%;text-align:right}.student-top #studentName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-logout{margin-left:4px}.student-nav{gap:5px}.student-nav button{padding:9px 13px}.student-coursework-row{align-items:flex-start}.student-coursework-row>span{max-width:42%;text-align:right}.student-coursework-compact{display:grid}.student-add-panel{position:static}.compact-academic-calendar .compact-month-head,.compact-academic-calendar .compact-month-week{grid-template-columns:30px repeat(7,minmax(34px,1fr))}.compact-academic-calendar .compact-month-day{min-height:38px}}

/* r11.2 final consolidation — global rewards + safe maintenance */
.reward-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.reward-hub-course{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.reward-hub-course h3{margin:4px 0 3px}.reward-hub-campaigns{display:grid;gap:7px;margin:12px 0}.reward-hub-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:#f6f9fc}.reward-hub-row small{display:block;color:var(--muted);margin-top:3px}.maintenance-session-list{display:grid;gap:7px;margin:10px 0 14px}.maintenance-session-row{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.maintenance-session-row span{display:grid;gap:3px}.maintenance-session-row small{color:var(--muted)}.future-attendance-note{margin:8px 0 10px}.future-attendance-note p{margin:4px 0 0}.system-maintenance-tools .system-foot-actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:900px){.reward-hub-grid{grid-template-columns:1fr}}


/* r11.2.1 — production QA bugfix: readable home + direct controls */
.home-week-primary .weekbar{align-items:stretch}
.home-week-primary .day{min-height:112px;padding:10px 9px;gap:4px}
.home-week-primary .day.week-day-empty{min-height:84px;background:#fafbfd;border-color:#edf1f5;color:#8a98a9}
.home-week-primary .day.week-day-empty.weekend{background:#fffafa}
.home-week-primary .week-session{display:grid;gap:2px;padding:8px 7px;font-size:inherit;white-space:normal}
.home-week-primary .week-session.session-type-lecture{background:#e3f0ff!important;border:1px solid #9bc4f2;box-shadow:inset 4px 0 0 #397fca}.home-week-primary .week-session.session-type-practice{background:#def7ef!important;border:1px solid #94d8c6;box-shadow:inset 4px 0 0 #218b78}.home-week-primary .week-session.session-type-lab{background:#fff0cf!important;border:1px solid #ecc87e;box-shadow:inset 4px 0 0 #b97810}.home-week-primary .week-session.session-type-lecture .week-session-main,.home-week-primary .week-session.session-type-lecture .week-session-course{color:#173f70}.home-week-primary .week-session.session-type-practice .week-session-main,.home-week-primary .week-session.session-type-practice .week-session-course{color:#116858}.home-week-primary .week-session.session-type-lab .week-session-main,.home-week-primary .week-session.session-type-lab .week-session-course{color:#775000}.home-week-primary .week-session.session-type-lecture .week-session-meta{color:#3d6f9e}.home-week-primary .week-session.session-type-practice .week-session-meta{color:#3b887a}.home-week-primary .week-session.session-type-lab .week-session-meta{color:#926a1f}
.home-week-primary .week-session-main{font-size:13px;line-height:1.18;font-weight:850;color:#183b62;white-space:nowrap}
.home-week-primary .week-session-main .week-group-link{font-size:inherit;font-weight:inherit}
.home-week-primary .week-session-course{font-size:12px;line-height:1.25;font-weight:760;color:#223c59;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.home-week-primary .week-session-meta{font-size:10.5px;line-height:1.2;color:#6c7e92;font-weight:650}
.compact-academic-calendar .compact-month-day>strong{font-size:13px}
.compact-month-groups{display:grid;gap:1px;margin-top:3px;min-width:0}
.compact-month-groups>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;line-height:1.16;font-weight:850;color:#2c669e}
.compact-month-more{display:block;margin-top:1px;font-size:8px;line-height:1;color:#60758d;font-weight:850}
.reward-hub-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.reward-hub-row .grow{min-width:0}.diploma-year-danger{margin-top:18px;padding-top:14px;border-top:1px solid #f0d3d3}.diploma-year-danger>strong{display:block;margin-bottom:4px}
@media(max-width:720px){.home-week-primary .day{min-height:100px}.home-week-primary .day.week-day-empty{min-height:72px}.home-week-primary .week-session-main{font-size:12px}.home-week-primary .week-session-course{font-size:11.5px}.compact-month-groups>span{font-size:8px}.reward-hub-row{align-items:flex-start}.reward-hub-row-actions{justify-content:flex-start}}
.home-week-primary .week-session-main>span{display:inline!important;font-size:inherit!important;white-space:nowrap!important;overflow:visible!important;margin:0!important}

/* r11.2.2 — reliability + actionable attention + reward history */
.attention-action{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 10px;text-align:left;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px 11px;margin-top:7px;color:var(--text);cursor:pointer}
.attention-action strong{min-width:0;font-size:12px;line-height:1.25}.attention-action>small{grid-column:1/-1;color:var(--muted);font-size:10.5px;line-height:1.35}.attention-action>span{grid-column:2;grid-row:1;color:#315f8d;font-size:10px;font-weight:850;white-space:nowrap}.attention-action.attention-session{border-color:#c8dcee;background:#f8fbff}
.attention-session-list{display:grid;gap:8px;margin-top:12px}.attention-session-choice{display:grid;gap:4px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;cursor:pointer;color:var(--text)}.attention-session-choice:hover{background:#f6f9fc;border-color:#aac5e1}.attention-session-choice strong{font-size:13px}.attention-session-choice span{font-size:11px;line-height:1.35;color:var(--muted)}
.diploma-delete-rule{display:grid;gap:3px;margin-top:9px}.diploma-delete-rule span{font-size:11px;line-height:1.4}
.reward-history-card{display:grid;gap:14px}.reward-history-course-tabs{display:flex;gap:6px;flex-wrap:wrap}.reward-history-course-tabs button{border:1px solid #dbe4ee;background:#fff;color:#53677e;border-radius:10px;padding:8px 11px;font-weight:800;cursor:pointer}.reward-history-course-tabs button.active{background:#173a63;border-color:#173a63;color:#fff}.reward-history-head{display:flex;align-items:center;justify-content:space-between;border:1px solid #dce6f0;background:#f8fbfe;border-radius:12px;padding:11px 13px}.reward-history-head strong,.reward-history-head span{display:block}.reward-history-head strong{font-size:14px}.reward-history-head span{margin-top:3px;font-size:11px;color:var(--muted)}.reward-history-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.reward-history-table td>small{display:block;max-width:520px;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}.reward-history-table td{vertical-align:top}
@media(max-width:1000px){.reward-history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.attention-action{grid-template-columns:1fr}.attention-action>span{grid-column:1;grid-row:auto;margin-top:3px}.reward-history-filters{grid-template-columns:1fr}.reward-history-course-tabs{overflow-x:auto;flex-wrap:nowrap}.reward-history-course-tabs button{white-space:nowrap}}

/* r11.2.5 draft — plain-language RPD and room correction flows */
.room-override-modal,.rpd-plan-modal{width:min(820px,98vw)}.room-course-context{display:grid;gap:3px;margin:14px 0;border:1px solid #cfe0f2;border-radius:13px;padding:11px 13px;background:#f5faff}.room-course-context strong{font-size:11px;color:#52708f;text-transform:uppercase;letter-spacing:.06em}.room-course-context span{font-weight:800;color:#183b62}.room-change-step{display:flex;gap:10px;align-items:flex-start;margin:18px 0 10px}.room-step-number{display:grid;place-items:center;flex:0 0 27px;height:27px;border-radius:50%;background:#173a63;color:#fff;font-size:13px;font-weight:850}.room-change-step h3{margin:1px 0 3px;font-size:15px}.room-change-step p{margin:0}.room-preview{margin:10px 0 13px;border:1px dashed #c9d7e6;border-radius:13px;padding:12px;background:#f8fbff;color:#586d84;font-size:12px;line-height:1.45}.room-preview>strong{display:block;color:#183b62;margin-bottom:7px}.room-preview-list{display:grid;gap:6px;margin:0;padding-left:18px}.room-preview-list li{padding-left:2px}.room-preview-list li span{display:block;color:#718399;margin-top:1px}.room-safety-note{margin:11px 0 0}.rpd-purpose{margin:14px 0}.rpd-semester-picker{margin:15px 0;border-top:1px solid #e1e8f0;border-bottom:1px solid #e1e8f0;padding:13px 0}.rpd-semester-picker>strong{font-size:14px}.rpd-semester-picker>p{margin:4px 0 9px}.rpd-semester-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.rpd-semester-option{display:grid;gap:3px;text-align:left;border:1px solid #cfddea;border-radius:12px;background:#fff;color:#29415e;padding:11px;cursor:pointer}.rpd-semester-option:hover{border-color:#8fb9e6;background:#f7fbff}.rpd-semester-option.active{border-color:#1769d2;background:#edf6ff;box-shadow:0 0 0 2px #dceeff}.rpd-semester-option b{font-size:14px}.rpd-semester-option span{font-size:11px;color:#62758a}.rpd-save-note{margin:12px 0!important}@media(max-width:720px){.rpd-semester-options{grid-template-columns:1fr}.room-override-modal,.rpd-plan-modal{padding:17px}.room-change-step{margin-top:15px}}

/* ===== LINEA Beta 6 r2 workflow polish ===== */
.home-today-anchor{display:inline-grid;grid-template-columns:auto auto;grid-template-areas:"tag date" "tag meta";column-gap:11px;align-items:center;margin:-4px 0 14px;padding:10px 14px;border:1px solid #b9d2ec;border-radius:14px;background:linear-gradient(135deg,#edf6ff,#fff);box-shadow:0 4px 15px rgba(27,92,156,.05)}
.home-today-anchor>span{grid-area:tag;align-self:stretch;display:grid;place-items:center;padding:0 9px;border-radius:9px;background:#173a63;color:#fff;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.home-today-anchor>strong{grid-area:date;font-size:20px;line-height:1.05;color:#102943}.home-today-anchor>small{grid-area:meta;color:#60738a;font-weight:700;text-transform:capitalize}.today-marker{display:inline-flex;margin-bottom:5px;padding:2px 6px;border-radius:999px;background:#173a63;color:#fff;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.day.today{border:2px solid #6ba6e1;background:#edf6ff;box-shadow:0 0 0 3px rgba(44,115,190,.06)}.compact-month-day.today{border:2px solid #347fc6!important;background:#eaf4ff!important;box-shadow:inset 0 0 0 2px rgba(52,127,198,.08)}.compact-month-day.today>strong{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#173a63;color:#fff;margin:-2px 0 2px}
.active-session-chip{margin-left:auto;border:1px solid #b9d2ec;background:#edf6ff;color:#173a63;border-radius:12px;padding:7px 11px;text-align:left;line-height:1.1;box-shadow:0 3px 12px rgba(20,50,84,.05)}.active-session-chip strong,.active-session-chip span{display:block}.active-session-chip strong{font-size:12px}.active-session-chip span{font-size:10px;margin-top:3px;color:#526b85}.active-session-chip:hover{background:#e2f0ff;border-color:#8eb9e2}
.session-section{margin-top:4px}.session-section-title,.session-past>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:11px;background:#f5f8fb;color:#28435f}.session-section-title span,.session-past>summary span{display:grid;place-items:center;min-width:27px;height:23px;border-radius:999px;background:#e5edf6;font-size:10px;font-weight:850}.session-past{margin-top:12px;border-top:1px solid #e3eaf2;padding-top:10px}.session-past>summary{cursor:pointer;list-style:none}.session-past>summary::-webkit-details-marker{display:none}.session-past>summary:before{content:'›';font-size:18px;transform:rotate(0deg);transition:.15s}.session-past[open]>summary:before{transform:rotate(90deg)}.session-past>summary strong{margin-right:auto}.session-row [data-session-edit]{white-space:nowrap}
.stream-builder{margin-top:12px}.stream-compact-card{margin-top:10px}.stream-group-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.stream-group-pills span{padding:5px 8px;border:1px solid #dce5ef;border-radius:999px;background:#f6f9fc;color:#425c76;font-size:11px;font-weight:750}.stream-free-groups{margin-top:12px}.service-note.attention{border-color:#e4c36f;background:#fffaf0}
.current-control-matrix th{text-align:center;vertical-align:top}.control-head{display:grid;gap:4px;justify-items:center}.control-head strong{white-space:normal}.mini-action{border:0;background:transparent;color:#316b9e;font-size:9px;font-weight:800;padding:2px 4px}.current-control-matrix .control-wide{min-width:120px}
.analytics-page{display:grid;gap:12px}.analytics-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.analytics-plan-grid,.analytics-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.analytics-plan-card,.analytics-module-card{border:1px solid #dfe7ef;border-radius:12px;padding:11px;background:#fafcfe}.analytics-plan-card strong,.analytics-plan-card b,.analytics-plan-card span,.analytics-module-card strong,.analytics-module-card span{display:block}.analytics-plan-card b{font-size:21px;margin:5px 0;color:#173a63}.analytics-plan-card span,.analytics-module-card span{font-size:10px;color:#6f8093}.analytics-module-score{display:flex;gap:7px;align-items:baseline;margin-top:8px}.analytics-module-score strong{font-size:24px;color:#173a63}.attendance-visuals{display:flex;align-items:center;gap:22px;margin:15px 0}.attendance-donut{--p:0;--a:0;--e:0;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#37a66f 0 calc(var(--p)*1%),#d95b57 calc(var(--p)*1%) calc((var(--p) + var(--a))*1%),#e8ae42 calc((var(--p) + var(--a))*1%) calc((var(--p) + var(--a) + var(--e))*1%),#7db8db calc((var(--p) + var(--a) + var(--e))*1%) 100%);position:relative}.attendance-donut:after{content:'';position:absolute;inset:18px;border-radius:50%;background:#fff}.attendance-donut span{position:relative;z-index:1;font-size:20px;font-weight:900;color:#173a63}.attendance-legend-r2{display:grid;gap:7px;font-size:12px;font-weight:750}.attendance-legend-r2 span:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.attendance-legend-r2 .present:before{background:#37a66f}.attendance-legend-r2 .absent:before{background:#d95b57}.attendance-legend-r2 .excused:before{background:#e8ae42}.attendance-legend-r2 .notified:before{background:#7db8db}.analytics-absent{color:#a82922;font-weight:850}
.coursework-final table th{text-align:center}.coursework-final table th:first-child{text-align:left}.readiness-cell{display:grid;gap:2px;min-width:92px}.readiness-cell strong{font-size:12px}.readiness-cell small{font-size:9px;color:#7c8897}.readiness-cell.ready strong{color:#087a55}.coursework-auto-summary{min-width:245px;white-space:normal;border-radius:9px;padding:8px 9px;font-size:10px;font-weight:720;line-height:1.35}.coursework-auto-summary.ok{background:#ecf9f2;color:#087a55}.coursework-auto-summary.warn{background:#fff7e3;color:#8a6000}.coursework-auto-summary.danger{background:#fff0ee;color:#a72c24}.defense-history{display:grid;gap:6px;margin:12px 0}.defense-history>div{display:flex;justify-content:space-between;gap:12px;border:1px solid #e1e8ef;border-radius:10px;padding:8px 10px}.defense-history span{color:#6e7e90;font-size:11px}.tracker-matrix th{text-align:center}.tracker-matrix th .tracker-col-code,.tracker-matrix th .tracker-col-title{width:100%;text-align:center}.tracker-matrix th:first-child{text-align:left}
.delete-course-status{border:1px solid #dde6ef;border-radius:13px;padding:13px;margin:14px 0}.delete-course-status.safe{background:#f3fbf7;border-color:#bee4d1}.delete-course-status.blocked{background:#fff6f2;border-color:#f0c5bb}.delete-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:11px 0}.delete-kpis span{display:grid;gap:1px;padding:8px;border:1px solid rgba(90,110,130,.14);border-radius:9px;background:rgba(255,255,255,.65);font-size:9px;color:#718096}.delete-kpis b{font-size:18px;color:#173a63}
@media(max-width:900px){.active-session-chip{margin-left:0}.analytics-plan-grid,.analytics-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-visuals{align-items:flex-start}.delete-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.home-today-anchor{display:grid}}
/* ===== LINEA Beta 6 r2 workflow polish end ===== */

/* ===== LINEA Beta 6 r3 visual system ===== */
/* Sidebar: one palette, explicit active state, no accidental special colour for Students. */
.nav button,.nav .nav-secondary{position:relative;color:#d7e4f0!important;transition:background .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}
.nav button:hover,.nav .nav-secondary:hover{background:rgba(71,143,214,.14)!important;color:#fff!important}
.nav button.active,.nav .nav-secondary.active{background:linear-gradient(90deg,rgba(51,127,204,.26),rgba(255,255,255,.09))!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(112,177,236,.2),0 6px 20px rgba(5,20,38,.08)}
.nav button.active::before,.nav .nav-secondary.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:#65b4ff;box-shadow:0 0 12px rgba(88,173,255,.72)}
.nav-section{color:#8fa9c4!important}.side-foot{color:#d7e4f0}.side-role{color:#9db2c8}.side-system,.logout{color:#b7c8da!important}

/* Home: one stretched today anchor, with week/parity as one coherent line. */
.home-today-anchor-r3{display:flex!important;align-items:stretch;width:min(700px,100%);margin:4px 0 16px!important;padding:0!important;border:1px solid #bad5ef!important;border-radius:14px!important;background:linear-gradient(135deg,#edf6ff 0%,#f9fcff 68%,#fff 100%)!important;box-shadow:0 5px 18px rgba(38,105,174,.08)!important;overflow:hidden}
.home-today-anchor-r3 .today-chip{display:flex!important;align-items:center;justify-content:center;min-width:94px;padding:12px 15px!important;border-radius:0!important;background:#173a63!important;color:#fff!important;font-size:10px!important;font-weight:900!important;letter-spacing:.09em;text-transform:uppercase}
.home-today-anchor-r3 .today-main{display:grid;gap:3px;align-content:center;padding:10px 16px;min-width:0}
.home-today-anchor-r3 .today-main strong{font-size:19px;line-height:1.05;color:#102943;text-transform:none}.home-today-anchor-r3 .today-main small{font-size:12px;color:#5c7189;font-weight:760;text-transform:capitalize}
/* Today should read as the primary day card, not merely a badge. */
.home-week-primary .day.today,.weekbar .day.today{border-color:#5aa7ea!important;background:linear-gradient(180deg,#f1f8ff,#fff)!important;box-shadow:0 0 0 2px rgba(67,151,224,.17),0 0 22px 5px rgba(62,161,239,.22),0 9px 24px rgba(25,94,151,.10)!important}
.compact-month-day.today{border-color:#68a9df!important;background:#eef7ff!important;box-shadow:0 0 0 1px rgba(64,145,214,.18),0 0 11px rgba(62,154,228,.14)!important}

/* Names in working group screens: patronymic/name is the teaching anchor. */
.student-name-two-line{display:inline-grid!important;gap:1px!important;line-height:1.14!important;vertical-align:middle}
.student-name-two-line .student-surname,.student-name-two-line>span.student-surname{font-size:11.5px!important;color:#6b7d91!important;font-weight:650!important;letter-spacing:0!important}
.student-name-two-line .student-given,.student-name-two-line>strong.student-given{font-size:14px!important;color:#173a63!important;font-weight:850!important}
.numbered-student-cell{display:grid;grid-template-columns:28px minmax(145px,1fr) auto;gap:8px;align-items:center;min-width:210px}.row-number{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#f0f4f8;color:#687b90;font-size:10px;font-weight:850;flex:0 0 auto}

/* Group module selection and settings. */
.activity-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.activity-choice{display:flex;gap:9px;align-items:flex-start;border:1px solid #dce6ef;border-radius:12px;padding:11px;background:#fff}.activity-choice input{margin-top:2px}.activity-choice span{display:grid;gap:3px}.activity-choice small{color:#718096;font-size:10px;line-height:1.3}.group-settings-list{display:grid;gap:9px;margin-top:14px}.group-settings-row{display:flex;align-items:center;gap:12px;border:1px solid #e0e7ef;border-radius:12px;padding:12px 13px}.group-settings-row small{display:block;margin-top:2px;color:#718096}.tags.compact{margin-top:6px}.tags.compact span{border-radius:999px;background:#eef4fb;color:#45657f;padding:4px 7px;font-size:9px;font-weight:750}

/* Current control: header and data cells share one exact grid. */
.r3-current-control-table{table-layout:fixed}.r3-current-control-table th,.r3-current-control-table td{text-align:center;vertical-align:middle}.r3-current-control-table th:first-child,.r3-current-control-table td:first-child{text-align:left;width:270px;min-width:270px;position:sticky;left:0;z-index:3;background:#fff}.r3-current-control-table thead th:first-child{background:#f8fafc;z-index:5}.r3-current-control-table th:not(:first-child),.r3-current-control-table td:not(:first-child){width:160px;min-width:160px}.r3-current-control-table input,.r3-current-control-table select{width:118px;max-width:100%;margin-inline:auto;text-align:center}.current-control-head{display:grid;justify-items:center;gap:5px}.current-control-head strong{text-align:center}.current-control-head .quick-actions{justify-content:center;margin:0}

/* Tracker editor and headers. */
.tracker-item-editor{table-layout:fixed}.tracker-item-editor th{text-align:center}.tracker-item-editor th:nth-child(1){width:50px}.tracker-item-editor th:nth-child(4){width:126px}.tracker-item-editor td:first-child{text-align:center}.tracker-item-editor input{width:100%;border:1px solid #d3deea;border-radius:8px;padding:7px 8px}.mini-stack{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}

/* Course project finalization: balanced six-column grid and compact status. */
.r3-coursework-final table{table-layout:fixed;min-width:1040px}.r3-coursework-final col.c-student{width:25%}.r3-coursework-final col.c-ready{width:11%}.r3-coursework-final col.c-defense{width:17%}.r3-coursework-final col.c-portfolio{width:13%}.r3-coursework-final col.c-summary{width:24%}.r3-coursework-final col.c-gradebook{width:10%}.r3-coursework-final th{text-align:center!important;vertical-align:middle}.r3-coursework-final th:first-child{text-align:left!important}.r3-coursework-final td{text-align:center;white-space:normal!important;vertical-align:middle}.r3-coursework-final td:first-child{text-align:left}.r3-coursework-final .readiness-cell{justify-items:center;min-width:0}.r3-coursework-final .coursework-final-cell{display:grid;place-items:center;gap:2px;width:100%;min-height:48px;border:1px solid #dce5ee;border-radius:10px;background:#fff;color:#35516d;padding:7px 8px;font-size:10px;font-weight:800}.r3-coursework-final .coursework-final-cell:hover:not(:disabled){border-color:#8fb8df;background:#f5faff}.r3-coursework-final .coursework-final-cell.eligible{border-color:#add9c4;background:#f2fbf6;color:#087a55}.r3-coursework-final .coursework-final-cell small{display:block;color:#7a8998;font-size:8px}.r3-coursework-final .coursework-auto-summary{display:inline-block;min-width:0!important;max-width:100%;padding:7px 9px!important;text-align:left;font-size:9.5px!important;line-height:1.35!important}
.r3-context-menu{z-index:280;min-width:210px;padding:7px;display:grid;gap:4px}.r3-context-menu button{width:100%;border:0;border-radius:8px;background:#fff;padding:8px 9px;text-align:left;color:#294b6c;font-size:11px;font-weight:720}.r3-context-menu button:hover{background:#edf5ff}.r3-context-menu button.danger{color:#a72c24;background:#fff8f7}

/* Templates / work programs / rollover. */
.template-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}.template-card{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid #dfe7ef;border-radius:13px;padding:13px;background:#fff}.template-card>div:first-child{min-width:0}.work-program-list{display:grid;gap:10px;margin-top:15px}.work-program-row{display:flex;gap:14px;align-items:center;border:1px solid #dfe7ef;border-radius:13px;padding:13px}.work-program-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* Reward wizard: progressively disclosed, not a technical wall. */
.reward-wizard-r3{width:min(860px,98vw)}.reward-wizard-section{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;padding:15px 0;border-top:1px solid #edf1f5}.reward-wizard-section:first-of-type{margin-top:10px}.reward-wizard-section .step-no{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#e9f3ff;color:#1769d2;font-weight:900}.reward-wizard-section h3{margin:2px 0 12px}.reward-rule-checks{display:grid;gap:8px;margin-top:10px}.advanced-settings{margin-top:12px;border:1px solid #dfe7ef;border-radius:10px;padding:9px 11px}.advanced-settings summary{cursor:pointer;font-weight:780;color:#4e657d}.advanced-settings .field{margin-top:10px}.reward-save{margin-top:12px}.service-note.warn{border-color:#ebc77e;background:#fff9e9}.badge.amber{background:#fff5d8;color:#8f6200}

/* Analytics: metrics must breathe instead of concatenating. */
.analytics-group-card,.analytics-student-row{line-height:1.35}.analytics-group-card .small,.analytics-student-row .small{line-height:1.45}.analytics-lesson-lines{display:grid;gap:7px}.analytics-lesson-line{display:grid;gap:2px;padding:5px 0;border-bottom:1px solid #edf1f5}.analytics-lesson-line:last-child{border-bottom:0}.analytics-lesson-line strong{font-size:11px}.analytics-lesson-line small{display:block;color:#718096}.analytics-table td{vertical-align:top}.analytics-table .student-name-two-line{min-width:150px}

/* Student check-in feedback history. */
.feedback-history-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:start;padding:9px 0;border-bottom:1px solid #edf1f5}.feedback-history-row:last-child{border-bottom:0}.feedback-history-emoji{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#f2f6fa;font-size:18px}.feedback-history-row small{display:block;color:#758399;margin-bottom:2px}.feedback-history-row p{margin:0;line-height:1.4}

@media(max-width:900px){.activity-choice-grid,.template-card-grid{grid-template-columns:1fr}.home-today-anchor-r3{width:100%}.work-program-row{align-items:flex-start;flex-direction:column}.work-program-actions{justify-content:flex-start}.r3-current-control-table th:first-child,.r3-current-control-table td:first-child{width:220px;min-width:220px}}
@media(max-width:620px){.home-today-anchor-r3 .today-chip{min-width:74px;padding-inline:10px!important}.home-today-anchor-r3 .today-main strong{font-size:16px}.home-today-anchor-r3 .today-main small{font-size:10px}.reward-wizard-section{grid-template-columns:1fr}.reward-wizard-section .step-no{display:none}}
/* ===== LINEA Beta 6 r3 visual system end ===== */


/* r3 final alignment: exact grid used by the live current-control markup. */
.r3-control-matrix{table-layout:fixed;min-width:760px}.r3-control-matrix th,.r3-control-matrix td{vertical-align:middle}.r3-control-matrix .row-no-head,.r3-control-matrix .row-no{width:46px;min-width:46px;text-align:center!important}.r3-control-matrix th.sticky-name,.r3-control-matrix td.sticky-name{width:260px;min-width:260px;text-align:left!important}.r3-control-matrix th:not(.row-no-head):not(.sticky-name),.r3-control-matrix td:not(.row-no):not(.sticky-name){width:170px;min-width:170px;text-align:center!important}.r3-control-matrix .control-head{display:grid;justify-items:center;gap:6px}.r3-control-matrix .control-head>strong{text-align:center;line-height:1.2}.r3-control-matrix .control-head-actions{display:flex;justify-content:center;gap:5px;flex-wrap:wrap}.r3-control-matrix .control-wide{display:block;width:122px;max-width:100%;margin-inline:auto;text-align:center}

/* RPD reconciliation preview. */
.rpd-check-grid{display:grid;gap:10px;margin:14px 0}.rpd-check-card{border:1px solid #dfe7ef;border-radius:13px;padding:12px;background:#fff}.rpd-check-card> .split small{display:block;margin-top:2px;color:#718096}.rpd-check-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.rpd-check-kpis>span{display:grid;gap:2px;justify-items:center;padding:8px;border-radius:10px;background:#f5f8fb;text-align:center}.rpd-check-kpis b{font-size:13px;color:#173a63}.rpd-check-kpis small{font-size:9px;color:#718096}.rpd-excess-list{display:grid;gap:6px;margin-top:10px;padding-top:9px;border-top:1px solid #edf1f5}.rpd-excess-row{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;border:1px solid #e3eaf1;border-radius:9px;background:#fbfdff}.rpd-excess-row span{display:grid;gap:2px}.rpd-excess-row small{color:#718096}

/* Slightly stronger but still calm current-day halo. */
.home-week-primary .day.today,.weekbar .day.today{box-shadow:0 0 0 2px rgba(67,151,224,.22),0 0 30px 8px rgba(62,161,239,.30),0 10px 26px rgba(25,94,151,.12)!important}
\n\n/* ===== LINEA Beta 6 r3.1 hotfix ===== */
/* In teaching tables the name + patronymic is the primary visual anchor. */
.student-name-two-line,.session-person-name,.journal-person-name,.person-two-line{line-height:1.12!important}
.student-name-two-line .student-surname,.session-person-name .student-surname,.journal-person-name .student-surname,.person-two-line .student-surname{display:block!important;font-size:10.5px!important;line-height:1.1!important;font-weight:560!important;color:#718096!important;letter-spacing:0!important;text-transform:none!important}
.student-name-two-line .student-given,.session-person-name .student-given,.journal-person-name .student-given,.person-two-line .student-given{display:block!important;margin-top:2px!important;font-size:14.5px!important;line-height:1.13!important;font-weight:900!important;color:#102a4c!important;letter-spacing:-.01em!important}
/* Upper date block: date on the left, I/II week as a separate fast-scanning signal. */
.home-today-anchor-r3{width:min(780px,100%)!important;display:grid!important;grid-template-columns:auto minmax(230px,1fr) minmax(160px,.48fr)!important;align-items:stretch!important}
.home-today-anchor-r3 .today-main{display:grid!important;align-content:center!important;padding:10px 16px!important}
.home-today-anchor-r3 .today-main small{text-transform:capitalize!important}
.home-today-anchor-r3 .today-week{display:grid;align-content:center;justify-items:center;gap:2px;padding:9px 16px;border-left:1px solid rgba(72,116,157,.18)}
.home-today-anchor-r3 .today-week strong{font-size:15px;line-height:1;font-weight:950;letter-spacing:.045em;white-space:nowrap}
.home-today-anchor-r3 .today-week small{font-size:9.5px;font-weight:780;white-space:nowrap}
.home-today-anchor-r3 .today-week.week-i{background:#eaf4ff;color:#145da0}
.home-today-anchor-r3 .today-week.week-ii{background:#eaf8f7;color:#176c70}
/* The outline already identifies the current weekday; do not repeat the word Today inside the week grid. */
.home-week-primary .today-marker{display:none!important}
@media(max-width:720px){.home-today-anchor-r3{grid-template-columns:auto 1fr!important}.home-today-anchor-r3 .today-week{grid-column:1/-1;border-left:0;border-top:1px solid rgba(72,116,157,.18);grid-template-columns:auto auto;justify-content:center;gap:10px}.home-today-anchor-r3 .today-week small{align-self:center}}
/* ===== LINEA Beta 6 r3.1 hotfix end ===== */


/* ===== LINEA Beta 6 r3.2 fix pack ===== */
.tracker-col-title-only{display:block;font-weight:800;line-height:1.14;font-size:12px;text-align:center;max-width:150px;margin:0 auto}
#systemStaffAccess .system-role-divider{height:1px;background:var(--line,#d8e2ee);margin:18px 0}
#systemStaffAccess .quick-actions{align-items:center;flex-wrap:wrap}
#systemStaffAccess .role-template-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.attendance-person .journal-person-name .student-surname{font-weight:560!important;color:#718096!important;font-size:10.5px!important;line-height:1.1!important}
.attendance-person .journal-person-name .student-given{font-weight:900!important;color:#102a4c!important;font-size:14.5px!important;line-height:1.13!important}
/* ===== LINEA Beta 6 r3.2 fix pack end ===== */


/* ===== LINEA Beta 6 r3.3 ===== */
/* Every real navigation item uses one typography token; section headers stay secondary. */
.nav button,.nav .nav-secondary{font-size:15px!important;font-weight:720!important;line-height:1.15!important}
/* Home decorative railway illustration. The asset is local (~300 KB WebP) and can be replaced independently. */
/* RPD reconciliation: explicit decisions rather than ambiguous checkboxes. */
.r33-rpd-modal{width:min(980px,98vw)}.r33-rpd-steps{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 14px}.r33-rpd-steps span{padding:6px 9px;border-radius:999px;background:#f0f4f8;color:#65778b;font-size:10px;font-weight:800}.r33-rpd-steps span.active{background:#e6f2ff;color:#1769d2}.r33-rpd-rule{display:grid;gap:9px;padding:13px;border:1px solid #cfe0f2;border-radius:13px;background:#f8fbff}.r33-rpd-section{margin-top:17px;padding-top:14px;border-top:1px solid #e7edf4}.r33-rpd-section h3{margin:0 0 3px}.r33-rpd-groups{display:grid;gap:9px;margin-top:10px}.r33-rpd-tail{display:grid;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid #edf1f5}.r33-rpd-tail-head{display:grid;gap:2px}.r33-rpd-tail-head small{color:#718096}.r33-rpd-decision{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,270px);gap:10px;align-items:center;border:1px solid #e2e9f1;border-radius:10px;padding:9px;background:#fbfdff}.r33-rpd-decision>div{display:grid;gap:2px}.r33-rpd-decision small{color:#718096}.r33-rpd-choice{width:100%;border:1px solid #cad6e2;border-radius:9px;background:#fff;padding:8px 9px;font-weight:720;color:#29415e}.r33-rpd-summary{margin:13px 0;padding:11px 12px;border-radius:12px;background:#f5f8fb;border:1px solid #e0e8f0}.r33-rpd-summary p{margin:4px 0 0}.r33-rpd-excluded-list{margin-top:8px}.r33-program-tags span{white-space:normal;line-height:1.3}
@media(max-width:1180px){.main.home-railway-mode::before{left:700px;right:16px;opacity:.42}}
@media(max-width:900px){.main.home-railway-mode::before{display:none}.r33-rpd-decision{grid-template-columns:1fr}.r33-rpd-modal{padding:17px}}
@media(max-width:720px){.nav button,.nav .nav-secondary{font-size:14px!important}}
/* ===== LINEA Beta 6 r3.3 end ===== */

/* Beta 6 r3.4: railway artwork is a background layer, never a standalone picture. */
.main.home-railway-mode{position:relative;isolation:isolate}
.main.home-railway-mode::before{content:"";position:absolute;z-index:0;top:50px;left:200px;right:30px;height:190px;background-image:url('/linea-railway-hero-approved.png?v=2.2.6');background-repeat:no-repeat;background-size:100% auto;background-position:right 60%;opacity:.86;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 12%,#000 30%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 12%,#000 30%,#000 100%)}
.main.home-railway-mode>.topbar,.main.home-railway-mode>#content{position:relative;z-index:1}
@media(max-width:1350px){.main.home-railway-mode::before{left:160px;right:20px;opacity:.80;background-size:100% auto;background-position:right 60%}}
@media(max-width:1050px){.main.home-railway-mode::before{display:none}}

/* ===== LINEA Beta 6 r4: practice workspace ===== */
.practice-campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.practice-campaign-card{cursor:pointer;display:grid;gap:15px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.practice-campaign-card:hover{border-color:#9dbfe6;box-shadow:0 12px 28px rgba(20,50,84,.07);transform:translateY(-1px)}.practice-card-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.practice-card-kpis .practice-kpi{padding:8px}.practice-card-kpis .practice-kpi b{font-size:16px}.practice-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px;border-top:1px solid #edf1f5}.practice-empty{grid-column:1/-1;text-align:left;padding:28px}.practice-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:15px}.practice-kpi{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.practice-kpi.good{background:#f2fbf6;border-color:#c9e9d8}.practice-kpi b{display:block;color:#173a63;font-size:22px;line-height:1.05}.practice-kpi span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.practice-page-head{align-items:flex-start}.practice-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.text-back{display:block;border:0;background:transparent;color:#52708f;padding:0;margin:0 0 7px;font-size:11px;font-weight:780}.text-back:hover{color:#1769d2}.practice-workspace{padding:15px}.practice-toolbar{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.2fr) minmax(160px,.9fr) minmax(200px,1.4fr) auto;gap:9px;align-items:end;margin-bottom:10px}.practice-filter-toggles{display:grid;gap:4px;align-self:center;padding-bottom:3px}.practice-filter-toggles .check-line{white-space:nowrap}.practice-table-summary{display:flex;gap:7px;align-items:center;margin:4px 0 9px}.practice-table-wrap{max-height:68vh}.practice-table{min-width:1320px}.practice-table th:nth-child(1),.practice-table td:nth-child(1){width:42px;text-align:center}.practice-table .sticky-name{min-width:220px}.practice-table th:nth-child(3){min-width:86px}.practice-table th:nth-child(4){min-width:235px}.practice-table th:nth-child(5){min-width:145px}.practice-table th:nth-child(6){min-width:250px}.practice-row-number{font-weight:850;color:#738196}.practice-student-link{display:grid;gap:4px}.practice-student-name{display:grid}.practice-department-badge{margin-top:6px}.practice-place-cell strong{line-height:1.35}.practice-assignment-button{display:-webkit-box;width:100%;max-width:290px;min-height:40px;border:1px dashed #cdd9e6;border-radius:9px;background:#fbfdff;color:#5f738a;text-align:left;padding:7px 9px;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.35}.practice-assignment-button.has-value{color:#29415e;border-style:solid;background:#fff}.practice-inline-select{min-width:122px;border:1px solid #ccd6e2;border-radius:8px;padding:7px;background:#fff}.practice-grade-select{min-width:66px}.practice-import-modal{width:min(1160px,98vw)}.practice-import-steps{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 14px}.practice-import-steps span{padding:6px 9px;border-radius:999px;background:#f0f4f8;color:#65778b;font-size:10px;font-weight:800}.practice-import-steps span.active{background:#e6f2ff;color:#1769d2}.practice-import-meta{margin-top:14px;padding:13px;border:1px solid #e0e8f0;border-radius:13px;background:#fbfdff}.practice-import-section{margin-top:17px;padding-top:15px;border-top:1px solid #e8edf3}.practice-import-section h3{margin:0 0 4px}.practice-supervisor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.practice-supervisor-map{border:1px solid #e1e8f0;border-radius:10px;padding:10px;background:#fff}.practice-supervisor-map>span{font-size:11px;font-weight:700;line-height:1.35;color:#3e536a}.practice-import-table{max-height:420px;margin-top:10px}.practice-import-table table{min-width:1160px}.practice-import-site{line-height:1.35;margin-bottom:4px}.practice-unresolved-row{background:#fffaf0}.practice-match-select{min-width:210px;border:1px solid #cdd7e3;border-radius:8px;padding:7px}.practice-update-note{margin-top:13px;border-style:solid;border-color:#bfd9f3;background:#f4f9ff}.practice-skip-unmatched{margin:13px 0;padding:10px;border:1px solid #f0d49a;border-radius:10px;background:#fffaf0}.practice-import-actions{display:flex;gap:8px;margin-top:15px}.practice-record-modal{width:min(900px,98vw)}.practice-record-sites{margin:14px 0}.practice-site-card{display:grid;gap:2px;padding:10px 11px;border:1px solid #e1e8f0;border-radius:10px;margin-top:7px;background:#fbfdff}.practice-site-card span,.practice-site-card small{color:#6f8194}.practice-assignment-editor{margin:15px 0}.practice-record-actions{display:flex;gap:8px;margin-top:13px}.practice-history-row{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,1.25fr);gap:12px;align-items:start;padding:9px 0;border-bottom:1px solid #edf1f5}.practice-history-row:last-child{border-bottom:0}.practice-history-row small{display:block;color:#7a899a;margin-top:2px}.practice-history-row>span{font-size:11px;color:#42576d;line-height:1.4}.practice-student-history-row{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid #edf1f5}.practice-student-history-row:last-child{border-bottom:0}.practice-student-history-row p{margin:5px 0 0;font-size:11px;color:#5f7288;line-height:1.4}.practice-student-history-status{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:220px}
@media(max-width:1100px){.practice-campaign-grid{grid-template-columns:1fr}.practice-card-kpis,.practice-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-filter-toggles{grid-column:1/-1;display:flex;gap:14px}.practice-supervisor-grid{grid-template-columns:1fr}}
@media(max-width:720px){.practice-kpi-grid,.practice-card-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-toolbar{grid-template-columns:1fr}.practice-filter-toggles{display:grid}.practice-import-actions,.practice-record-actions{flex-direction:column}.practice-history-row{grid-template-columns:1fr}.practice-student-history-row{display:grid}.practice-student-history-status{justify-content:flex-start;max-width:none}.mobile-nav{grid-template-columns:repeat(7,minmax(72px,1fr));overflow-x:auto}.mobile-nav button{min-width:72px}}
/* ===== LINEA Beta 6 r4: practice workspace end ===== */

/* ===== LINEA Beta 6 r4.1: global student search overlay ===== */
body>.search-results{position:fixed;right:auto;z-index:1000;overflow:auto;background:#fff;border:1px solid #d7e0ea;border-radius:14px;box-shadow:0 20px 60px rgba(18,35,59,.2);overscroll-behavior:contain}
body>.search-results .search-result{display:grid;gap:4px;padding:11px 13px;border-bottom:1px solid #edf2f7}
body>.search-results .search-result:last-child{border-bottom:0}
body>.search-results .search-result:hover,body>.search-results .search-result.keyboard-active{background:#f1f6fc}
.search-person{display:flex;align-items:center;gap:7px;min-width:0}.search-person-surname{font-size:11px;color:#738196;font-weight:650}.search-person strong{font-size:14px;color:#173a63;font-weight:850}.search-person .badge{padding:2px 6px;font-size:9px}
/* ===== LINEA Beta 6 r4.1: global student search overlay end ===== */

/* ===== LINEA Beta 6 r4.1: practice assignment import + table spacing ===== */
.practice-table th:nth-child(3){min-width:150px}.practice-table th:nth-child(4){min-width:285px}.practice-table th:nth-child(5){min-width:155px}.practice-table th:nth-child(6){min-width:280px}
.practice-group-cell{min-width:150px;white-space:normal}.practice-group-cell small{display:block;color:#7b8a9a;font-size:9px;line-height:1.15;margin-bottom:3px}.practice-group-cell strong{display:block;color:#173a63;font-size:12px}.practice-group-cell span{display:block;margin-top:4px;color:#66798e;font-size:10px}.practice-group-cell span b{color:#36526f}
.practice-place-cell{padding-left:15px!important;padding-right:15px!important;min-width:285px;line-height:1.4;overflow-wrap:anywhere}.practice-place-cell strong{display:block;line-height:1.4}.practice-place-cell small{display:block;margin-top:3px}
.practice-assignment-button{-webkit-line-clamp:2;max-width:330px;min-height:42px}
.practice-assignment-import-table{max-height:52vh;margin-top:10px}.practice-assignment-import-table table{min-width:1120px}.practice-assignment-import-table th:nth-child(1){min-width:190px}.practice-assignment-import-table th:nth-child(2){min-width:95px}.practice-assignment-import-table th:nth-child(3),.practice-assignment-import-table th:nth-child(4){min-width:330px}.practice-assignment-import-text{max-width:390px;max-height:86px;overflow:auto;white-space:pre-wrap;line-height:1.35;color:#40566e}
/* ===== LINEA Beta 6 r4.1: practice assignment import + table spacing end ===== */

/* ===== LINEA Beta 7 RC2: assignment generator workspace + acceptance fixes ===== */
.b7-workspace-backdrop{padding:14px}.b7-assignment-workspace{width:min(1600px,96vw);max-width:none;height:94vh;max-height:94vh;overflow:hidden;padding:0;display:flex;flex-direction:column}.b7-assignment-workspace>.modal-head{flex:0 0 auto;padding:18px 22px 14px;border-bottom:1px solid var(--line);background:#fff;z-index:3}.b7-workspace-scroll{flex:1;min-height:0;overflow:auto;padding:18px 22px 26px;overscroll-behavior:contain}.b7-kpis{grid-template-columns:repeat(6,minmax(0,1fr));margin:14px 0}.b7-deadline-row{display:flex;align-items:end;gap:10px;max-width:520px;margin:12px 0}.b7-deadline-row .field{flex:1}.b7-upload-field{margin-top:12px;max-width:560px}.b7-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:18px 0 8px}.b7-section-head strong{display:block;color:#173a63}.b7-section-head span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.b7-block{display:block;margin-top:4px}.b7-level-stack{display:grid;gap:5px;min-width:138px}.b7-level-stack strong{display:block;color:#173a63;line-height:1.2}.b7-level-stack>span:not(.badge){display:block;color:#6d7e91;font-size:10px;line-height:1.25}.b7-input-table-wrap{max-height:42vh}.b7-input-table{min-width:1120px}.b7-input-table th:nth-child(1){min-width:225px}.b7-input-table th:nth-child(5){min-width:230px}.b7-input-table th:nth-child(6){min-width:175px}.b7-input-table th:last-child{min-width:120px}.b7-row-attention{background:#fffaf0}.b7-manual-card{margin-top:12px;border-color:#a9c9ec;background:#f8fbff}.b7-import-summary{margin-top:14px}.b7-import-table-wrap{margin-top:10px;max-height:50vh}.b7-import-table{min-width:1320px}.b7-import-table th:nth-child(1){min-width:210px}.b7-import-table th:nth-child(2){min-width:230px}.b7-import-table th:nth-child(3){min-width:240px}.b7-import-table th:nth-child(4){min-width:105px}.b7-import-table th:nth-child(5){min-width:130px}.b7-import-table th:nth-child(6){min-width:235px}.b7-import-table th:nth-child(7){min-width:175px}.b7-inline-details{margin-top:6px}.b7-inline-details summary{cursor:pointer;color:#55708d;font-size:10px;font-weight:800}.b7-inline-details .status-select{margin-top:5px;min-width:210px}.b7-generation-actions{margin-top:14px}.b7-generation-actions .btn:disabled{opacity:.48;cursor:not-allowed}.b7-blocker-note{margin-top:10px;border-style:solid;border-color:#f0d49a;background:#fffaf0}.b7-blocker-note ul{margin:7px 0 0;padding-left:20px;color:#6c5320;font-size:11px;line-height:1.5}.b7-draft-note{margin-top:16px}.b7-group-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.b7-group-summary span{border:1px solid #e1e8f0;border-radius:10px;background:#fff;padding:8px 10px;color:#5f7186;font-size:10px;line-height:1.35}.b7-group-summary b{color:#29415e}.b7-draft-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:8px 0 10px}.b7-draft-overview-wrap{max-height:42vh}.b7-review-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;min-height:520px}.b7-review-list{border:1px solid var(--line);border-radius:13px;background:#fbfdff;overflow:auto;max-height:64vh}.b7-review-list button{display:grid;gap:4px;width:100%;border:0;border-bottom:1px solid #e8edf3;background:transparent;text-align:left;padding:10px 11px;color:#29415e}.b7-review-list button:last-child{border-bottom:0}.b7-review-list button:hover,.b7-review-list button.active{background:#eef5fd}.b7-review-list strong{font-size:11px}.b7-review-list span{font-size:9px;color:#718196}.b7-review-detail{border:1px solid var(--line);border-radius:13px;background:#fff;padding:14px;min-width:0}.b7-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.b7-review-head h3{font-size:18px;margin:2px 0 4px}.b7-review-head p{margin:0}.b7-review-nav{display:flex;align-items:center;gap:8px;white-space:nowrap}.b7-review-nav strong{font-size:11px;color:#64748b}.b7-review-cards .card{box-shadow:none}.b7-review-detail .three-col,.b7-review-detail .two-col{gap:9px}.b7-review-detail .status-select{min-width:100px;width:100%}
@media(max-width:1200px){.b7-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.b7-review-layout{grid-template-columns:250px minmax(0,1fr)}.b7-group-summary{grid-template-columns:1fr}}
@media(max-width:820px){.b7-workspace-backdrop{padding:0}.b7-assignment-workspace{width:100vw;height:100vh;max-height:100vh;border-radius:0}.b7-workspace-scroll{padding:14px}.b7-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.b7-review-layout{grid-template-columns:1fr}.b7-review-list{max-height:220px}.b7-review-head{display:grid}.b7-review-nav{justify-content:space-between}.b7-deadline-row{display:grid}.b7-group-summary{grid-template-columns:1fr}}
/* ===== LINEA Beta 7 RC2 end ===== */
.b7-level-presets{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbe7f4;border-radius:12px;background:#f8fbff;padding:10px 12px}.b7-level-presets>div:first-child{display:grid;gap:3px}.b7-level-presets .btn.active{background:#173a63;color:#fff;border-color:#173a63}.b7-level-presets .quick-actions{margin:0}
@media(max-width:820px){.b7-level-presets{display:grid}.b7-level-presets .quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Beta 7 RC5: correction/export workspace */
.b7-group-downloads a.disabled{pointer-events:none;opacity:.45}


/* Beta 7 RC8: course-project card clarity and column-first export selection */
.student-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.student-facts>div{min-width:0;padding:9px 10px;border:1px solid #e1e8f0;border-radius:10px;background:#fbfdff}
.student-facts>div.fact-wide{grid-column:1/-1}
.student-facts small{display:block;color:#748398;font-size:10px;line-height:1.2;margin-bottom:3px}
.student-facts strong{display:block;color:#24364d;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.student-course-project-card .student-facts{margin-top:12px}
.b7-export-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px;max-height:260px;overflow:auto;align-items:start}
.b7-export-student-column{display:grid;gap:6px;align-content:start}
.student-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.student-assignment-fact{min-width:0;padding:10px 12px;border:1px solid #dce5ee;border-radius:11px;background:#fbfcfe}
.student-assignment-fact.wide{grid-column:1/-1}
.student-assignment-fact span{display:block;color:#667085;font-size:11px;line-height:1.25;margin-bottom:4px}
.student-assignment-fact strong{display:block;color:#25364a;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.student-assignment-table{margin-top:10px}
.student-assignment-table th,.student-assignment-table td{white-space:nowrap}
.student-assignment-subtitle{margin-top:2px;color:#667085;font-size:11px}
@media(max-width:900px){.b7-export-student-grid{grid-template-columns:1fr}.student-course-project-card .student-facts{grid-template-columns:1fr}.student-course-project-card .student-facts>div.fact-wide{grid-column:auto}}
@media(max-width:520px){.student-assignment-grid{grid-template-columns:1fr}.student-assignment-fact.wide{grid-column:auto}.student-assignment-table{overflow-x:auto}.student-assignment-table table{min-width:430px}}

/* Beta 7 RC8 · platform provenance branding */
.side-platform-mark{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:2px;color:#8fa9c4;font-size:9.5px;line-height:1.35}.side-platform-mark strong{color:#d7e4f0;font-size:10px;letter-spacing:.08em}.side-platform-mark.hidden{display:none!important}.student-platform-footer{max-width:1120px;margin:0 auto;padding:2px 18px 28px;text-align:center;color:#8b98aa;font-size:11px;line-height:1.4}.student-platform-footer strong{color:#60738a;letter-spacing:.08em}.student-platform-footer span{margin-left:5px}.qr-brand strong:last-child{font-weight:700}@media(max-width:720px){.student-platform-footer{padding:2px 12px 22px;font-size:10.5px}.student-platform-footer strong,.student-platform-footer span{display:inline}.side-platform-mark{font-size:9px}}


/* LINEA Beta 8 DEV-1 · assignment generator constructor foundation */
.b8-generator-grid{grid-template-columns:1fr;gap:14px}.b8-generator-card{gap:14px}.b8-profile-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.b8-profile-facts>div{border:1px solid var(--line,#dbe3ec);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.b8-profile-facts small{color:var(--muted,#6b7a90)}.b8-catalog-list{display:grid;gap:4px;margin-top:8px}.b8-config-preview{max-height:320px;overflow:auto;white-space:pre-wrap;background:#f7f9fc;border:1px solid var(--line,#dbe3ec);border-radius:12px;padding:12px;font-size:12px}@media(max-width:900px){.b8-profile-facts{grid-template-columns:1fr 1fr}}@media(max-width:600px){.b8-profile-facts{grid-template-columns:1fr}}

.modal.xwide{width:min(1240px,98vw);max-height:94vh;overflow:auto}.b8-generator-card .quick-actions{margin-top:12px;align-items:center}.b8-generator-card table input,.b8-generator-card table select{min-width:0}

/* Beta 8 DEV-8 — assignment settings library and human-facing editor */
.b8-library{padding:18px}.b8-library-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}.b8-library-head h2{margin:2px 0 4px}.b8-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.b8-setting-card{display:flex;flex-direction:column;gap:14px;border:1px solid var(--line,#dbe3ec);border-radius:16px;padding:16px;background:#fff;min-width:0}.b8-setting-card.needs-attention{border-color:#e9c56f;box-shadow:0 0 0 2px rgba(231,184,66,.08)}.b8-setting-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.b8-setting-top h3{margin:3px 0 4px;font-size:18px;line-height:1.2}.b8-compare-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted,#6b7a90);white-space:nowrap}.b8-attention-strip{border:1px solid #e8c66f;background:#fff9e9;border-radius:12px;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer;color:inherit}.b8-attention-strip:hover{background:#fff4d8}.b8-attention-strip strong{color:#8a6200}.b8-attention-strip span{font-size:12px;color:#6b5a2f}.b8-composition{display:grid;grid-template-columns:1fr 1fr;gap:10px}.b8-composition>div,.b8-usage-block{border:1px solid var(--line,#dbe3ec);border-radius:12px;padding:12px;background:#fbfcfe}.b8-composition span,.b8-label{display:block;color:var(--muted,#6b7a90);font-size:11px;font-weight:760;text-transform:uppercase;letter-spacing:.04em}.b8-composition strong{display:block;margin-top:5px;line-height:1.35}.b8-composition small{display:block;margin-top:4px;color:var(--muted,#6b7a90)}.b8-usage-block strong{display:block;margin-top:4px}.b8-usage-block .tags{margin-top:8px}.b8-setting-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.b8-usage-list{display:grid;gap:10px}.b8-usage-row{display:flex;gap:14px;align-items:center;border:1px solid var(--line,#dbe3ec);border-radius:12px;padding:12px}.b8-usage-row.needs-attention{border-color:#e8c66f;background:#fffaf0}.b8-history-list{display:grid;gap:4px}

.b8-editor{display:grid!important;grid-template-columns:220px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;column-gap:18px;overflow:hidden!important;padding:0!important}.b8-editor>.modal-head{grid-column:1/-1;padding:20px 22px 16px;border-bottom:1px solid var(--line,#dbe3ec);margin:0}.b8-editor>.b8-wizard-tabs{grid-column:1;grid-row:2;display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:16px 10px 18px 18px;border-right:1px solid var(--line,#dbe3ec);overflow:auto;background:#fafbfd}.b8-editor>.b8-wizard-tabs .btn{justify-content:flex-start;text-align:left;width:100%;border-color:transparent;background:transparent}.b8-editor>.b8-wizard-tabs .btn.primary{background:#15233a;color:#fff;border-color:#15233a}.b8-step-context{font-size:11px;font-weight:800;color:#6b7a90;padding:3px 8px 8px;text-transform:uppercase;letter-spacing:.04em}.b8-editor>[data-b8-step-block]{grid-column:2;grid-row:2;overflow:auto;margin:16px 18px 16px 0!important;align-self:start;max-height:calc(94vh - 180px)}.b8-editor>.modal-actions{grid-column:1/-1;grid-row:3;margin:0;padding:12px 18px;border-top:1px solid var(--line,#dbe3ec);background:#fff;position:sticky;bottom:0;z-index:2}.b8-editor .service-note[data-b8-step-block]{background:#fff}.b8-document-step .advanced-settings{margin-top:8px}


@media(max-width:1050px){.b8-settings-grid{grid-template-columns:1fr}.b8-composition{grid-template-columns:1fr}.b8-editor{grid-template-columns:180px minmax(0,1fr)}}
/* Beta 8 DEV8 FIX2: assignment impact review. */
.b8-impact-list{display:grid;gap:10px;margin-top:10px}.b8-impact-student{border:1px solid #ecd49a;background:#fffdf7;border-radius:12px;padding:11px 12px}.b8-impact-student>div:first-child{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.b8-impact-student ul{margin:8px 0 10px;padding-left:20px;display:grid;gap:4px}.b8-before{text-decoration:line-through;color:#8a5f5f}.b8-after{font-weight:800;color:#245d3c}.b8-student-impact{grid-column:1/-1;border-color:#e5c36b;background:#fffaf0}.b8-student-impact ul{margin:8px 0 10px;padding-left:20px}.b8-impact-dot{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:999px;background:#fff0c2;color:#7a5600;font-size:10px;font-weight:900}.b7-review-list button.has-profile-impact{border-left:3px solid #d6a72b;background:#fffaf0}.b7-draft-overview-wrap tr.has-profile-impact td{background:#fffdf7}
.b8-impact-row td{background:#fffdf7}.b7-review-list button.needs-attention{border-left:3px solid #d6a72b;background:#fffaf0}.b8-student-impact{margin-bottom:14px}.b8-impact-changes{list-style:none;padding:0!important;margin:10px 0!important;display:grid;gap:7px}.b8-impact-changes li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #ead9a8;border-radius:10px;background:#fff}.b8-impact-diff{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.b8-impact-diff span:first-child{color:#8a5f5f;text-decoration:line-through}.b8-impact-diff span:last-child{font-weight:800;color:#245d3c}.b8-impact-actions{margin-top:10px}
/* Beta 8 DEV8 FIX3: decision-oriented assignment impacts. */
.b8-impact-change-card{border:1px solid #ead9a8;border-radius:11px;background:#fff;padding:10px 11px;display:grid;gap:7px}.b8-impact-change-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.b8-impact-change-head>div{display:grid;gap:2px}.b8-impact-change-head small{color:var(--muted)}.b8-impact-change-values{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}.b8-impact-change-values span{border-radius:8px;padding:7px 9px;background:#f6f8fb}.b8-impact-change-values .before{color:#7a4b4b}.b8-impact-change-values .after{font-weight:800;color:#245d3c}.b8-impact-change-actions{display:flex;gap:7px;flex-wrap:wrap}.b8-impact-info{border-color:#d8e3ef;background:#f8fbff}.b8-impact-info .b8-impact-change-values{display:block}.b8-impact-info .b8-impact-change-values span{display:block}.b8-campaign-adopt{margin-top:12px;border-color:#b7d3ef;background:#f4f9ff}.b8-manual-target{outline:3px solid rgba(23,105,210,.22);outline-offset:2px;transition:outline .2s ease}
/* ===== Beta 8 DEV8 FIX3: semantic assignment change review ===== */
.b8-impact-change-list{display:grid;gap:9px;margin-top:10px}.b8-impact-change-values span{display:grid;gap:2px}.b8-impact-change-values span small{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.b8-impact-arrow{color:var(--muted);font-size:16px}.b8-impact-info{margin-top:10px;padding:10px 11px;border:1px solid #d8e3ef;border-radius:10px;background:#f8fbff;display:grid;gap:8px}.b8-impact-info>strong{font-size:13px}.b8-impact-info>div{display:grid;grid-template-columns:minmax(130px,.6fr) minmax(0,1fr);gap:3px 10px;padding-top:7px;border-top:1px solid #e5edf5}.b8-impact-info>div:first-of-type{border-top:0;padding-top:0}.b8-impact-info>div b{font-size:12px}.b8-impact-info>div span{font-size:11px;color:#3d526a}.b8-impact-info>div small{grid-column:1/-1;color:var(--muted);line-height:1.35}.b8-campaign-impact{margin-bottom:12px}.b8-campaign-impact .quick-actions{align-items:center}@media(max-width:760px){.b8-impact-change-values{grid-template-columns:1fr}.b8-impact-arrow{transform:rotate(90deg);justify-self:center}.b8-impact-info>div{grid-template-columns:1fr}}

/* LINEA beta8 ui1 — removable source-data columns */
.source-field-head{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:7px;min-width:0;padding:0 2px}
.source-field-title{display:flex;min-width:0;flex-direction:column;align-items:center;line-height:1.18}
.source-field-delete{flex:0 0 auto;width:22px;height:22px;margin-top:-4px;margin-right:-5px;border:1px solid #d8e2ee;border-radius:7px;background:#fff;color:#718198;font:700 16px/18px system-ui,sans-serif;cursor:pointer;opacity:.68;transition:.15s ease}
.source-field-delete:hover{border-color:#e5a2a2;background:#fff4f4;color:#b42318;opacity:1}
.source-field-delete:focus-visible{outline:2px solid #75a7e8;outline-offset:2px;opacity:1}
.source-field-delete:disabled{cursor:wait;opacity:.35}
@media(max-width:760px){.source-field-delete{width:26px;height:26px;opacity:.86}}

/* LINEA 2.2.0 — central anonymous feedback hub */
.feedback-hub-filter-card{margin-bottom:14px}.feedback-hub-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end}.feedback-session-filter{grid-column:span 4}.feedback-filter-actions{display:flex;gap:8px;align-items:end}.feedback-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 14px}.feedback-kpi{padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(15,35,64,.035)}.feedback-kpi span,.feedback-kpi small{display:block;color:#6d7d91;font-size:12px}.feedback-kpi strong{display:block;margin:5px 0 2px;font-size:23px;color:#172b45}.feedback-analysis-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.feedback-dist-row{display:grid;grid-template-columns:minmax(130px,1.2fr) 2fr 32px;gap:9px;align-items:center;margin:10px 0;font-size:12px}.feedback-dist-bar{height:8px;border-radius:99px;background:#edf2f7;overflow:hidden}.feedback-dist-bar i{display:block;height:100%;border-radius:99px;background:#5d99df}.feedback-dist-row b{text-align:right}.feedback-comments{display:grid;gap:9px}.feedback-comments article{padding:13px 14px;border:1px solid #e3e9f0;border-radius:14px;background:#fafcff}.feedback-comments p{margin:0 0 7px;line-height:1.5}.feedback-comments small{color:#77869a}.mobile-nav [data-page="feedback"]{min-width:max-content}
@media(max-width:1200px){.feedback-hub-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.feedback-session-filter{grid-column:span 2}.feedback-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.feedback-analysis-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.feedback-hub-filters{grid-template-columns:1fr 1fr}.feedback-session-filter{grid-column:1/-1}.feedback-filter-actions{grid-column:1/-1}.feedback-kpis{grid-template-columns:1fr 1fr}.feedback-analysis-grid{grid-template-columns:1fr}.feedback-dist-row{grid-template-columns:1fr 1.5fr 28px}}

/* LINEA 2.2.5 — session-scoped feedback + restored approved hero */
.qr-eyebrow{color:#111827!important;font-weight:900;letter-spacing:.08em}.qr-session-title{color:#1766bd!important;font-weight:900}.qr-session-meta{color:#425b78!important;font-weight:700}.qr-instructions{margin-top:14px;display:grid;gap:4px}.qr-instructions .qr-hint{margin:0}.qr-hint-secondary{color:#7b8a9d!important}.qr-brand{margin-top:18px!important;padding-top:6px}.qr-presenter.projector-mode .qr-eyebrow{font-size:clamp(13px,1vw,18px);margin-bottom:4px}.qr-presenter.projector-mode .qr-session-title{font-size:clamp(30px,3.2vw,50px);color:#1766bd!important}.qr-presenter.projector-mode .qr-session-meta{font-size:clamp(17px,1.6vw,25px)!important;color:#344d6b!important;font-weight:750}.qr-presenter.projector-mode .qr-instructions{margin-top:1.2vh;gap:.35vh}.qr-presenter.projector-mode .qr-brand{margin-top:1.6vh!important}.feedback-hub-filter-card .btn.danger,#fbCleanup{white-space:nowrap}

/* LINEA 2.2.5 — approved 3240x520 railway panorama for the home header. */
.main.home-railway-mode::before{top:50px;left:650px;right:30px;height:190px;background-image:url('/linea-railway-hero-3240x520.png?v=2.2.6-railway-1');background-size:100% auto;background-position:center center;background-repeat:no-repeat;opacity:.96;-webkit-mask-image:none;mask-image:none}
@media(max-width:1500px){.main.home-railway-mode::before{left:500px;right:20px}}
@media(max-width:1050px){.main.home-railway-mode::before{display:none}}

/* LINEA 2.2.6 — clearer home status and warmer feedback selection UX. */
.home-session-lift-scope .session-row{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
@media(hover:hover) and (pointer:fine){.home-session-lift-scope .session-row:hover{transform:translateY(-2px);border-color:#a9c6e4;box-shadow:0 8px 20px rgba(20,50,84,.085)}}
.home-day-finished{display:grid;gap:4px;text-align:left;padding:12px 0 4px}.home-day-finished strong{color:#314b67}.home-day-finished span{font-size:11px;color:#7a899a}
.home-today-past{margin-top:10px}.home-today-past>summary{padding:9px 11px;background:#f7f9fc}.home-today-past>summary strong{font-size:12px}.home-past-session-list{padding-top:2px}.home-past-session-list .session-row{opacity:.78}.home-past-session-list .session-time{color:#60738a}

/* LINEA 2.3.0 — Schedule Foundation */
.schedule-page-head{align-items:flex-end}.schedule-head-actions{display:flex;gap:8px;flex-wrap:wrap}.schedule-control-card{padding:14px 16px;margin-bottom:14px}.schedule-controls{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.schedule-controls .field.compact,.schedule-subtoolbar .field.compact{min-width:230px;margin:0}.schedule-week-switch{margin-bottom:1px}.schedule-kpis{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.schedule-kpis span{display:flex;align-items:baseline;gap:5px;padding:7px 10px;border:1px solid #dfe7f0;border-radius:11px;background:#fafcff;color:#60738a;font-size:11px}.schedule-kpis b{font-size:15px;color:#213a57}.schedule-kpis .warn{border-color:#ebcf82;background:#fffaf0}.schedule-tabs{display:flex;gap:5px;margin-top:13px;border-top:1px solid #edf1f5;padding-top:10px;overflow-x:auto}.schedule-tabs button{border:0;background:transparent;padding:8px 11px;border-radius:9px;color:#60738a;font-weight:750;cursor:pointer;white-space:nowrap}.schedule-tabs button:hover{background:#f3f7fb;color:#274866}.schedule-tabs button.active{background:#173a63;color:#fff}.schedule-workspace{padding:14px;min-height:250px;overflow:hidden}.schedule-subtoolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:13px}.schedule-room-facts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.schedule-room-facts span{padding:6px 9px;border-radius:999px;background:#eef5fb;color:#48627d;font-size:11px}.schedule-free-count{display:flex;gap:9px;align-items:center;margin-left:auto;padding:7px 10px;border:1px solid #dce7f1;border-radius:12px;background:#f8fbff}.schedule-free-count strong{font-size:23px;color:#1c5e9c}.schedule-free-count span{font-size:10px;color:#6f7f91;line-height:1.25}.schedule-grid{display:grid;grid-template-columns:90px repeat(var(--schedule-days),minmax(150px,1fr));gap:1px;background:#dce5ee;border:1px solid #dce5ee;border-radius:14px;overflow:auto;min-width:780px}.schedule-grid-corner,.schedule-grid-day,.schedule-grid-time,.schedule-grid-cell{background:#fff}.schedule-grid-corner,.schedule-grid-day{position:sticky;top:0;z-index:3;padding:10px 8px;background:#f7f9fc;font-size:12px;font-weight:850;color:#304a66;text-align:center}.schedule-grid-corner{left:0;z-index:4}.schedule-grid-time{position:sticky;left:0;z-index:2;min-height:88px;padding:11px 8px;background:#f9fbfd;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px}.schedule-grid-time strong{font-size:14px;color:#1d3856}.schedule-grid-time span{font-size:10px;color:#7a8999;text-align:center}.schedule-grid-cell{min-height:88px;padding:5px;display:grid;gap:5px;align-content:start}.schedule-lesson{display:grid;gap:3px;width:100%;padding:8px 9px;border:1px solid #c9ddef;border-left:3px solid #4c91d3;border-radius:10px;background:#f2f8fe;color:#203c59;text-align:left;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.schedule-lesson.session-practice{border-left-color:#3ba97c;background:#f2fbf7}.schedule-lesson.session-lab{border-left-color:#9a76d2;background:#f8f5fd}.schedule-lesson.session-other{border-left-color:#8795a7;background:#f7f9fb}.schedule-lesson-top{display:flex;gap:5px;align-items:center;min-width:0}.schedule-lesson strong{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis}.schedule-lesson>span{font-size:10px;font-weight:750;color:#415c77;line-height:1.2}.schedule-lesson small{font-size:9.5px;line-height:1.25;color:#6a7d91}.schedule-teachers{overflow-wrap:anywhere}.schedule-conflict-dot{margin-left:auto;display:grid;place-items:center;min-width:17px;height:17px;border-radius:999px;background:#f7d981;color:#714f00;font-size:10px;font-weight:900}.schedule-compare-tag{margin-left:auto;padding:2px 5px;border-radius:999px;background:#dbeafd;font-size:9px;color:#235f9d}.schedule-lesson.compare-a{box-shadow:inset 0 0 0 1px #7eaee0}.schedule-lesson.compare-b{box-shadow:inset 0 0 0 1px #91c5aa}.schedule-lesson.compare-common{background:#fff8e8;border-color:#dfbd63;border-left-color:#d6a52c}.schedule-conflict-summary{margin-bottom:12px;border-color:#ecd28b;background:#fffaf0}.schedule-empty{margin:12px 0}.schedule-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.schedule-form-grid .span-2{grid-column:span 2}.schedule-relations{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.schedule-relations section{border:1px solid #e0e8f0;border-radius:13px;padding:12px;background:#fbfcfe;min-width:0}.schedule-relations h3{margin:0}.schedule-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px;max-height:210px;overflow:auto}.check-card{display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid #dce5ee;border-radius:9px;background:#fff;font-size:11px;color:#38516c;cursor:pointer}.check-card:has(input:checked){border-color:#83afd9;background:#f2f8fe}.check-card input{margin:0}.schedule-personal-box{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:14px 0;padding:12px;border:1px solid #cfe0f0;border-radius:13px;background:#f7fbff}.schedule-personal-box>div:first-child{margin-right:auto}.schedule-personal-box p{margin:3px 0 0}.mobile-nav [data-page="schedule"]{min-width:max-content}
@media(hover:hover) and (pointer:fine){.schedule-lesson:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(24,61,98,.10);border-color:#8fb6dc}}
@media(max-width:1100px){.schedule-kpis{margin-left:0;width:100%}.schedule-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-relations{grid-template-columns:1fr}.schedule-grid{min-width:720px}.schedule-workspace{overflow-x:auto}}
@media(max-width:760px){.schedule-page-head{display:grid;gap:10px}.schedule-control-card{padding:11px}.schedule-controls{display:grid;grid-template-columns:1fr;gap:9px}.schedule-controls .field.compact,.schedule-subtoolbar .field.compact{min-width:0;width:100%}.schedule-week-switch{display:grid;grid-template-columns:repeat(3,1fr)}.schedule-kpis{display:grid;grid-template-columns:1fr 1fr}.schedule-tabs{margin-left:-3px;margin-right:-3px}.schedule-workspace{padding:10px}.schedule-grid{display:none}.schedule-workspace .schedule-grid+*{display:block}.schedule-form-grid{grid-template-columns:1fr}.schedule-form-grid .span-2{grid-column:auto}.schedule-check-grid{grid-template-columns:1fr}.schedule-relations{margin:10px 0}.schedule-subtoolbar{display:grid;grid-template-columns:1fr}.schedule-free-count{margin-left:0}.schedule-personal-box{display:grid;align-items:stretch}.schedule-workspace:has(.schedule-grid){overflow:visible}.schedule-grid::after{content:'На телефоне используйте карточки через фильтры преподавателя или аудитории.';display:block}.schedule-page-head h1{margin-bottom:3px}}
.schedule-mobile-list{display:none}.schedule-mobile-list section{display:grid;gap:7px}.schedule-mobile-list section+section{margin-top:15px}.schedule-mobile-list h3{margin:0 0 2px;color:#263f5b}.schedule-mobile-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:7px;align-items:stretch}.schedule-mobile-time{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dce5ee;border-radius:10px;background:#f8fafc}.schedule-mobile-time strong{font-size:14px}.schedule-mobile-time span{font-size:9px;color:#738399}
@media(max-width:760px){.schedule-grid{display:none!important}.schedule-mobile-list{display:block}.schedule-grid::after{display:none}}

/* LINEA 2.3.1 · Schedule Import & Directory */
.schedule-person-facts{display:flex;gap:7px;flex-wrap:wrap;align-items:center;min-height:37px;padding:6px 9px;border:1px solid #e1e8f0;border-radius:11px;background:#fafcff}.schedule-person-facts strong{font-size:12px;color:#263f5b}.schedule-person-facts span{font-size:10px;color:#6a7c90}.schedule-compare-pending{margin-left:auto;max-width:360px;padding:8px 10px;border:1px solid #e1e8f0;border-radius:11px;background:#fafcff;color:#6a7c90;font-size:10px;line-height:1.35}.schedule-quick-room{margin-top:6px}.check-card small{display:block;margin-top:2px;color:#7a8998;font-size:9px;line-height:1.15}.schedule-import-start{display:grid;gap:16px}.schedule-import-intro{display:flex;gap:20px;justify-content:space-between;align-items:flex-start}.schedule-import-intro h2{margin:2px 0 5px}.schedule-import-safety{display:grid;gap:3px;min-width:270px;padding:11px 13px;border:1px solid #cfe1f2;border-radius:13px;background:#f6fbff;color:#36526f}.schedule-import-safety strong{font-size:12px}.schedule-import-safety span{font-size:10px;color:#6b8197}.schedule-import-form{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr) auto;gap:12px;align-items:end;padding:14px;border:1px solid #e0e8f0;border-radius:14px;background:#fbfcfe}.schedule-import-form .span-2{min-width:0}.schedule-import-history{display:grid;gap:7px}.schedule-import-history h3{margin:3px 0}.schedule-import-history-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;border:1px solid #e2e9f0;border-radius:11px;background:#fff}.schedule-import-history-row>div{display:grid;gap:2px}.schedule-import-history-row small{color:#76879a}.schedule-import-preview{display:grid;gap:14px}.schedule-import-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.schedule-import-summary>div{display:grid;gap:2px;padding:10px 12px;border:1px solid #dfe7ef;border-radius:12px;background:#fafcff}.schedule-import-summary strong{font-size:22px;color:#1c5d98}.schedule-import-summary span{font-size:10px;color:#718397}.schedule-import-summary .warn{border-color:#ead08a;background:#fffaf0}.schedule-import-columns{display:grid;grid-template-columns:1.35fr 1fr;gap:12px}.schedule-import-columns section,.schedule-import-pairs,.schedule-import-missing{padding:12px;border:1px solid #e0e8f0;border-radius:13px;background:#fbfcfe}.schedule-import-columns h3,.schedule-import-pairs h3,.schedule-import-missing h3{margin:0}.schedule-import-entities{display:grid;gap:7px;margin-top:9px}.schedule-import-entity{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #e0e7ef;border-radius:10px;background:#fff}.schedule-import-entity>div{display:grid;gap:2px}.schedule-import-entity small{color:#77889a;font-size:9.5px}.schedule-import-entity>span,.schedule-import-entity div>span{font-size:10px;color:#65809a}.schedule-import-entity.new{border-color:#bad8ef;background:#f7fbff}.schedule-import-entity.changed{border-color:#ead08a;background:#fffaf0}.schedule-import-entity.warn{border-color:#e5b5b5;background:#fff8f8}.schedule-import-entity.ok{border-color:#cfe6da;background:#f7fcf9}.schedule-import-entity select{min-width:210px}.schedule-import-pairs .table-wrap{margin-top:10px;max-height:520px}.schedule-import-pairs table{min-width:1060px}.schedule-import-pairs th{position:sticky;top:0;z-index:1;background:#f5f8fb}.schedule-import-review-row{background:#fffaf4}.schedule-import-missing details{margin:10px 0}.schedule-missing-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,2fr);gap:12px;padding:7px 0;border-bottom:1px solid #edf1f4;font-size:10px}.danger-check{margin-top:10px;color:#8a3c3c}.schedule-import-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.schedule-import-actions .muted{margin-left:auto}.badge.amber{background:#fff3cf;color:#795a00}.service-note.error{border-color:#e8bcbc;background:#fff8f8;color:#7d3838}
@media(max-width:1000px){.schedule-import-form{grid-template-columns:1fr}.schedule-import-columns{grid-template-columns:1fr}.schedule-import-summary{grid-template-columns:repeat(3,1fr)}.schedule-import-intro{display:grid}.schedule-import-safety{min-width:0}.schedule-compare-pending{margin-left:0}}
@media(max-width:620px){.schedule-import-summary{grid-template-columns:1fr 1fr}.schedule-import-entity{grid-template-columns:1fr}.schedule-import-entity select{min-width:0;width:100%}.schedule-import-actions{display:grid}.schedule-import-actions .muted{margin-left:0}.schedule-missing-row{grid-template-columns:1fr}}
/* LINEA 2.3.1 HOTFIX1 · schedule import review wizard */
.schedule-import-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:8px;border:1px solid #e1e8ef;border-radius:13px;background:#f8fafc}.schedule-import-stepper button{border:0;border-radius:9px;padding:9px 8px;background:transparent;color:#6d7f91;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.schedule-import-stepper button.active{background:#173a61;color:#fff;box-shadow:0 3px 10px rgba(31,67,105,.14)}.schedule-import-wizard-card{display:grid;gap:14px;padding:14px;border:1px solid #e0e8f0;border-radius:14px;background:#fbfcfe}.schedule-import-wizard-card h2{margin:0 0 4px}.schedule-import-ready-ring{display:grid;place-items:center;min-width:86px;min-height:70px;border:1px solid #cfe1f2;border-radius:14px;background:#f6fbff}.schedule-import-ready-ring strong{font-size:25px;color:#1c5d98;line-height:1}.schedule-import-ready-ring span{font-size:9px;color:#6b8197}.schedule-import-ready-ring.warn{border-color:#ead08a;background:#fffaf0}.schedule-import-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.schedule-import-summary-grid>div{display:grid;gap:2px;padding:11px 12px;border:1px solid #e0e8f0;border-radius:12px;background:#fff}.schedule-import-summary-grid b{font-size:20px;color:#1c5d98}.schedule-import-summary-grid span{font-size:10px;font-weight:700;color:#40576e}.schedule-import-summary-grid small{font-size:9px;color:#7b8b9b}.schedule-import-entities-large .schedule-import-entity{align-items:flex-start}.schedule-import-professional{display:grid;gap:2px;margin-top:4px}.schedule-import-professional span{font-size:9.5px!important;color:#526b83!important}.schedule-import-professional b{color:#334b63}.schedule-profile-diff{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:5px}.schedule-profile-diff>div{padding:7px;border:1px solid #eadfb8;border-radius:9px;background:rgba(255,255,255,.7)}.schedule-import-resolution-list{display:grid;gap:9px}.schedule-import-resolution-list>h3{margin:0 0 2px}.schedule-import-resolution{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:12px;align-items:center;padding:11px 12px;border:1px solid #e0e7ef;border-radius:11px;background:#fff}.schedule-import-resolution>div{display:grid;gap:3px}.schedule-import-resolution strong{color:#243c55}.schedule-import-resolution span,.schedule-import-resolution small{font-size:9.5px;color:#728598}.schedule-import-resolution .field{margin:0}.schedule-import-other-issues{padding:11px 12px;border:1px solid #e0e8f0;border-radius:12px;background:#fff}.schedule-import-other-issues h3{margin:0 0 8px}.schedule-issue-pill{display:inline-flex;margin:0 6px 6px 0;padding:5px 8px;border-radius:999px;background:#fff3cf;color:#795a00;font-size:9.5px;font-weight:700}.schedule-issue-row{display:grid;gap:2px;padding:7px 0;border-bottom:1px solid #edf1f4;font-size:9.5px}.schedule-issue-row span{color:#748597}.service-note.success{border-color:#cfe6da;background:#f7fcf9;color:#365c49}.service-note.warn{border-color:#ead08a;background:#fffaf0;color:#6d5613}.block.blue{color:#1c6cab}.schedule-import-wizard-card .schedule-import-actions{padding-top:2px}
@media(max-width:1000px){.schedule-import-stepper{grid-template-columns:repeat(3,1fr)}.schedule-import-summary-grid{grid-template-columns:1fr 1fr}.schedule-import-resolution{grid-template-columns:1fr}.schedule-profile-diff{grid-template-columns:1fr}}
@media(max-width:620px){.schedule-import-stepper{grid-template-columns:1fr 1fr}.schedule-import-summary-grid{grid-template-columns:1fr}.schedule-import-ready-ring{min-width:72px}}

/* LINEA 2.3.1 HOTFIX3 · import operator controls */
.schedule-import-profile-edit{margin-top:7px;padding-top:6px;border-top:1px dashed #d9e2eb}.schedule-import-profile-edit summary{cursor:pointer;color:#315a80;font-size:9.5px;font-weight:700}.schedule-import-profile-edit[open] summary{margin-bottom:7px}.schedule-import-profile-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.schedule-import-profile-fields .field{margin:0}.schedule-import-profile-fields input{min-width:0}.schedule-import-bulk-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.schedule-import-resolution.is-skipped{border-color:#d8e0e8;background:#f8fafc}.schedule-resolution-note{color:#60768b!important}.schedule-import-excluded-row{background:#f7f9fb;color:#65798d}.schedule-import-excluded-row strong{color:#52677c}.schedule-import-excluded-row td{opacity:.86}
@media(max-width:760px){.schedule-import-profile-fields{grid-template-columns:1fr}}

/* LINEA 2.3.2 · RUT schedule source + operator-first import UX */
.schedule-source-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:12px}.schedule-source-card{display:grid;align-content:start;gap:12px;padding:14px;border:1px solid #dfe7ef;border-radius:14px;background:#fff}.schedule-source-card.primary{border-color:#bdd9ee;background:linear-gradient(180deg,#f8fcff,#fff)}.schedule-source-card h3{margin:1px 0 4px}.schedule-rut-code-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:9px;align-items:end}.schedule-rut-candidate{display:grid;gap:11px;padding:12px;border:1px solid #cee1f1;border-radius:12px;background:#f7fbff}.schedule-rut-candidate .split>div{display:grid;gap:2px}.schedule-rut-candidate .split span,.schedule-rut-candidate .split small{font-size:9.5px;color:#71869a}.schedule-rut-observed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.schedule-rut-observed>div{display:grid;gap:3px;padding:8px;border:1px solid #dfe8f0;border-radius:10px;background:#fff}.schedule-rut-observed b{font-size:9.5px;color:#36526d}.schedule-rut-observed span{font-size:9.5px;color:#667b8f;line-height:1.35}.schedule-rut-source{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}.schedule-rut-source:last-child{border-bottom:0}.schedule-rut-source>div:first-child{display:grid;gap:2px}.schedule-rut-source span,.schedule-rut-source small{font-size:9.5px;color:#718397}.schedule-rut-source.changed{margin:0 -7px;padding:10px 7px;border:1px solid #edce80;border-radius:11px;background:#fffaf0}.schedule-manual-upload{padding:11px 13px;border:1px solid #e0e7ef;border-radius:12px;background:#fafcff}.schedule-manual-upload summary{cursor:pointer;color:#365775;font-weight:800}.schedule-import-entity.is-disabled{opacity:.56;background:#f7f9fb;border-color:#e3e8ed}.schedule-import-include{margin-bottom:4px;font-weight:700;color:#365775}.schedule-import-other-issues .schedule-issue-row{padding:10px 0;font-size:10.5px;line-height:1.35}.schedule-import-other-issues .schedule-issue-row strong{font-size:11px;color:#2a435d}.schedule-import-other-issues .schedule-issue-row span{font-size:10px;line-height:1.4}.schedule-import-resolution-context{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}.schedule-import-resolution-context span{display:inline-flex;padding:3px 6px;border-radius:999px;background:#eef4f9;color:#516b84!important;font-size:9px!important}.schedule-source-status-note{font-size:9.5px;color:#718397;line-height:1.4}
@media(max-width:1000px){.schedule-source-grid{grid-template-columns:1fr}.schedule-rut-observed{grid-template-columns:1fr 1fr}.schedule-rut-code-row{grid-template-columns:1fr auto}}
@media(max-width:620px){.schedule-rut-observed,.schedule-rut-code-row{grid-template-columns:1fr}.schedule-rut-source{grid-template-columns:1fr}.schedule-rut-source .quick-actions{justify-content:flex-start}}

/* LINEA 2.3.2 HOTFIX1 — schedule source/parser acceptance fixes */
.schedule-rut-timetable-status{display:grid;gap:5px;margin-top:2px}.schedule-rut-timetable-status>div{display:flex;flex-wrap:wrap;gap:5px}.schedule-source-check{display:inline-flex!important;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px!important;font-weight:800}.schedule-source-check.ok{background:#eaf7ef;color:#31684a!important}.schedule-source-check.warn{background:#fff4d5;color:#795a00!important}
.schedule-import-other-issues-large{display:grid;gap:10px;padding:14px}.schedule-issue-section{border:1px solid #dfe7ef;border-radius:12px;background:#fbfcfe;overflow:hidden}.schedule-issue-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}.schedule-issue-section>summary::-webkit-details-marker{display:none}.schedule-issue-section>summary>span:first-child{display:grid;gap:2px}.schedule-issue-section>summary strong{font-size:12px;color:#233e59}.schedule-issue-section>summary small{font-size:10px;color:#718397}.schedule-issue-section[open]>summary{border-bottom:1px solid #e5ebf1;background:#f6f9fc}.schedule-issue-list{display:grid;padding:0 14px}.schedule-issue-card{display:grid;gap:8px;padding:13px 0;border-bottom:1px solid #e8edf2}.schedule-issue-card:last-child{border-bottom:0}.schedule-issue-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-issue-card-head>strong{font-size:11.5px;color:#263f59}.schedule-issue-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px}.schedule-issue-context span{font-size:10.5px;color:#61768a;line-height:1.4}.schedule-issue-context b{color:#334f69}.schedule-slot-issue strong{font-size:11.5px}.schedule-slot-issue span,.schedule-slot-issue small{font-size:10px!important}
@media(max-width:760px){.schedule-issue-context{grid-template-columns:1fr}.schedule-issue-card-head{align-items:flex-start;flex-direction:column}.schedule-import-other-issues-large{padding:10px}.schedule-issue-list{padding:0 10px}}


/* LINEA 2.3.3 HOTFIX2 · schedule review readability + login/sidebar polish */
.side-user{font-size:12.5px;font-weight:780;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.28;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:2.6em;overflow:hidden;word-break:normal}
.side-platform-mark{font-size:10px;line-height:1.42}.side-platform-mark strong{font-size:10.5px}.side-platform-mark span{max-width:190px}
.login-card{width:min(390px,calc(100vw - 32px))}.login-secondary-entry{border:0;background:transparent;color:#657a90;font:inherit;font-size:12px;font-weight:700;cursor:pointer;margin:4px auto 0;padding:7px 10px;text-decoration:underline;text-underline-offset:3px}.login-secondary-entry:hover{color:#173a61}
.schedule-import-preview{font-size:14px}.schedule-import-stepper button{font-size:12px;padding:10px 9px}.schedule-import-wizard-card{gap:16px;padding:17px}.schedule-import-wizard-card h2{font-size:22px;line-height:1.18}.schedule-import-wizard-card h3{font-size:16px}.schedule-import-wizard-card>.split .muted,.schedule-import-wizard-card>div>.muted{font-size:13px;line-height:1.45}.schedule-import-summary-grid span{font-size:12px}.schedule-import-summary-grid small{font-size:11px;line-height:1.35}.schedule-import-resolution{padding:14px 15px;gap:16px}.schedule-import-resolution strong{font-size:14px}.schedule-import-resolution span,.schedule-import-resolution small{font-size:12px;line-height:1.45}.schedule-issue-section>summary{padding:15px 16px}.schedule-issue-section>summary strong{font-size:15px}.schedule-issue-section>summary small{font-size:12px}.schedule-issue-list{padding:0 16px}.schedule-issue-card{gap:10px;padding:16px 0}.schedule-issue-card-head>strong{font-size:14px;line-height:1.35}.schedule-issue-context{gap:7px 20px}.schedule-issue-context span{font-size:12.5px;line-height:1.5}.schedule-issue-help{margin:0;color:#65798d;font-size:12.5px;line-height:1.5}.schedule-issue-resolution-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px;align-items:center;margin:14px 0;padding:14px 15px;border:1px solid #cfe0ef;border-radius:12px;background:#f7fbff}.schedule-issue-resolution-card>div{display:grid;gap:4px}.schedule-issue-resolution-card strong{font-size:14px;color:#24435f}.schedule-issue-resolution-card span{font-size:12px;color:#557087}.schedule-issue-resolution-card small{font-size:11.5px;line-height:1.45;color:#718397}.schedule-slot-issue strong{font-size:14px}.schedule-slot-issue span,.schedule-slot-issue small{font-size:12px!important;line-height:1.45}.schedule-import-pairs .table-wrap{max-height:560px}.schedule-import-pairs table{font-size:13px}.schedule-import-pairs th{font-size:11.5px;padding:10px 9px}.schedule-import-pairs td{padding:11px 9px;vertical-align:top;line-height:1.42}.schedule-import-pairs td strong{font-size:13px}.schedule-pair-course{display:grid;gap:5px;min-width:220px}.schedule-pair-course>strong{display:block}.schedule-pair-course>small{display:block;font-size:11.5px;line-height:1.4;margin:0}.schedule-week-pill{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:999px;background:#edf4fb;color:#315979;font-size:11.5px;font-weight:800;white-space:nowrap}.schedule-import-actions{gap:9px;flex-wrap:wrap}.schedule-import-actions .btn{min-height:38px}
@media(max-width:900px){.schedule-issue-resolution-card{grid-template-columns:1fr}.schedule-import-preview{font-size:13px}}


/* LINEA 2.3.3 HOTFIX3 · exact RUT weeks + owner review actions */
.side-platform-mark span{display:block;max-width:190px}.side-platform-mark span+span{margin-top:1px;color:#a8bfd6}.student-platform-footer span{display:block;margin-left:0}
.schedule-import-entity{padding:13px 14px;gap:12px}.schedule-import-entity>div{gap:4px}.schedule-import-entity>div>strong{font-size:14px;line-height:1.28}.schedule-import-entity>span,.schedule-import-entity div>span{font-size:12px;line-height:1.4}.schedule-import-entity small{font-size:11.5px;line-height:1.42}.schedule-import-professional span{font-size:11.5px!important;line-height:1.4}.schedule-import-profile-edit summary{font-size:12px;font-weight:750}.schedule-import-include{font-size:12px}
.schedule-resolution-controls{display:grid;gap:8px;min-width:320px}.schedule-issue-resolution-card.nonblocking{border-color:#bfe0d0;background:#f7fcf9}.nonblocking-zone{border-color:#cfe6da;background:#fbfffd}.schedule-issue-card .badge.green{white-space:nowrap}.schedule-issue-card-head{gap:12px}.schedule-issue-card-head>strong{font-size:15px}.schedule-issue-context span{font-size:13px;line-height:1.55}.schedule-import-pairs table{font-size:13.5px}.schedule-import-pairs td{font-size:13px}.schedule-week-pill{font-size:12px}
@media(max-width:900px){.schedule-resolution-controls{min-width:0}.schedule-import-entity>div>strong{font-size:13.5px}}

/* LINEA 2.3.3 HOTFIX3 — non-blocking unresolved-group clarity */
.schedule-import-warning-row{background:color-mix(in srgb,#f59e0b 5%,transparent)}
.schedule-pair-groups{display:flex;flex-direction:column;gap:4px;min-width:150px}
.schedule-inline-warning{display:block;color:#9a6700;font-size:11.5px;line-height:1.35;font-weight:650;white-space:normal}

/* LINEA 2.3.3 HOTFIX6: schedule import publication table spacing */
.schedule-import-pairs td .block{display:block;margin-top:4px;line-height:1.25}.schedule-import-pairs td:nth-child(2){min-width:68px}.schedule-import-pairs td:nth-child(7){min-width:78px}.schedule-import-pairs td:nth-child(8){min-width:104px}.schedule-import-pairs td:nth-child(2)>strong{display:block;margin-bottom:2px}.schedule-import-pairs td:nth-child(7)>small{margin-top:4px}

/* LINEA 2.3.3 HOTFIX7: week-aware schedule views */
.schedule-week-context{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:7px 10px;border:1px solid #dfe7f0;border-radius:10px;background:#f8fbfe;color:#667a90;font-size:11px}.schedule-week-context strong{color:#244868;font-size:12px}.schedule-week-context small{margin-left:2px;color:#7b8b9c}.schedule-lesson-top>strong{min-width:0;flex:1}.schedule-lesson-tags{margin-left:auto;display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.schedule-week-tag,.schedule-compare-tag{display:inline-flex;align-items:center;min-height:17px;padding:1px 5px;border-radius:999px;font-size:9px;font-weight:850;line-height:1;white-space:nowrap}.schedule-week-tag{background:#edf3f8;color:#49647f;border:1px solid #d7e2ec}.schedule-week-tag.week-1{background:#eaf4ff;color:#266293;border-color:#cfe3f5}.schedule-week-tag.week-2{background:#f4edff;color:#68479a;border-color:#dfd0f3}.schedule-week-tag.week-both{background:#eef8f2;color:#2f7253;border-color:#d3eadc}.schedule-week-tag.week-unknown{background:#fff7e8;color:#8a650f;border-color:#ead89e}.schedule-compare-tag{margin-left:0;background:#dbeafd;color:#235f9d}.schedule-lesson-tags+.schedule-conflict-dot{margin-left:0}.schedule-free-count span{min-width:118px}.schedule-week-context+.friendly-empty{margin-top:0}@media(max-width:760px){.schedule-week-context{align-items:flex-start}.schedule-week-context small{width:100%;margin-left:0}.schedule-lesson-tags{gap:3px}}


/* LINEA 2.3.3 HOTFIX8: schedule reconcile + comfortable desktop scale */
.schedule-grid{grid-template-columns:92px repeat(var(--schedule-days),minmax(178px,1fr))}
.schedule-grid-corner,.schedule-grid-day{padding:11px 9px;font-size:13px}
.schedule-grid-time{min-height:94px;padding:12px 8px;gap:4px}
.schedule-grid-time strong{font-size:15px}.schedule-grid-time span{font-size:10.8px;line-height:1.25}
.schedule-grid-cell{min-height:94px;padding:7px;gap:7px}
.schedule-lesson{gap:4px;padding:10px 11px;border-radius:11px}
.schedule-lesson strong{font-size:12.8px;line-height:1.28;white-space:normal;overflow:visible;text-overflow:clip}
.schedule-lesson .schedule-groups{font-size:11.5px;font-weight:800;line-height:1.28;color:#38536f}
.schedule-lesson .schedule-meta{font-size:10.8px;line-height:1.32;color:#61778e}
.schedule-lesson .schedule-teachers{font-size:10.6px;line-height:1.32;color:#6b7f93}
.schedule-week-tag,.schedule-compare-tag,.schedule-reconciled-tag{min-height:19px;padding:2px 6px;font-size:9.8px}
.schedule-reconciled-tag{display:inline-flex;align-items:center;border-radius:999px;background:#eef5fb;border:1px solid #d6e4ef;color:#4a6885;font-weight:850;line-height:1;white-space:nowrap}
.schedule-reconcile-note{padding-left:7px;border-left:1px solid #d7e2ec;color:#496984!important}
.schedule-conflict-dot{min-width:19px;height:19px;font-size:10.5px}
.schedule-week-context{font-size:11.8px;padding:8px 11px}.schedule-week-context strong{font-size:12.8px}
.schedule-person-facts strong{font-size:13px}.schedule-person-facts span,.schedule-room-facts span{font-size:11.5px}
@media(min-width:1500px){
  .schedule-grid{grid-template-columns:96px repeat(var(--schedule-days),minmax(196px,1fr))}
  .schedule-grid-time{min-height:102px}.schedule-grid-cell{min-height:102px;padding:8px;gap:8px}
  .schedule-lesson{padding:11px 12px;gap:5px}
  .schedule-lesson strong{font-size:13.8px}.schedule-lesson .schedule-groups{font-size:12.3px}.schedule-lesson .schedule-meta{font-size:11.6px}.schedule-lesson .schedule-teachers{font-size:11.3px}
  .schedule-grid-corner,.schedule-grid-day{font-size:13.5px}.schedule-grid-time strong{font-size:16px}.schedule-grid-time span{font-size:11.2px}
  .schedule-week-tag,.schedule-compare-tag,.schedule-reconciled-tag{font-size:10.2px;min-height:20px}
}
@media(max-width:1100px){.schedule-grid{min-width:780px}}
/* LINEA 2.3.3 HOTFIX9: RUT queue, department staging, split comparison */
.schedule-rut-observed{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-rut-department{display:block;color:#355b7d!important;font-weight:750}.schedule-rut-source-main{display:grid;gap:2px;min-width:0}.schedule-rut-queue-tools{display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,.8fr);gap:8px;margin-bottom:9px}.schedule-rut-queue-tools select{border:1px solid #cfd8e5;border-radius:10px;padding:9px 10px;background:#fff}.schedule-rut-queue-kpis{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}.schedule-rut-queue-kpis span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #dfe7f0;border-radius:999px;background:#f8fbfe;color:#5d7288;font-size:10.5px}.schedule-rut-queue-kpis b{color:#173f67;font-size:12px}.schedule-rut-queue-section{border:1px solid #e0e7ef;border-radius:11px;background:#fff;margin-top:8px;overflow:hidden}.schedule-rut-queue-section>summary{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;cursor:pointer;background:#f8fafc}.schedule-rut-queue-section>summary span{display:flex;align-items:center;gap:7px}.schedule-rut-queue-section>summary strong{font-size:12px}.schedule-rut-queue-section>summary small{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:#e7eef5;color:#45627e;font-weight:800}.schedule-rut-queue-section.changed>summary{background:#fff9eb}.schedule-rut-queue-section.needs>summary{background:#f3f8ff}.schedule-rut-queue-list{padding:0 9px}.schedule-rut-queue-list .schedule-rut-source{padding:9px 2px}.schedule-rut-queue-list .schedule-rut-source:last-child{border-bottom:0}.schedule-coteacher-actions{display:flex;gap:7px;flex-wrap:wrap}.schedule-coteacher-actions .btn:first-child{border-color:#d8dfeb;color:#536b83;background:#f8fafc}
.schedule-compare-head{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.schedule-compare-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}.schedule-compare-split>section{min-width:0;border:1px solid #dce5ee;border-radius:13px;background:#fbfdff;overflow:hidden}.schedule-compare-split>section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #dfe7ef;background:#f6f9fc}.schedule-compare-split>section>header strong{font-size:13px;color:#1d405f}.schedule-compare-split>section>header span{font-size:10px;color:#718399;text-align:right}.schedule-compare-mini-grid{display:grid;grid-template-columns:52px repeat(5,minmax(82px,1fr));min-width:0}.schedule-compare-mini-corner,.schedule-compare-mini-day{padding:6px 4px;border-right:1px solid #e3eaf1;border-bottom:1px solid #dce5ee;background:#f8fafc;text-align:center;font-size:9px;font-weight:850;color:#5c7186}.schedule-compare-mini-time{min-height:62px;padding:7px 3px;border-right:1px solid #e3eaf1;border-bottom:1px solid #e3eaf1;background:#fafcff;text-align:center;display:grid;align-content:start;gap:2px}.schedule-compare-mini-time strong{font-size:11px}.schedule-compare-mini-time span{font-size:8px;color:#7a8c9f}.schedule-compare-mini-cell{min-height:62px;padding:3px;border-right:1px solid #e7edf3;border-bottom:1px solid #e7edf3;display:grid;gap:3px;align-content:start;background:#fff}.schedule-compare-mini-card{position:relative;width:100%;border:1px solid #d9e4ee;border-left:3px solid #5a8ec7;border-radius:7px;background:#f7fbff;text-align:left;padding:5px 6px;display:grid;gap:2px;color:#29425d;overflow:hidden}.schedule-compare-mini-card.session-practice{border-left-color:#24a176;background:#f4fbf8}.schedule-compare-mini-card.session-lab{border-left-color:#9b6bd4;background:#faf6ff}.schedule-compare-mini-card.joint{box-shadow:inset 0 0 0 1px #e6bf58;background:#fff9ea}.schedule-compare-mini-card>div{display:flex;align-items:flex-start;gap:4px}.schedule-compare-mini-card strong{font-size:8.8px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.schedule-compare-mini-card span{font-size:8px;font-weight:750;line-height:1.2}.schedule-compare-mini-card small{font-size:7.5px;line-height:1.2;color:#6e8093}.schedule-compare-mini-card em{font-size:7.5px;font-style:normal;font-weight:850;color:#8a650f}.schedule-compare-mini-card .schedule-week-tag{font-size:7px;min-height:14px;padding:1px 4px;margin-left:auto}.schedule-compare-mini-conflict{position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#ffe2a8;color:#8a5b00;font-size:8px}.schedule-compare-free{margin-top:12px;padding:11px 12px;border:1px solid #d9e5ef;border-radius:12px;background:#f8fbfe;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.schedule-compare-free>div:first-child{display:grid;gap:2px;min-width:155px}.schedule-compare-free strong{font-size:12px;color:#244867}.schedule-compare-free>div:first-child span{font-size:9.5px;color:#72869a}.schedule-compare-free-chips{display:flex;gap:5px;flex-wrap:wrap}.schedule-compare-free-chips span{padding:4px 7px;border-radius:999px;background:#fff;border:1px solid #d7e2ec;color:#44647f;font-size:9.5px;font-weight:750}.schedule-compare-free-chips .none{background:#fff7e8;color:#8a650f;border-color:#ead89e}
@media(max-width:1250px){.schedule-compare-split{grid-template-columns:1fr}.schedule-compare-mini-grid{grid-template-columns:54px repeat(5,minmax(105px,1fr));overflow-x:auto}.schedule-compare-head{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.schedule-rut-queue-tools,.schedule-compare-head{grid-template-columns:1fr}.schedule-compare-free{grid-template-columns:1fr}.schedule-rut-observed{grid-template-columns:1fr}.schedule-compare-split>section{overflow-x:auto}.schedule-compare-mini-grid{min-width:620px}}

/* ===== LINEA 3.0.0-rc.2 — Identity & Organization Core ===== */
.identity-page-head{align-items:flex-start;gap:18px}.identity-page-head h1{margin-bottom:6px}.identity-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.identity-kpis>div{background:var(--surface,#fff);border:1px solid var(--border,#dfe5eb);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:3px}.identity-kpis strong{font-size:27px;line-height:1}.identity-kpis span{font-size:13px;color:var(--muted,#667085)}.identity-kpis .attention{border-color:#e7c36a;background:#fffaf0}.identity-toolbar-card{display:grid;grid-template-columns:minmax(320px,1.7fr) repeat(3,minmax(170px,.75fr));gap:12px;align-items:end;margin-bottom:12px}.identity-search-box>label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.identity-search-box>small{display:block;margin-top:6px;color:var(--muted,#667085)}.identity-autocomplete{position:relative}.identity-search-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:var(--surface,#fff);border:1px solid var(--border,#dfe5eb);border-radius:14px;box-shadow:0 18px 45px rgba(17,24,39,.16);padding:6px;max-height:330px;overflow:auto}.identity-search-results button{width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:10px;display:flex;flex-direction:column;gap:3px;color:inherit;cursor:pointer}.identity-search-results button:hover{background:var(--surface-2,#f4f6f8)}.identity-search-results button strong{font-size:14px}.identity-search-results button span,.identity-search-empty{font-size:12px;color:var(--muted,#667085)}.identity-search-empty{padding:12px}.identity-source-strip{display:flex;align-items:center;gap:12px;padding:8px 3px 13px;color:var(--muted,#667085);font-size:13px}.identity-health{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--text,#1d2939)}.identity-health i{width:9px;height:9px;border-radius:99px;background:#98a2b3}.identity-health.healthy i{background:#12b76a}.identity-health.degraded i{background:#f79009}.identity-health.outage i{background:#f04438}.identity-directory{padding:0;overflow:hidden}.identity-directory-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border,#e5e7eb)}.identity-person-list{display:flex;flex-direction:column}.identity-person-row{border:0;border-bottom:1px solid var(--border,#edf0f2);background:transparent;color:inherit;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;text-align:left;padding:14px 18px;cursor:pointer}.identity-person-row:last-child{border-bottom:0}.identity-person-row:hover{background:var(--surface-2,#f8fafb)}.identity-person-main{display:flex;flex-direction:column;gap:5px;min-width:0}.identity-person-main>strong{font-size:15px}.identity-person-main>span{font-size:12px;color:var(--muted,#667085);line-height:1.45}.identity-person-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;font-size:12px}.identity-person-drawer{width:min(720px,96vw)}.identity-person-section{padding:16px 20px;border-top:1px solid var(--border,#e5e7eb)}.identity-person-section:first-of-type{border-top:0}.identity-person-section h3{margin:0 0 10px}.identity-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.identity-facts>div{border:1px solid var(--border,#e5e7eb);border-radius:13px;padding:12px;display:flex;flex-direction:column;gap:4px}.identity-facts small,.identity-facts span{font-size:11px;color:var(--muted,#667085)}.identity-facts strong{font-size:14px}.identity-affiliation-list,.identity-check-list{display:flex;flex-direction:column;gap:8px}.identity-affiliation-list>div,.identity-check-list>div{border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:10px 12px;display:grid;gap:3px}.identity-affiliation-list span,.identity-affiliation-list small,.identity-check-list span,.identity-check-list small{font-size:12px;color:var(--muted,#667085)}.identity-change-card{border:1px solid #ead6a2;background:#fffaf0;border-radius:14px;padding:12px;margin-top:9px}.identity-change-card>strong{display:block;margin-bottom:9px}.identity-change-compare{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}.identity-change-compare>div{background:rgba(255,255,255,.72);border:1px solid rgba(187,149,54,.2);border-radius:10px;padding:9px;min-width:0}.identity-change-compare small{display:block;color:var(--muted,#667085);margin-bottom:4px}.identity-change-compare div div{display:grid;gap:2px}.identity-change-compare div div small{color:var(--muted,#667085)}.identity-migration-modal .check-line{margin:14px 0;display:flex;align-items:flex-start;gap:9px}.identity-migration-modal .check-line input{margin-top:3px}
@media(max-width:1100px){.identity-kpis{grid-template-columns:repeat(2,1fr)}.identity-toolbar-card{grid-template-columns:1fr 1fr}.identity-search-box{grid-column:1/-1}.identity-facts{grid-template-columns:1fr}.identity-person-row{grid-template-columns:1fr}.identity-person-meta{justify-content:flex-start}}
@media(max-width:680px){.identity-kpis{grid-template-columns:1fr 1fr}.identity-toolbar-card{grid-template-columns:1fr}.identity-search-box{grid-column:auto}.identity-change-compare{grid-template-columns:1fr}}
/* ===== Identity & Organization Core end ===== */
.schedule-rut-search-wrap{position:relative;min-width:320px}.schedule-rut-search-results{top:calc(100% + 5px);left:0;right:0}.schedule-rut-source.search-focus{outline:2px solid #5376a8;outline-offset:2px;transition:outline-color .2s ease}

/* LINEA 3.0.0-rc.2 schedule history */
.schedule-import-history{border:1px solid #dfe7ef;border-radius:12px;background:#fff;overflow:hidden}.schedule-import-history>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;list-style:none}.schedule-import-history>summary::-webkit-details-marker{display:none}.schedule-import-history>summary strong{font-size:12px;color:#284761}.schedule-import-history>summary span{font-size:10px;color:#718397}.schedule-import-history[open]>summary{border-bottom:1px solid #e7edf3;background:#f8fbfe}.schedule-import-history-list{max-height:420px;overflow:auto;padding:0 12px}


/* ===== LINEA 3.0.0-rc.2 — Owner teacher-view preview ===== */
.teacher-view-toggle{width:100%;margin:7px 0 4px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08);color:inherit;padding:9px 10px;font:inherit;font-size:11px;font-weight:750;text-align:left;cursor:pointer}.teacher-view-toggle:hover{background:rgba(255,255,255,.14)}
.teacher-view-banner{margin:12px 18px 0;padding:10px 13px;border:1px solid #c7d7ea;border-radius:13px;background:#f3f8ff;color:#244867;display:flex;align-items:center;justify-content:space-between;gap:16px}.teacher-view-banner>div{display:grid;gap:2px}.teacher-view-banner strong{font-size:12px}.teacher-view-banner span{font-size:10.5px;color:#607a94}.teacher-view-banner button{border:1px solid #b6cbe2;border-radius:9px;background:#fff;color:#315779;padding:7px 10px;font:inherit;font-size:10.5px;font-weight:800;white-space:nowrap;cursor:pointer}.teacher-view-banner button:hover{background:#eaf3fc}
@media(max-width:760px){.teacher-view-banner{margin:8px 10px 0;align-items:flex-start;flex-direction:column}.teacher-view-banner button{width:100%}}
/* ===== Owner teacher-view preview end ===== */


/* LINEA 3.0 RC3 — teacher-first shell + schedule consistency UX */
.brand-title-row{display:flex;align-items:center;gap:7px;min-width:0}.brand-role-badge{display:inline-flex;align-items:center;min-height:17px;padding:2px 6px;border:1px solid #35577b;border-radius:999px;background:#173a63;color:#dcecff;font-size:8px;font-weight:850;letter-spacing:.02em;white-space:nowrap}.brand-role-badge.owner{border-color:#7c6740;background:#3f3420;color:#ffe8b3}.teacher-view-banner{display:none!important}.teacher-view-toggle{width:100%;text-align:left}
.schedule-grid{max-height:calc(100vh - 300px);grid-template-columns:82px repeat(var(--schedule-days),minmax(160px,1fr))}.schedule-grid-time,.schedule-grid-cell{min-height:74px}.schedule-grid-time{padding:8px 6px}.schedule-grid-cell{padding:5px;gap:4px}.schedule-grid-corner,.schedule-grid-day{padding:8px 7px}.schedule-lesson{padding:6px 7px;gap:2px}.schedule-lesson strong{font-size:10.5px}.schedule-lesson>span{font-size:9.5px}.schedule-lesson small{font-size:9px}.schedule-grid-day{z-index:6}.schedule-grid-corner{z-index:8}.schedule-grid-time{z-index:5}
.schedule-compare-matrix{display:grid;grid-template-columns:48px repeat(5,minmax(90px,1fr)) 48px repeat(5,minmax(90px,1fr));min-width:1180px;border:1px solid #dce5ee;border-radius:13px;overflow:auto;max-height:calc(100vh - 310px);background:#e3eaf1}.schedule-compare-teacher-head{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;background:#edf5fc;border-bottom:1px solid #d5e2ee;color:#1d405f}.schedule-compare-teacher-head.left{grid-column:1/7}.schedule-compare-teacher-head.right{grid-column:7/13}.schedule-compare-teacher-head strong{font-size:12px}.schedule-compare-teacher-head span{font-size:9px;color:#718399}.schedule-compare-matrix .schedule-compare-mini-corner,.schedule-compare-matrix .schedule-compare-mini-day{position:sticky;top:36px;z-index:7}.schedule-compare-matrix .schedule-compare-mini-time,.schedule-compare-matrix .schedule-compare-mini-cell{min-height:64px}.schedule-compare-matrix .schedule-compare-mini-time{position:sticky;z-index:4;background:#fafcff}.schedule-compare-matrix .schedule-compare-mini-time:nth-child(12n + 1){left:0}.schedule-compare-matrix .schedule-compare-mini-cell{background:#fff}.schedule-compare-split{display:none!important}
@media(max-width:1100px){.schedule-grid{max-height:calc(100vh - 275px)}.schedule-compare-matrix{max-height:calc(100vh - 285px)}}
@media(max-width:760px){.schedule-grid{max-height:none}.schedule-compare-matrix{min-width:1180px;max-height:none}.brand-role-badge{font-size:7.5px}}


/* LINEA 3.0.0-rc.5 — academic responsibility and stable role hierarchy */
.brand .brand-l{width:40px;height:40px;min-width:40px;min-height:40px;flex:0 0 40px;border-radius:50%}
.brand-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.brand-copy>strong{line-height:1.05}
.brand-copy>small{display:block;margin-top:2px}
.brand-role-badge{display:block;margin-top:4px;max-width:190px;white-space:normal;line-height:1.15}

/* LINEA 3.0.0-rc.6 — acceptance hotfix */
.server-clock-stack{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.server-clock-stack .server-clock{margin-left:0}
.active-session-chip{margin-left:0!important;min-width:190px;padding:10px 14px!important;border-radius:13px!important;text-align:right!important}
.active-session-chip strong{font-size:14px!important;line-height:1.2}.active-session-chip span{font-size:11.5px!important;margin-top:4px!important}
.week-more{margin-top:4px;border:1px solid #c9d8e7;background:#f7fbff;color:#27557d;border-radius:9px;padding:5px 8px;font-size:9.5px;font-weight:800;cursor:pointer}
.week-more:hover{background:#eaf5ff;border-color:#9fc1df}
.notice-context{margin-top:4px!important;color:#456985!important;font-weight:700}
.management-hero h1{font-size:28px}.management-hero .eyebrow{font-size:10px;letter-spacing:.11em}
.management-context{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.management-context>span{padding:6px 9px;border:1px solid #d8e4ef;background:#f8fbfe;border-radius:9px;font-size:11px;font-weight:760;color:#36536f}
.management-role-line{font-size:12px;color:#60768d;margin-top:8px}.management-role-line strong{color:#173a63;font-size:13px}
.management-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.side-user{font-size:12px!important;font-weight:850}.side-role{font-size:10.5px!important;margin-top:3px}.brand-role-badge{font-size:9px!important;padding:4px 7px!important}
.schedule-free-slots{margin-top:14px;padding-top:12px;border-top:1px solid #dfe8f0}.schedule-free-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.schedule-free-pills span{padding:6px 8px;border:1px solid #d7e4ef;border-radius:999px;background:#f6fafe;font-size:10px;font-weight:750;color:#385b79}
.schedule-participation-note{margin-bottom:10px}.schedule-issue-list{display:grid;gap:7px}.schedule-issue-row{display:grid;gap:3px;text-align:left;width:100%;border:1px solid #dce6ef;background:#fff;border-radius:11px;padding:10px 12px;cursor:pointer}.schedule-issue-row:hover{border-color:#9ebedc;background:#f8fbff}.schedule-issue-row strong{color:#193e60}.schedule-issue-row span,.schedule-issue-row small{font-size:10px;color:#61778b}.schedule-issue-row small{font-weight:800;color:#8b5a00}
.identity-bulk-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.identity-bulk-summary>div{border:1px solid #dce6ef;background:#f8fbfe;border-radius:11px;padding:10px;display:grid;gap:3px}.identity-bulk-summary strong{font-size:22px;color:#173a63}.identity-bulk-summary span{font-size:9px;color:#6e8194}
@media(max-width:760px){.server-clock-stack{gap:4px}.active-session-chip{min-width:0}.management-source-grid,.identity-bulk-summary{grid-template-columns:1fr 1fr}}

/* RC6.1 acceptance fixes */
.home-info-column{display:flex;flex-direction:column;gap:14px;align-self:start}.home-info-column>.card{width:100%}.home-notices-card .notice-home-row{align-items:flex-start}.notice-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.student-login-entry{display:block;text-align:center;text-decoration:none;margin-top:10px}
.student-pair-shell{max-width:720px;margin:0 auto;padding:28px 18px}.student-pair-card{background:#fff;border:1px solid #dbe3ec;border-radius:26px;padding:26px;box-shadow:0 18px 50px rgba(15,39,71,.09)}.student-pair-qr{width:min(360px,80vw);height:min(360px,80vw);margin:20px auto;display:flex;align-items:center;justify-content:center}.student-pair-qr img,.student-pair-qr canvas{max-width:100%;height:auto}.student-pair-code{text-align:center;font-size:34px;letter-spacing:.16em;font-weight:800;color:#0f2747}.student-pair-device{text-align:center;color:#667085;margin:8px 0 16px}.student-pair-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.student-device-list{display:grid;gap:10px;margin-top:12px}.student-device-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid #e1e7ef;border-radius:14px}.student-device-row small{display:block;color:#667085}.student-device-badge{white-space:nowrap}.student-device-help{margin-top:14px;padding:14px;border-radius:14px;background:#f4f7fb;color:#344054}.management-hero+.home-today-anchor{margin-top:0}
@media(max-width:760px){.student-device-row{align-items:flex-start;flex-direction:column}}

/* LINEA 3.0.0-rc.6.2 — acceptance/access/operations polish */
.toast{font-size:16px!important;line-height:1.42!important;padding:15px 18px!important;max-width:min(620px,calc(100vw - 28px))!important;border-radius:14px!important;box-shadow:0 16px 44px rgba(18,35,59,.2)!important}
/* One semantic palette across home + schedule: lecture blue, practice green, lab lilac. */
.session-type-lab,.home-week-primary .week-session.session-type-lab{background:#f7f0ff!important;border-color:#d9c4f2!important;border-left-color:#8f63c9!important;color:#4d3571!important}
.schedule-type-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:850;margin-right:5px;border:1px solid transparent}
.schedule-type-badge.session-lecture{background:#edf5ff;color:#245f98;border-color:#cfe2f5}.schedule-type-badge.session-practice{background:#eaf8f1;color:#216c50;border-color:#c7e8d8}.schedule-type-badge.session-lab{background:#f4edff;color:#674398;border-color:#ddcff1}.schedule-type-badge.session-other{background:#f1f4f7;color:#53697c;border-color:#dce4eb}
.schedule-meta{display:flex!important;gap:4px;align-items:center;flex-wrap:wrap}.schedule-week-tag{font-size:10.5px!important;min-height:21px!important;padding:3px 7px!important}.schedule-personal-tag{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#fff7df;border:1px dashed #d6ad4e;color:#7a5810;font-size:10px;font-weight:850}.schedule-lesson.personal-overlay{outline:1px dashed #d6ad4e}
.schedule-readonly-modal .schedule-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.schedule-detail-grid>div{display:grid;gap:4px;padding:11px;border:1px solid #e0e8f0;border-radius:11px;background:#f9fbfd}.schedule-detail-grid>div>span{font-size:11px;color:#718398}.schedule-detail-grid>div>strong{font-size:14px}.schedule-detail-grid .span-2{grid-column:1/-1}
.schedule-personal-modal{max-width:720px}.schedule-personal-modal textarea{resize:vertical}.service-note.attention{border-color:#efd18b;background:#fff9e8}
.schedule-compare-matrix{font-size:1.06em}.schedule-compare-mini-time,.schedule-compare-mini-cell{min-height:76px!important}.schedule-compare-mini-card{padding:7px 8px!important}.schedule-compare-mini-card strong{font-size:10.5px!important}.schedule-compare-mini-card span{font-size:9.5px!important}.schedule-compare-mini-card small{font-size:9px!important}.schedule-compare-teacher-head strong{font-size:15px!important}
.schedule-free-slots{margin-top:14px;padding:0;border:1px solid #d9e5ef;border-radius:12px;background:#f8fbfe}.schedule-free-slots>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 14px;list-style:none}.schedule-free-slots>summary::-webkit-details-marker{display:none}.schedule-free-slots>summary>div{display:grid;gap:2px}.schedule-free-pills{padding:0 14px 14px}
.room-availability{margin-bottom:16px;padding:14px;border:1px solid #dce6ef;border-radius:14px;background:#fbfdff}.room-availability-days{display:grid;gap:12px;margin-top:12px}.room-availability-days article{border:1px solid #e1e8ef;border-radius:11px;overflow:hidden;background:#fff}.room-availability-days article>header{padding:8px 10px;background:#f3f7fb;font-weight:850}.room-availability-table{display:grid;grid-template-columns:72px repeat(var(--room-count,2),minmax(130px,1fr));overflow:auto}.room-av-corner,.room-av-room,.room-av-time,.room-av-cell{min-height:48px;padding:7px;border-right:1px solid #e6ecf2;border-bottom:1px solid #e6ecf2}.room-av-corner,.room-av-room{background:#f8fafc;font-size:11px;font-weight:850}.room-av-time{display:grid;align-content:center;text-align:center}.room-av-time span{font-size:10px;color:#728397}.room-av-cell{display:grid;align-content:center;gap:2px;text-align:left;border-top:0;border-left:0;background:#fff}.room-av-cell.free{background:#f3fbf7;color:#276c52}.room-av-cell.occupied{color:#314a64}.room-av-cell small{font-size:9.5px;color:#728397}.session-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.session-dot.session-lecture{background:#5e9bd5}.session-dot.session-practice{background:#36a57d}.session-dot.session-lab{background:#9564cc}
.home-date-strip{display:grid;grid-template-columns:110px minmax(240px,1fr) minmax(190px,.42fr);max-width:880px;border:1px solid #cfe0ef;border-radius:14px;overflow:hidden;background:#fff;margin:-5px 0 14px}.home-date-strip>div{padding:11px 16px;display:grid;align-content:center}.home-date-today{background:#173d67;color:#fff;font-weight:850;text-transform:uppercase;font-size:11px}.home-date-main{border-right:1px solid #d8e4ef}.home-date-main strong{font-size:17px}.home-date-main span,.home-date-week span{font-size:11px;color:#728398}.home-date-week{background:#edf9f7;text-align:center}.home-date-week strong{font-size:15px;color:#146a62}.management-attention-list{margin-top:10px}.system-health-card .health-dot{width:12px;height:12px;border-radius:50%;background:#aeb9c4}.system-health-card .health-dot.ok{background:#25a36f;box-shadow:0 0 0 5px #e7f7f0}.health-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.health-metrics>div{display:grid;gap:2px;padding:8px;border-radius:9px;background:#f5f8fb}.health-metrics span{font-size:10px;color:#728398}.health-metrics strong{font-size:14px}.management-source-inline{display:flex;gap:18px;flex-wrap:wrap;margin-top:5px;font-size:11px;color:#718398}
.notice-home-edit{align-self:flex-start;flex:0 0 auto}.capability-catalog{display:grid;gap:14px;margin-top:14px}.capability-card{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(260px,.45fr);gap:16px;align-items:start}.capability-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#edf4fb;color:#214d7c;font-size:24px;font-weight:800}.capability-request-area{display:grid;gap:8px}.capability-philosophy{margin-bottom:14px}.capability-philosophy p{margin:5px 0 0;color:#65788e}
.identity-bulk-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.identity-bulk-summary button,.identity-bulk-summary>div{display:grid;gap:2px;text-align:left;padding:10px;border:1px solid #dce5ed;border-radius:10px;background:#f8fbfd}.identity-bulk-summary strong{font-size:19px}.identity-bulk-summary span{font-size:10px;color:#728397}.identity-bulk-results{max-height:340px;overflow:auto;border:1px solid #e2e8ef;border-radius:11px}.identity-bulk-result{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #edf1f5}.identity-bulk-result:last-child{border-bottom:0}.identity-bulk-result>div{display:grid;gap:2px}.identity-bulk-result small{color:#708399}
.system-collapsible{padding:0!important}.system-collapsible>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px;cursor:pointer;list-style:none}.system-collapsible>summary::-webkit-details-marker{display:none}.system-collapsible[open]>summary{border-bottom:1px solid #e2e8ef}.system-collapsible>*:not(summary){margin:14px 17px}.system-access-intro{background:#fafdff}.module-request-admin .list-row{margin-top:8px}
@media(max-width:900px){.home-date-strip{grid-template-columns:90px 1fr}.home-date-week{grid-column:1/-1}.capability-card{grid-template-columns:auto 1fr}.capability-request-area{grid-column:1/-1}.identity-bulk-summary{grid-template-columns:1fr 1fr}.room-availability-table{min-width:430px}}

/* RC6.3 — canonical access management and owner operational hierarchy */
.side-role{font-size:12px!important;line-height:1.25!important;font-weight:750!important;color:#c2d3e5!important}
.brand-role-badge{font-size:11px!important;padding:5px 9px!important;line-height:1.1!important;min-height:23px!important;width:max-content;max-width:190px}
.brand-role-badge.owner{font-size:11.5px!important;padding:5px 10px!important}
.special-role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:850;background:#e9f1fa;color:#274f78;border:1px solid #cfdfef}.special-role-badge.owner{background:#fff4d8;color:#76530d;border-color:#ead092}
.access-account-list{display:grid;gap:7px;margin-top:13px}.access-account-row{display:grid;grid-template-columns:minmax(210px,1fr) minmax(300px,1.6fr) auto auto;gap:12px;align-items:center;padding:12px 13px;border:1px solid #e4eaf1;border-radius:13px;background:#fff}.access-account-row.owner-account{background:#fffdf8;border-color:#ebdfc2}.access-account-person{display:grid;gap:3px}.access-account-person strong{font-size:14px}.access-account-person span{font-size:11px;color:#728297}.access-account-roles{display:flex;gap:6px;flex-wrap:wrap}.access-role-chip{display:grid;gap:2px;border-radius:10px;padding:6px 8px;background:#f1f6fb;border:1px solid #dce7f1}.access-role-chip b{font-size:11px;color:#173a63}.access-role-chip small{font-size:9px;color:#6d7f92}.canonical-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:12px}.canonical-role-card{border:1px solid #e0e8f0;border-radius:14px;padding:13px;background:#fbfdff}.canonical-role-card.root-role{background:#fffdf8;border-color:#eadfc5}.canonical-role-card p{font-size:11px;color:#687a8e;margin:7px 0 8px}.role-scope-hint{font-size:10px;color:#66788b;font-weight:700}.role-capabilities{margin-top:9px}.role-capabilities>summary{font-size:10px;font-weight:800;color:#315879;cursor:pointer}.access-model-note{margin-top:13px}.access-assignment-list{display:grid;gap:9px;margin:12px 0}.access-assignment-option{display:grid;grid-template-columns:minmax(280px,1fr) minmax(180px,.8fr);gap:10px;align-items:center;border:1px solid #e1e8f0;border-radius:12px;padding:10px;background:#fbfdff}.access-assignment-option label{display:flex;gap:9px;align-items:flex-start}.access-assignment-option label span{display:grid;gap:2px}.access-assignment-option label small{font-size:10px;color:#728297;font-weight:500}.access-assignment-option select{border:1px solid #ced9e5;border-radius:9px;padding:8px;background:#fff}.owner-security-collapsible .security-tabs{margin-top:12px}.system-security-head{align-items:flex-start}.system-technical-actions{display:flex;gap:8px;flex-wrap:wrap}
/* Restore the original warm laboratory semantic colour. */
.session-type-lab{background:#fff5e5!important;border-color:#efd8aa!important;color:#966300!important}.home-week-primary .week-session.session-type-lab{background:#fff0cf!important;border:1px solid #ecc87e!important;border-left-color:#b97810!important;color:#775000!important}
@media(max-width:1100px){.access-account-row{grid-template-columns:1fr}.access-assignment-option{grid-template-columns:1fr}.canonical-role-grid{grid-template-columns:1fr}}

/* RC6.7 student entry and profile responsive UX hotfix */
.login-card{width:min(460px,calc(100vw - 32px));padding:34px}.login-card h1{font-size:34px;line-height:1.08;margin:12px 0}.login-card>.muted{line-height:1.45;margin-bottom:20px}.login-card .form .btn{width:100%;min-height:46px}.student-login-entry{display:grid;width:100%;min-height:58px;margin:12px 0 4px;padding:10px 16px;place-content:center;gap:2px;border:1px solid #1769d2;border-radius:12px;background:#1769d2;color:#fff;text-align:center;text-decoration:none;box-shadow:0 6px 16px rgba(23,105,210,.16);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.student-login-entry strong{font-size:15px;line-height:1.2}.student-login-entry span{font-size:12px;line-height:1.2;color:#eaf3ff}.student-login-entry:hover{background:#0f5fbe;transform:translateY(-1px);box-shadow:0 9px 20px rgba(23,105,210,.22)}.login-secondary-entry{display:block}.login-card #loginSystemEntry,.login-card #loginStaffEntry{margin:9px auto 0}
.student-bg{min-height:100vh;background:radial-gradient(circle at 20% 0,#e7f0ff,#f4f7fb 50%)}.student-login-card{width:min(520px,100%);margin:0 auto;padding:32px}.student-login-card .brand-mark{display:grid;place-items:center;width:54px;height:54px;margin-bottom:16px;border-radius:50%;background:#101828;color:#fff;font-size:25px;font-weight:900}.student-login-card h1{margin:8px 0 12px;font-size:34px;line-height:1.1}.student-login-card>p{line-height:1.5}.student-login-form{display:grid;gap:14px;margin-top:22px}.student-form-field{display:grid;gap:7px;min-width:0;color:#24364d;font-size:13px;font-weight:800}.student-form-field input{display:block;width:100%;min-width:0;height:46px;border:1px solid #cfd8e5;border-radius:11px;padding:10px 12px;background:#fff;color:#12233b;outline:0}.student-form-field input:focus{border-color:#8eb8ee;box-shadow:0 0 0 3px #e8f2ff}.student-login-form .btn,.student-trusted-login{width:100%;min-height:46px}.student-trusted-login{margin-top:10px}.student-login-card .student-device-help{margin-top:18px;line-height:1.45}.student-login-card .student-pair-actions{margin-top:18px}
.student-profile-head{margin-bottom:14px}.student-profile-card{margin-top:14px}.student-profile-facts{padding-top:6px;padding-bottom:6px}.student-profile-row{display:grid;grid-template-columns:minmax(150px,.4fr) minmax(0,1fr);gap:24px;align-items:center;padding:15px 0;border-bottom:1px solid #edf1f5}.student-profile-row:last-child{border-bottom:0}.student-profile-row>span{font-size:13px;font-weight:800;color:#25364a}.student-profile-row>strong{text-align:right;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.student-profile-login{color:#173a63}.student-profile-help{max-width:820px;margin-top:4px!important;line-height:1.5}.student-profile-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:17px}.student-profile-submit{grid-column:1/-1;justify-self:start;min-width:190px}.student-device-request{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);gap:12px;align-items:end;margin-top:14px}.student-device-request .student-device-help{grid-column:1/-1;margin:0}.student-device-request .btn{min-height:46px}.student-device-row>div:first-child{min-width:0}.student-device-row strong,.student-device-row small{overflow-wrap:anywhere}
@media(max-width:720px){.login-wrap{padding:12px}.login-card{width:100%;padding:24px;border-radius:22px}.login-card h1{font-size:29px}.student-login-entry{min-height:60px}.student-pair-shell{padding:16px 12px}.student-login-card{padding:24px 20px;border-radius:22px}.student-login-card h1{font-size:30px}.student-profile-row{grid-template-columns:1fr;gap:5px;padding:14px 0}.student-profile-row>span{font-size:12px;color:#667085}.student-profile-row>strong{text-align:left;font-size:15px}.student-profile-form,.student-device-request{grid-template-columns:1fr}.student-profile-submit{grid-column:auto;width:100%;justify-self:stretch}.student-device-request .student-device-help{grid-column:auto}.student-device-row{display:grid;gap:10px;align-items:start}.student-device-row .student-pair-actions{justify-content:flex-start;margin-top:0}.student-profile-card{padding:18px}.student-profile-card h2{font-size:22px}}

/* RC6.7 student dashboard: attendance visual, course spacing and trusted-phone feedback */
.student-course-grid{gap:24px;align-items:start}.course-cards{gap:20px;align-items:start}.student-attendance-visual{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;align-items:center;margin-top:12px;padding:14px;border:1px solid #dfe7ef;border-radius:15px;background:linear-gradient(135deg,#fbfdff,#f5f9fd)}.student-attendance-donut{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#229a68 0 calc(var(--present)*1%),#d65b57 calc(var(--present)*1%) calc((var(--present) + var(--absent))*1%),#e3a63b calc((var(--present) + var(--absent))*1%) calc((var(--present) + var(--absent) + var(--excused))*1%),#65a9d4 calc((var(--present) + var(--absent) + var(--excused))*1%) calc((var(--present) + var(--absent) + var(--excused) + var(--notified))*1%),#d9e1ea calc((var(--present) + var(--absent) + var(--excused) + var(--notified))*1%) 100%);box-shadow:inset 0 0 0 1px rgba(20,50,84,.05)}.student-attendance-donut:after{content:'';position:absolute;inset:15px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(20,50,84,.08)}.student-attendance-donut>div{position:relative;z-index:1;display:grid;text-align:center}.student-attendance-donut strong{font-size:22px;line-height:1;color:#173a63}.student-attendance-donut span{margin-top:4px;color:#718096;font-size:9px;font-weight:750}.student-attendance-visual-details{display:grid;gap:12px}.student-attendance-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}.student-attendance-legend span{display:flex;align-items:center;gap:7px;color:#52667e;font-size:11px}.student-attendance-legend span:before{content:'';width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#d9e1ea}.student-attendance-legend span b{margin-left:auto;color:#24364d}.student-attendance-legend .present:before{background:#229a68}.student-attendance-legend .absent:before{background:#d65b57}.student-attendance-legend .excused:before{background:#e3a63b}.student-attendance-legend .notified:before{background:#65a9d4}.student-plan-progress{display:grid;gap:6px;color:#6c7f94;font-size:10px}.student-plan-progress i{display:block;height:6px;overflow:hidden;border-radius:999px;background:#dfe7ef}.student-plan-progress i b{display:block;height:100%;border-radius:inherit;background:#4d86c2}.student-attendance-types{margin-top:15px}.student-attendance-types>strong{display:block;margin-bottom:9px;color:#344054;font-size:12px}.student-attendance-empty{display:grid;gap:4px;margin-top:12px;padding:14px;border:1px dashed #cfdae6;border-radius:14px;background:#f8fafc;color:#738196}.student-attendance-empty strong{color:#52667e;font-size:12px}.student-attendance-empty span,.student-attendance-empty small{font-size:11px}.student-trusted-status{margin-top:10px;border-radius:11px;padding:11px 12px;font-size:12px;font-weight:700;line-height:1.4}.student-trusted-status.warning{border:1px solid #f0d6a7;background:#fff8e8;color:#8a5a00}.student-trusted-status.success{border:1px solid #bfe5d2;background:#eefaf4;color:#087a55}.student-trusted-login:disabled{cursor:wait;opacity:.72}
@media(max-width:720px){.student-course-grid{gap:18px}.student-course-grid>.span-6{margin-bottom:0}.course-cards{gap:16px}.student-attendance-visual{grid-template-columns:96px minmax(0,1fr);gap:12px;padding:12px}.student-attendance-donut{width:92px;height:92px}.student-attendance-donut:after{inset:13px}.student-attendance-donut strong{font-size:18px}.student-attendance-legend{grid-template-columns:1fr}.student-trusted-login{line-height:1.25}}

/* RC6.7 student upcoming lessons: visible separation without inflating the list */
.student-main .session-row+.session-row{margin-top:6px}


/* LINEA 3.0.0-rc.6.4 comprehensive acceptance */
.week-session.session-type-lab{background:#fff3d6!important;border-color:#edd29a!important;border-left-color:#d89b28!important;color:#5d481c!important}.schedule-lesson.session-lab,.schedule-compare-mini-card.session-lab{background:#fff8e8!important;border-color:#ead7a7!important;border-left-color:#d89b28!important}.schedule-type-badge.session-lab{background:#fff2cf!important;color:#76530d!important;border-color:#efd59b!important}.session-dot.session-lab{background:#d89b28!important}
.brand-role-badge.owner{font-size:13px!important;padding:6px 11px!important;min-height:27px!important}.side-role{font-size:13px!important;font-weight:800!important}
.room-selector-card{display:grid;grid-template-columns:minmax(220px,330px) minmax(280px,1fr) auto;gap:14px;align-items:end;padding:14px;border:1px solid #dce6ef;border-radius:14px;background:#fbfdff;margin-bottom:14px}.room-selector-field select{font-size:15px;font-weight:850}.schedule-room-hero{display:grid;gap:2px;align-content:center}.schedule-room-hero strong{font-size:24px;line-height:1;color:#153b60}.schedule-room-hero span{font-size:13px;font-weight:800;color:#35526d}.schedule-room-hero small{font-size:11px;color:#71859a}.room-free-details,.schedule-free-grouped{margin-top:14px;border:1px solid #d9e5ef;border-radius:13px;background:#f8fbfe;overflow:hidden}.room-free-details>summary,.schedule-free-grouped>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;cursor:pointer;list-style:none}.room-free-details>summary>div,.schedule-free-grouped>summary>div{display:grid;gap:3px}.free-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:0 14px 14px}.free-day-grid section{border:1px solid #dfe8f0;border-radius:10px;background:#fff;overflow:hidden}.free-day-grid h4{margin:0;padding:8px 10px;background:#f2f7fb}.free-slot-row{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-top:1px solid #edf1f5;font-size:11px}.free-slot-row span{color:#647c92}.schedule-mine-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:11px 13px;border:1px solid #dbe6ef;border-radius:12px;background:#f8fbfe}.schedule-mine-actions>div{display:grid;gap:2px}.schedule-mine-actions span{font-size:10.5px;color:#6b8195}.find-window-results{display:grid;gap:8px;margin-top:14px}.find-window-choice{border:1px solid #d7e5ef;border-radius:11px;background:#fff;text-align:left;padding:11px 13px;display:grid;grid-template-columns:1fr auto;gap:3px 10px;color:#294861}.find-window-choice:hover{border-color:#81afd8;background:#f7fbff}.find-window-choice span{font-size:11px}.find-window-choice small{grid-column:2;grid-row:1/3;align-self:center;color:#3973a5;font-weight:800}.schedule-compare-mini-grid{grid-template-columns:58px repeat(5,minmax(105px,1fr))}.schedule-compare-mini-time,.schedule-compare-mini-cell{min-height:78px}.schedule-compare-mini-card{padding:7px}.schedule-compare-mini-card strong{font-size:10px}.schedule-compare-mini-card span{font-size:9px}.schedule-compare-mini-card small{font-size:8.5px}.work-source-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:13px 0}.work-source-context>div{padding:10px;border:1px solid #dde7ef;border-radius:10px;background:#f8fbfd;display:grid;gap:3px}.work-source-context span{font-size:9.5px;color:#74889a;text-transform:uppercase;font-weight:850}.work-source-context strong{font-size:16px;color:#1f405f}.work-model-note{margin-bottom:12px}.capability-details{margin-top:12px;border-top:1px solid #e1e8ef;padding-top:10px}.capability-details>summary{cursor:pointer;font-weight:850;color:#245e91}.capability-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.capability-detail-grid section{border:1px solid #dfe8ef;border-radius:10px;background:#fbfdff;padding:11px}.capability-detail-grid h3{margin:0 0 6px}.capability-detail-grid p,.capability-detail-grid li{font-size:11px;line-height:1.45}.capability-examples{display:flex;flex-wrap:wrap;gap:5px}.capability-examples span{padding:4px 7px;border-radius:999px;background:#edf5fc;font-size:9.5px;font-weight:750}.birthday-list{display:grid;gap:6px;margin-top:9px}.birthday-row{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:8px;border:1px solid #e0e8ef;border-radius:9px;background:#fff;padding:7px 9px;text-align:left}.birthday-row span{font-size:9px;color:#2e74a9;font-weight:850}.birthday-row strong{font-size:11px}.birthday-row small{font-size:9px;color:#74879a}.kpi-warning{border-color:#ead79b!important;background:#fffaf0!important}.health-metrics>div small{display:block;font-size:8px;color:#7c8fa0}.toast{font-size:17px!important;line-height:1.35!important;max-width:min(620px,calc(100vw - 30px))!important;padding:14px 17px!important}
@media(max-width:900px){.room-selector-card{grid-template-columns:1fr}.capability-detail-grid{grid-template-columns:1fr}.work-source-context{grid-template-columns:1fr}.birthday-row{grid-template-columns:64px 1fr}.birthday-row small{grid-column:2}.schedule-compare-mini-grid{min-width:740px}}

.staff-setup-layer{position:fixed;inset:0;z-index:10000}.staff-setup-layer .modal{max-height:92vh;overflow:auto;background:#0b2238;color:#edf5ff}.staff-setup-layer .modal-backdrop{height:100%;display:flex;align-items:center;justify-content:center;padding:20px;background:#030c18cc}.staff-setup-layer .field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.staff-setup-error{color:#ffc5bf}.staff-guide-lead{font-size:17px;line-height:1.6}.staff-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.staff-guide-grid article{background:#132e48;border:1px solid #315676;border-radius:14px;padding:20px}.staff-guide-grid article>span{color:#ebc776;font-weight:700}.staff-guide-grid p{line-height:1.55;color:#d5e3f1}.staff-guide-grid h3{margin:10px 0}@media(max-width:650px){.staff-guide-grid{grid-template-columns:1fr}.staff-setup-layer .modal-backdrop{padding:10px}}
