:root{--sidebar:#11294e;--sidebar-deep:#0b1e3b;--accent:#3978f6;--teal:#13a896;--amber:#e49b24;--violet:#7655d7;--ink:#15243b;--muted:#68778d;--line:#e4eaf2;--canvas:#f4f7fb;--white:#fff;--danger:#d95555;--shadow:0 12px 34px rgba(28,49,84,.08);font-family:Inter,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}body{margin:0;background:var(--canvas)}button,input,select{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:linear-gradient(180deg,var(--sidebar) 0%,var(--sidebar-deep) 100%);color:#dbe7ff;padding:28px 18px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px}.brand-mark{width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,#5b92ff,#21c9b7);display:grid;place-items:center;color:#fff;font-weight:800;box-shadow:0 8px 20px rgba(61,126,255,.3)}.brand b{display:block;color:#fff;letter-spacing:.12em}.brand small{font-size:9px;letter-spacing:.32em;color:#92a9cc}.sidebar nav{display:flex;flex-direction:column;gap:5px;overflow:auto}.nav-item{display:flex;align-items:center;gap:13px;border:0;background:transparent;color:#b5c5df;border-radius:11px;padding:11px 13px;text-align:left;cursor:pointer;transition:.18s}.nav-item span{width:22px;text-align:center;font-style:normal}.nav-item em{font-style:normal;font-size:14px;font-weight:600}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:#fff}.nav-item.active{box-shadow:inset 3px 0 #40d0bc}.transport-enabled{display:none}.transport-enabled.visible{display:flex}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 11px 0;font-size:12px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;color:#95aacc}.sidebar-foot small{color:#6f86aa}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#30c9a8;box-shadow:0 0 0 5px rgba(48,201,168,.12)}.workspace{margin-left:238px;min-height:100vh}.topbar{height:82px;padding:0 34px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);position:sticky;top:0;z-index:15;backdrop-filter:blur(12px)}.topbar h1{font-size:22px;margin:1px 0 0}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#8390a3;margin:0;text-transform:uppercase}.top-actions{margin-left:auto;display:flex;gap:18px;align-items:center}.language-button,.menu-button,.icon-button{border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer}.language-button{width:36px;height:36px;color:var(--sidebar);font-weight:700}.menu-button{display:none;width:38px;height:38px;margin-right:12px}.profile{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:12px;background:#e8efff;color:#2e68d0;display:grid;place-items:center;font-weight:800}.profile b,.profile small{display:block}.profile b{font-size:13px}.profile small{font-size:11px;color:var(--muted)}.content{padding:30px 34px 48px;max-width:1600px;margin:auto}.page{display:none}.page.active{display:block}.welcome-row,.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.welcome-row h2,.page-intro h2{font-size:25px;letter-spacing:-.02em;margin:0 0 5px}.welcome-row p,.page-intro p{margin:0;color:var(--muted);font-size:14px}.date-chip{background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:10px;color:#596980;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.metric-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:19px;display:flex;gap:15px;align-items:center;box-shadow:0 5px 20px rgba(25,48,82,.035);position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:66px;height:66px;border-radius:50%;right:-24px;top:-24px;background:currentColor;opacity:.06}.metric-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:currentColor;color:#fff!important;font-size:11px;font-weight:800}.metric-card small,.metric-card strong,.metric-card p{display:block}.metric-card small{font-size:12px;color:var(--muted);font-weight:600}.metric-card strong{font-size:30px;letter-spacing:-.04em;line-height:1.1;color:var(--ink);margin-top:2px}.metric-card p{font-size:10px;color:#96a1b1;margin:4px 0 0}.metric-card.blue{color:var(--accent)}.metric-card.teal{color:var(--teal)}.metric-card.amber{color:var(--amber)}.metric-card.violet{color:var(--violet)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.9fr);gap:15px;margin-top:15px}.dashboard-grid.lower{grid-template-columns:1.45fr .9fr}.panel,.table-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px rgba(25,48,82,.035)}.panel{padding:21px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.panel h3{margin:3px 0 0;font-size:17px}.live-badge{font-size:11px;color:#148d7d;background:#e9f8f5;padding:6px 9px;border-radius:20px;display:flex;gap:6px;align-items:center}.live-badge i{width:6px;height:6px;border-radius:50%;background:#15a78f}.trend-chart{height:190px;display:flex;align-items:flex-end;gap:8px;padding:12px 7px 0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,#edf1f6 46px);border-bottom:1px solid #dce4ee}.trend-bar{flex:1;min-width:12px;background:linear-gradient(180deg,#4d83f1,#53c8bb);border-radius:6px 6px 2px 2px;min-height:4px;position:relative}.trend-bar:hover:after{content:attr(data-value);position:absolute;bottom:100%;left:50%;transform:translate(-50%,-6px);background:#132746;color:white;font-size:10px;padding:4px 6px;border-radius:5px}.chart-axis{display:flex;justify-content:space-between;color:#98a4b5;font-size:10px;padding:8px 4px 0}.activity-list{display:flex;flex-direction:column}.activity-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #edf1f5}.activity-item:last-child{border:0}.activity-avatar{width:34px;height:34px;border-radius:11px;background:#edf3ff;color:#3972dd;display:grid;place-items:center;font-size:11px;font-weight:800}.activity-item b,.activity-item small{display:block}.activity-item b{font-size:12px}.activity-item small{font-size:10px;color:var(--muted);margin-top:2px}.time{font-size:11px;color:#617087}.text-button{border:0;background:transparent;color:#3e74d8;font-weight:700;font-size:12px;cursor:pointer}.attention-card{display:flex;gap:13px;align-items:center;background:#fff8e9;border:1px solid #f5dfb0;padding:14px;border-radius:12px}.attention-card>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f1b84b;color:#fff;font-weight:800}.attention-card div{flex:1}.attention-card b{font-size:13px}.attention-card p{font-size:11px;color:#806b45;margin:3px 0 0}.health-line{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#f7fafc;border-radius:12px;font-size:12px}.health-line>span{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.online{background:#20b596}.soft-button,.primary-button{border-radius:10px;padding:9px 14px;font-size:12px;font-weight:700;cursor:pointer}.soft-button{border:1px solid var(--line);background:#fff;color:#52627a}.primary-button{border:1px solid #2f6ee5;background:#3778ef;color:#fff;box-shadow:0 6px 14px rgba(55,120,239,.2)}.toolbar{display:flex;gap:10px;margin-bottom:13px}.toolbar input,.toolbar select,.dialog-head+label input,dialog select{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink);min-height:40px}.search-field{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;min-width:270px;color:#9aa6b6}.search-field input{border:0;outline:0;width:100%;min-height:40px}.table-card{overflow:hidden}.table-scroll{overflow:auto;max-height:560px}table{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content}th,td{padding:13px 15px;text-align:left;border-bottom:1px solid #edf1f5;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th{position:sticky;top:0;background:#f8fafc;color:#69778c;font-size:10px;letter-spacing:.04em;text-transform:uppercase;z-index:2;min-width:80px}th:after{content:"";position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize}tbody tr:hover{background:#fafcff}td{max-width:420px}.student-cell{display:flex;align-items:center;gap:10px;font-weight:700}.mini-avatar{width:30px;height:30px;border-radius:9px;background:#eaf0fb;color:#315fba;display:grid;place-items:center;font-size:10px}.status-pill{display:inline-flex;padding:5px 8px;border-radius:20px;font-size:10px;font-weight:800;background:#eef2f6;color:#647386}.status-pill.present,.status-pill.sent,.status-pill.departed{background:#e8f7f3;color:#148a78}.status-pill.exception,.status-pill.failed{background:#ffeded;color:#c74b4b}.status-pill.not_arrived,.status-pill.pending{background:#fff5dc;color:#aa7316}.empty-row{text-align:center;color:var(--muted);padding:36px}.button-group{display:flex;gap:8px}.report-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.report-card>span{display:inline-block;padding:7px 9px;border-radius:8px;background:#edf3ff;color:#326bd3;font-weight:800;font-size:11px}.report-card p{color:var(--muted);font-size:12px;min-height:38px}.card-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.item-card,.setting-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px}.item-card-head{display:flex;justify-content:space-between;align-items:start}.item-card h3,.setting-card h3{font-size:14px;margin:0 0 5px}.item-card p,.setting-card p{font-size:11px;color:var(--muted);margin:0}.item-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 0}.item-card dt{font-size:9px;color:#97a3b4;text-transform:uppercase}.item-card dd{font-size:12px;margin:3px 0 0}.setting-card strong{display:block;margin-top:12px;font-size:20px}.empty-state{min-height:360px;display:grid;place-items:center;text-align:center;align-content:center}.empty-state>span{font-size:40px;color:#4d7ee0}.empty-state h2{margin:15px 0 5px}.empty-state p{color:var(--muted);max-width:400px}.skeleton{height:180px;border-radius:10px;background:linear-gradient(100deg,#f3f6f9 30%,#e9eef4 50%,#f3f6f9 70%);background-size:250% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{to{background-position-x:-250%}}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 30px 70px rgba(20,38,70,.25);width:min(440px,calc(100vw - 30px))}dialog::backdrop{background:rgba(7,20,43,.5);backdrop-filter:blur(3px)}dialog form{padding:22px;display:flex;flex-direction:column;gap:14px}.dialog-head{display:flex;justify-content:space-between}.dialog-head h2{margin:3px 0 0}.icon-button{width:32px;height:32px;font-size:20px}.dialog-head+label,dialog label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.form-error{color:var(--danger);font-size:11px;margin:0}.toast{position:fixed;right:24px;bottom:24px;background:#122747;color:#fff;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:40}.toast.show{opacity:1;transform:none}.bind-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 20%,#e3ecff,transparent 35%),#f4f7fb}.bind-card{background:white;border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow);max-width:520px}.bind-card h1{font-size:27px}.bind-card p{color:var(--muted);line-height:1.6}.student-chips{list-style:none;padding:0;display:flex;gap:8px;flex-wrap:wrap}.student-chips li{padding:8px 11px;border-radius:9px;background:#eaf7f4;color:#147e70;font-weight:700}.cn-note{font-size:12px;border-top:1px solid var(--line);padding-top:14px}
.login-card form{display:flex;flex-direction:column;gap:13px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700}.login-card input{border:1px solid var(--line);border-radius:10px;padding:11px 12px}.login-card .primary-button{margin-top:5px}.family-heading{display:flex;align-items:end;justify-content:space-between;margin:28px 0 12px}.family-heading h3{margin:3px 0 0}.family-students{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0}.family-students span{background:#eff4fb;border-radius:7px;padding:5px 7px;font-size:10px}.invite-dialog-body{padding:24px;text-align:center}.invite-dialog-body .dialog-head{text-align:left}.invite-dialog-body img{width:220px;height:220px;margin:8px auto;border:10px solid #fff;box-shadow:0 3px 20px rgba(20,40,70,.12)}.invite-dialog-body .student-chips{justify-content:center}.muted{color:var(--muted);font-size:11px}.bind-link{display:inline-block;text-decoration:none;margin:8px 0}
@media (max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.dashboard-grid.lower{grid-template-columns:1fr}.card-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 760px){.sidebar{transform:translateX(-100%);transition:.22s}.sidebar.open{transform:none}.workspace{margin-left:0}.menu-button{display:block}.topbar{height:72px;padding:0 16px}.topbar .eyebrow,.profile span:last-child{display:none}.content{padding:20px 15px 36px}.welcome-row,.page-intro{align-items:flex-start;flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:14px;gap:10px}.metric-icon{width:37px;height:37px}.metric-card strong{font-size:24px}.dashboard-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.search-field{min-width:100%}.card-list,.report-grid,.settings-grid{grid-template-columns:1fr}.profile{gap:0}.language-button{margin-left:auto}.top-actions{gap:8px}.table-scroll{max-height:480px}.toast{left:15px;right:15px;bottom:15px}}
@media (max-width:420px){.metric-grid{grid-template-columns:1fr}.date-chip{display:none}.topbar h1{font-size:18px}}

/* Operational workflows */
[hidden]{display:none!important}.logout-button{color:#5f6f89}.file-button{position:relative;overflow:hidden;cursor:pointer}.file-button input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.card-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:14px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.pager button{padding:7px 11px}.pager button:disabled{opacity:.45;cursor:not-allowed}.summary-strip{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:12px;margin:16px 0}.summary-strip article{border:1px solid var(--line);background:#fff;border-radius:14px;padding:15px;box-shadow:var(--shadow)}.summary-strip small{display:block;color:var(--muted);margin-bottom:7px}.summary-strip strong{font-size:25px;color:var(--ink)}.settings-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px}.form-grid label,.calendar-form label{display:flex;flex-direction:column;gap:7px}.form-grid label>span{font-size:12px;font-weight:700;color:var(--muted)}.span-all{grid-column:1/-1}.inline-form,.calendar-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inline-form{padding:12px 0 18px;border-bottom:1px solid var(--line)}.calendar-form{margin-bottom:16px}.calendar-form input[name="note"]{flex:1;min-width:170px}.compact-list,.calendar-list{display:grid;gap:8px;max-height:390px;overflow:auto}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);background:#f9fbff;border-radius:11px;padding:11px 13px}.compact-row>div{display:flex;gap:8px;align-items:center}.compact-row>div:first-child{display:grid}.compact-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.dialog-wide{width:min(820px,calc(100vw - 32px));padding:24px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.detail-grid>div{display:grid;gap:6px;background:#f6f9fe;border:1px solid var(--line);padding:12px;border-radius:11px}.detail-grid small{color:var(--muted)}.notice-box{border-left:4px solid var(--teal);background:#eefaf7;border-radius:8px;padding:12px 14px;margin:14px 0}.notice-box p{margin:5px 0 0}.check-line{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important}.check-line input{width:auto}.toolbar>label:not(.search-field){display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.toolbar>label input{min-width:145px}.item-card dl{grid-template-columns:1fr 1fr}.item-card .text-button{margin-left:auto}.status-pill.pending{background:#fff6dd;color:#8b5b00}.status-pill.sent{background:#e8f8f2;color:#087f5b}.status-pill.failed{background:#fff0f0;color:#b42318}.status-pill.active{background:#e8f8f2;color:#087f5b}.status-pill.inactive{background:#eef1f6;color:#667085}.toast[data-tone="error"]{background:#9f1f1f}.form-error:not(:empty){margin-top:10px;padding:9px 11px;border-radius:8px;background:#fff0f0;color:#b42318}.table-card td:last-child .text-button{white-space:nowrap}textarea{min-height:86px;resize:vertical}
@media (max-width:1000px){.settings-layout{grid-template-columns:1fr}.summary-strip{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.button-group{flex-wrap:wrap}.summary-strip{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span-all{grid-column:auto}.dialog-wide{padding:18px}.detail-grid{grid-template-columns:1fr 1fr}.compact-row{align-items:flex-start}.inline-form>*{flex:1 1 140px}.logout-button{display:block}}
@media (max-width:420px){.summary-strip,.detail-grid{grid-template-columns:1fr}.pager{justify-content:space-between}.pager span{font-size:11px}}
.notification-summary{grid-template-columns:repeat(5,minmax(110px,1fr))}.setup-steps{display:grid;gap:10px;margin:8px 0 18px}.setup-step{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:13px;background:#f8fbff}.setup-step>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e9f1ff;color:#2869d8;font-weight:800}.setup-step.complete{background:#f1fbf7;border-color:#b9ead7}.setup-step.complete>span:first-child{background:#1eaa78;color:#fff}.setup-step b,.setup-step small{display:block}.setup-step small{color:var(--muted);margin-top:3px}.setup-progress{display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:14px;padding:15px 17px;background:linear-gradient(115deg,#eef5ff,#effcf8)}.setup-progress h3,.setup-progress p{margin:0}.setup-progress strong{font-size:24px;white-space:nowrap}@media (max-width:760px){.notification-summary{grid-template-columns:1fr 1fr}.setup-step{grid-template-columns:30px 1fr}.setup-step .status-pill{grid-column:2}.setup-progress{align-items:flex-start;flex-direction:column}}
.setup-step button.status-pill{border:0;font:inherit;cursor:pointer}.setup-step button.status-pill:hover,.setup-step button.status-pill:focus-visible{outline:2px solid #4d8cf5;outline-offset:2px;filter:brightness(.97)}.telegram-setup-guide{margin:-4px 0 18px;border:1px solid #bfd6f5;border-radius:14px;padding:16px 18px;background:#f8fbff}.telegram-setup-guide h3,.telegram-setup-guide p{margin:0 0 8px}.telegram-setup-guide ol{margin:8px 0 12px;padding-left:22px;color:var(--muted)}.telegram-setup-guide code{display:block;overflow:auto;padding:11px 12px;border-radius:9px;background:#132844;color:#eaf4ff;white-space:pre-wrap;word-break:break-all}.telegram-setup-guide a{display:inline-flex;margin-top:10px}
.telegram-connection-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 18px}.telegram-connection-status article{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:14px;background:#f8fbff}.telegram-connection-status article small{grid-column:1/-1;color:var(--muted)}.telegram-connection-status article b{font-size:16px}.telegram-config-hint{grid-column:1/-1;margin:0;border-left:4px solid #efa82f;border-radius:10px;padding:11px 13px;background:#fff8e9;color:#745318}.telegram-test-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;margin:16px 0}.telegram-test-row label span{display:block;margin-bottom:6px;color:var(--muted);font-weight:700}@media(max-width:760px){.telegram-connection-status{grid-template-columns:1fr}.telegram-test-row{grid-template-columns:1fr}.telegram-test-row button{width:100%}}
.evidence-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.evidence-badge{font-size:12px;border:1px solid #cfe0f6;background:#f4f8ff;color:#315d91;border-radius:999px;padding:4px 8px}.journey-evidence{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(280px,1.15fr);gap:18px}.journey-photo{min-height:260px;border-radius:16px;background:#eff4fa;display:grid;place-items:center;overflow:hidden}.journey-photo img{width:100%;height:100%;max-height:420px;object-fit:contain}.journey-map-card{display:grid;align-content:start;gap:12px}.journey-map-card .detail-grid{grid-template-columns:1fr 1fr}@media (max-width:760px){.journey-evidence{grid-template-columns:1fr}.journey-photo{min-height:190px}}

.transport-summary{grid-template-columns:repeat(4,minmax(120px,1fr))}.transport-layout{margin:16px 0 26px}.transport-layout .compact-list{max-height:320px}.status-pill.planned{background:#eef3ff;color:#365fba}.status-pill.completed{background:#e8f8f2;color:#087f5b}.status-pill.cancelled{background:#fff0f0;color:#b42318}
[data-transport="0"] .transport-module{display:none!important}
@media (max-width:760px){.transport-summary{grid-template-columns:1fr 1fr}.transport-layout{margin-bottom:20px}}
@media (max-width:420px){.transport-summary{grid-template-columns:1fr}}

/* Bright international-school visual system */
:root{--sidebar:#163b73;--sidebar-deep:#102957;--accent:#4b7cf3;--teal:#20b89c;--amber:#f1ad3d;--violet:#8b68df;--coral:#f4776a;--sky:#eaf6ff;--mint:#e9faf4;--sun:#fff7df;--ink:#17304f;--muted:#667a92;--line:#deebf5;--canvas:#f3f9fd;--shadow:0 16px 38px rgba(36,76,116,.09)}
body{background:radial-gradient(circle at 82% 9%,rgba(255,216,120,.28),transparent 22%),radial-gradient(circle at 20% 88%,rgba(94,208,189,.2),transparent 24%),linear-gradient(145deg,#f6fbff 0%,#f0f8ff 48%,#fffaf1 100%)}
.workspace{position:relative;overflow:hidden}.workspace:before,.workspace:after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:0;filter:blur(1px)}.workspace:before{width:240px;height:240px;right:-100px;top:140px;background:rgba(92,143,246,.08)}.workspace:after{width:180px;height:180px;left:260px;bottom:-90px;background:rgba(244,119,106,.08)}
.sidebar{background:linear-gradient(165deg,#1a4a86 0%,#15376b 48%,#102957 100%);box-shadow:14px 0 34px rgba(19,49,91,.12)}.sidebar:after{content:"";position:absolute;width:150px;height:150px;border:28px solid rgba(255,255,255,.035);border-radius:50%;right:-84px;bottom:74px;pointer-events:none}.brand-mark{background:linear-gradient(145deg,#65a5ff,#28d6b9 62%,#ffd36e);box-shadow:0 10px 22px rgba(28,198,177,.25)}.nav-item{position:relative}.nav-item:hover{background:rgba(255,255,255,.1);transform:translateX(2px)}.nav-item.active{background:linear-gradient(90deg,rgba(76,144,255,.32),rgba(49,211,180,.14));box-shadow:inset 3px 0 #57dfc4,0 8px 20px rgba(4,25,57,.12)}
.topbar{background:rgba(250,253,255,.88);border-color:rgba(206,225,239,.8);box-shadow:0 4px 18px rgba(39,79,120,.045)}.content{position:relative;z-index:1}.language-button,.menu-button,.icon-button{border-color:#d8e8f4;box-shadow:0 4px 12px rgba(43,82,120,.06)}.avatar{background:linear-gradient(145deg,#dfeaff,#e0faf3);color:#3268cb}
#page-dashboard .welcome-row{position:relative;overflow:hidden;align-items:center;padding:24px 26px;border:1px solid rgba(161,206,240,.58);border-radius:22px;background:linear-gradient(112deg,rgba(228,244,255,.95),rgba(237,250,245,.92) 58%,rgba(255,246,218,.9));box-shadow:0 14px 34px rgba(50,102,144,.08)}#page-dashboard .welcome-row:before{content:"✦";position:absolute;right:112px;top:14px;color:rgba(72,126,231,.22);font-size:34px;transform:rotate(12deg)}#page-dashboard .welcome-row:after{content:"";position:absolute;width:100px;height:100px;border:20px solid rgba(244,119,106,.1);border-radius:50%;right:-32px;bottom:-45px}.welcome-row h2{color:#163b67}.page-intro{padding-left:14px;border-left:4px solid #5b8df5}.date-chip{background:rgba(255,255,255,.82);border-color:#d4e7f3;box-shadow:0 6px 18px rgba(47,95,135,.07)}
.metric-card{border:0;border-radius:20px;box-shadow:0 13px 30px rgba(45,88,128,.08);transition:transform .18s ease,box-shadow .18s ease}.metric-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(45,88,128,.13)}.metric-card.blue{background:linear-gradient(145deg,#fff,#edf4ff)}.metric-card.teal{background:linear-gradient(145deg,#fff,#e9faf5)}.metric-card.amber{background:linear-gradient(145deg,#fff,#fff7df)}.metric-card.violet{background:linear-gradient(145deg,#fff,#f4efff)}.metric-card:after{width:82px;height:82px;right:-28px;top:-30px;opacity:.09}.metric-icon{border-radius:15px;box-shadow:0 8px 18px color-mix(in srgb,currentColor 25%,transparent)}
.metric-card.blue .metric-icon{background:var(--accent)}.metric-card.teal .metric-icon{background:var(--teal)}.metric-card.amber .metric-icon{background:var(--amber)}.metric-card.violet .metric-icon{background:var(--violet)}
.panel,.table-card,.item-card,.setting-card{border-color:rgba(211,229,241,.9);box-shadow:var(--shadow)}.panel,.table-card{border-radius:19px}.item-card,.setting-card{border-radius:18px;transition:transform .16s ease,box-shadow .16s ease}.item-card:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(36,76,116,.12)}.activity-avatar,.mini-avatar{background:linear-gradient(145deg,#e6efff,#e5faf4);color:#376bd0}

/* Live event evidence: compact by default, inspectable without leaving the work queue. */
.event-person-photo{object-fit:cover;border:1px solid #dce8f7}.activity-item{grid-template-columns:auto minmax(0,1fr) auto auto}.activity-item .event-photo-thumbnail{margin-left:auto}.event-photo-thumbnail{width:38px;height:38px;border:1px solid #d7e5f4;border-radius:10px;padding:2px;overflow:hidden;background:#f7fbff;cursor:pointer;display:grid;place-items:center}.event-photo-thumbnail:hover{border-color:#4b83ed;box-shadow:0 5px 14px rgba(57,120,246,.18)}.event-photo-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;border-radius:7px}.movement-photo-empty{color:#9aa8b8;font-size:18px;line-height:1}.event-photo-thumbnail.image-unavailable{cursor:default;color:#8190a4}.event-photo-thumbnail.image-unavailable img,.event-person-photo.image-unavailable{display:none}.event-photo-thumbnail.image-unavailable:after{content:"—"}.event-photo-dialog{max-width:760px}.event-photo-dialog-image{display:block;width:min(100%,640px);max-height:72vh;object-fit:contain;margin:16px auto;border-radius:14px;background:#f2f6fa;border:1px solid var(--line)}
@media (max-width:760px){.activity-item{grid-template-columns:auto minmax(0,1fr) auto}.activity-item .event-photo-thumbnail{display:none}.event-photo-thumbnail{width:34px;height:34px}.event-photo-dialog-image{max-height:64vh}}
.primary-button{border:0;background:linear-gradient(135deg,#4f7ff0,#3e9fec 54%,#2cc3aa);box-shadow:0 8px 18px rgba(65,126,227,.24);transition:transform .15s ease,box-shadow .15s ease}.primary-button:hover{transform:translateY(-1px);box-shadow:0 11px 22px rgba(65,126,227,.3)}.soft-button{border-color:#d6e6f2;background:rgba(255,255,255,.88)}.text-button{color:#3974d9}.toolbar{padding:10px;border:1px solid rgba(215,231,242,.8);border-radius:15px;background:rgba(255,255,255,.6);backdrop-filter:blur(8px)}.search-field,.toolbar input,.toolbar select{border-color:#d8e7f2!important}.search-field:focus-within,input:focus,select:focus,textarea:focus{outline:3px solid rgba(77,131,239,.14);border-color:#76a2f5!important}
th{background:linear-gradient(180deg,#f4f9fd,#eef6fb);color:#56708d}tbody tr{transition:background .12s ease}tbody tr:hover{background:#f3f9ff}.status-pill.present,.status-pill.sent,.status-pill.departed,.status-pill.approved{background:#e5f8f1;color:#087b65}.status-pill.late,.status-pill.pending,.status-pill.staff_approved{background:#fff3d2;color:#986208}.status-pill.absent,.status-pill.rejected,.status-pill.early_leave{background:#ffebe8;color:#b64b40}.status-pill.excused_absence{background:#eee9ff;color:#674bb5}.compact-row{background:linear-gradient(135deg,#fbfdff,#f5faff)}dialog{border-radius:22px;box-shadow:0 34px 80px rgba(21,54,91,.27)}dialog::backdrop{background:rgba(14,39,70,.45)}.notice-box{background:linear-gradient(135deg,#ecfaf6,#eef7ff)}
.page.active{animation:page-arrive .22s ease-out}@keyframes page-arrive{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.page.active,.metric-card,.item-card,.primary-button,.nav-item{animation:none;transition:none}}
@media (max-width:760px){#page-dashboard .welcome-row{padding:20px}#page-dashboard .welcome-row:before{right:28px}.toolbar{padding:8px}.workspace:before,.workspace:after{display:none}}
.channel-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px;color:var(--muted);font-size:.78rem}.channel-row span{padding:5px 9px;border-radius:999px;background:#f3f7fc;border:1px solid var(--line)}.student-cell small{display:block;color:var(--muted);font-size:9px;font-weight:500;margin-top:2px}
.wide-dialog{width:min(920px,calc(100vw - 30px));max-height:92vh}.wide-dialog form{max-height:92vh;overflow:auto}
.class-overview-panel{margin-top:15px}.clickable-row{cursor:pointer}.clickable-row:hover td:first-child{color:var(--accent)}
.student-profile-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:8px;align-items:start}.student-photo-card{margin:20px 0 20px 20px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(155deg,#eef7ff,#f0fbf7 62%,#fff9e8);display:grid;gap:10px}.student-photo-card img,.photo-placeholder{width:100%;aspect-ratio:1;object-fit:cover;border-radius:15px;border:4px solid rgba(255,255,255,.92);box-shadow:0 10px 24px rgba(42,83,124,.13)}.photo-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#dfeaff,#dff8f1);color:#6685aa;font-size:13px;font-weight:800;letter-spacing:.18em}.student-photo-card input{width:100%;font-size:11px}.student-photo-card label{color:var(--ink)}.consent-panel{margin:0 20px 8px;padding:17px;border:1px solid #d8e8f4;border-radius:17px;background:linear-gradient(135deg,#f4f9ff,#f2fcf8)}.consent-panel .form-grid{padding:4px 0 14px}.consent-panel .panel-heading{margin-bottom:10px}.consent-panel h3{margin:0}.consent-panel .status-pill{margin-right:7px}@media(max-width:760px){.student-profile-layout{grid-template-columns:1fr}.student-photo-card{margin:16px 20px 0}.student-photo-card img,.photo-placeholder{width:min(220px,100%);justify-self:center}.consent-panel{margin:0 20px 8px}}
.wide-dialog{overflow:hidden}.wide-dialog>.dialog-wide{box-sizing:border-box;width:auto;max-width:100%;max-height:92vh;overflow-x:hidden;overflow-y:auto}.wide-dialog .detail-grid>*{min-width:0}.wide-dialog .notice-box,.wide-dialog .compact-row{overflow-wrap:anywhere;word-break:break-word}.wide-dialog .compact-row{flex-wrap:wrap}
.roster-workspace{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:16px;align-items:start}.roster-tree-card{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto;border:1px solid var(--line);border-radius:19px;background:rgba(255,255,255,.92);padding:17px;box-shadow:var(--shadow)}.roster-tree-card h3{margin:3px 0 0}.roster-tree{display:grid;gap:8px}.roster-tree details{border-left:1px solid #dce9f4;margin-left:8px;padding-left:10px}.roster-tree summary{list-style:none}.roster-tree summary::-webkit-details-marker{display:none}.roster-tree summary>button,.roster-students>button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;border:0;border-radius:10px;background:transparent;color:var(--ink);padding:8px;text-align:left}.roster-tree summary>button:hover,.roster-students>button:hover{background:#edf6ff}.roster-tree summary>button b{min-width:26px;border-radius:99px;background:#e8f2ff;color:#3670ce;padding:3px 7px;text-align:center;font-size:10px}.roster-grade>summary>button{font-weight:800}.roster-class>summary>button{font-weight:700}.roster-students{display:grid;margin:3px 0 6px 8px}.roster-students>button{display:grid;justify-content:stretch;padding:6px 8px}.roster-students small{color:var(--muted);font-size:9px}.roster-main{min-width:0}.roster-main .toolbar{margin-top:0}.organization-list{max-height:180px;margin-bottom:10px}@media(max-width:900px){.roster-workspace{grid-template-columns:1fr}.roster-tree-card{position:static;max-height:340px}}@media(max-width:520px){.roster-tree-card{padding:13px}.roster-students{margin-left:2px}}

/* Unified typography and form rhythm */
:root{--font-ui:"Segoe UI Variable","Segoe UI","PingFang SC","Microsoft YaHei UI","Noto Sans CJK SC",Arial,sans-serif;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:28px}
html,body{font-family:var(--font-ui);font-size:var(--text-sm);line-height:1.5;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
.sidebar nav{overflow-y:auto;overflow-x:hidden}.nav-item:focus-visible{outline:2px solid #8eead6;outline-offset:-2px}
h1,h2,h3,h4,b,strong{font-family:var(--font-ui);font-weight:700}.topbar h1{font-size:var(--text-lg);line-height:1.25;letter-spacing:-.01em}.welcome-row h2,.page-intro h2{font-size:var(--text-xl);line-height:1.25;letter-spacing:-.025em}.dialog-head h2{font-size:24px;line-height:1.3;letter-spacing:-.02em}.panel h3,.family-heading h3,.setup-progress h3{font-size:18px;line-height:1.35}.eyebrow{font-size:var(--text-xs);line-height:1.3;letter-spacing:.1em}.welcome-row p,.page-intro p,.muted{font-size:var(--text-sm);line-height:1.55}.nav-item em,.soft-button,.primary-button,.text-button{font-size:var(--text-sm);line-height:1.35;font-weight:600}.metric-card small,.summary-strip small{font-size:var(--text-xs)}.metric-card strong{font-size:30px}.summary-strip strong{font-size:24px}.status-pill{font-size:var(--text-xs);font-weight:700}.compact-row b,.item-card h3,.setting-card h3{font-size:var(--text-sm);line-height:1.4}.compact-row small,.item-card p,.setting-card p{font-size:var(--text-xs);line-height:1.45}
.audit-action,.audit-object{display:grid;gap:3px;min-width:140px}.audit-action small,.audit-object small{color:var(--muted);font-size:11px}.audit-detail-cell{min-width:250px}.audit-detail-cell .audit-detail-summary{display:block;color:var(--ink);line-height:1.45;overflow-wrap:anywhere}.audit-detail-cell .text-button{margin-top:5px}.audit-raw-detail{max-height:320px;overflow:auto;margin:10px 0 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f6f9fe;color:#29415f;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.audit-detail-summary{overflow-wrap:anywhere}
input,select,textarea{font-size:var(--text-sm);line-height:1.4;color:var(--ink)}input::placeholder,textarea::placeholder{color:#8995a7;opacity:1}th{font-size:var(--text-xs);font-weight:700;letter-spacing:.035em}td{font-size:var(--text-sm);line-height:1.4}.form-grid label>span,.dialog-head+label,dialog label,.login-card label{font-size:var(--text-xs);line-height:1.4}.roster-tree-card h3{font-size:var(--text-lg);line-height:1.35}.roster-grade>summary>button{font-size:15px;font-weight:700}.roster-class>summary>button{font-size:var(--text-sm);font-weight:600}.roster-tree summary>button b{font-size:var(--text-xs);font-weight:700}.roster-students>button{font-size:13px;font-weight:500}.roster-students small{font-size:11px}
dialog form.inline-form{display:grid;flex-direction:initial;align-items:end;width:100%;gap:12px;padding:14px 0 18px}#gradeForm,#classForm{grid-template-columns:minmax(120px,.75fr) minmax(220px,1.4fr) 96px auto}#classForm{grid-template-columns:minmax(170px,1fr) minmax(120px,.75fr) minmax(220px,1.35fr) auto auto}#gradeForm input,#classForm input,#gradeForm select,#classForm select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}#gradeForm button,#classForm button{min-height:42px;white-space:nowrap}
@media(max-width:760px){.welcome-row h2,.page-intro h2{font-size:24px}.dialog-head h2{font-size:22px}dialog form.inline-form,#gradeForm,#classForm{grid-template-columns:1fr;align-items:stretch}#gradeForm button,#classForm button{width:100%}}

/* Student directory composition */
.student-directory-page .page-intro{margin-bottom:20px}.student-directory-page .roster-workspace{align-items:start;grid-template-columns:minmax(250px,290px) minmax(0,1fr);gap:18px}.student-directory-page .roster-tree-card{position:sticky;top:92px;height:min(610px,calc(100vh - 120px));max-height:calc(100vh - 120px);overflow:hidden;display:flex;flex-direction:column;min-height:0;border-radius:17px;padding:16px;box-shadow:0 8px 26px rgba(28,49,84,.07)}.student-directory-page .roster-tree-card .panel-heading{margin-bottom:14px}.student-directory-page .roster-tree{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.student-directory-page .roster-main{display:flex;flex-direction:column;gap:12px;min-width:0}.student-directory-page .roster-main .toolbar{margin:0;padding:11px 12px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.9);box-shadow:0 5px 18px rgba(28,49,84,.035)}.student-directory-page .roster-main .search-field{flex:1 1 280px}.student-directory-page .roster-main select{flex:0 1 auto;min-width:118px}.student-directory-page .table-card{border-radius:16px;box-shadow:0 8px 28px rgba(28,49,84,.055)}.student-directory-page .table-scroll{max-height:448px}.student-directory-page #studentsBody td{height:62px;padding-top:12px;padding-bottom:12px}.class-cell{display:grid;gap:2px;line-height:1.3}.class-cell b{font-size:var(--text-sm);font-weight:600}.class-cell small{display:block;color:var(--muted);font-size:var(--text-xs)}.student-cell{font-size:var(--text-sm)}.student-cell small{font-size:11px}.guardian-section{margin-top:24px;padding-top:2px}.guardian-section .family-heading{margin:0 0 12px}.guardian-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-items:start}.guardian-card{display:grid;gap:12px;min-height:0;padding:16px}.guardian-card .family-students,.guardian-card .channel-row,.guardian-card .card-actions{margin:0}.guardian-card .family-students{min-height:28px}.guardian-card .channel-row{gap:6px}.guardian-card .channel-row span{padding:5px 9px;font-size:var(--text-xs)}.guardian-card .card-actions{padding-top:2px}
@media(max-width:900px){.student-directory-page .roster-workspace{grid-template-columns:1fr;align-items:start}.student-directory-page .roster-tree-card{position:static;height:auto;max-height:330px}.student-directory-page .roster-tree{max-height:240px}.student-directory-page .roster-main select{flex:1 1 150px}}@media(max-width:560px){.student-directory-page .roster-main .toolbar{padding:10px}.guardian-grid{grid-template-columns:1fr}.guardian-section{margin-top:20px}}

/* Searchable student assignment */
.assignment-dialog{width:min(820px,calc(100vw - 30px));overflow:hidden}.assignment-dialog>form{max-width:100%;max-height:92vh;overflow-x:hidden;overflow-y:auto}.assignment-dialog .form-grid{padding:0}.student-picker{display:grid;min-width:0;border:1px solid var(--line);border-radius:13px;background:#f8fbff;overflow:hidden}.student-picker-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.42fr);gap:8px;padding:10px;border-bottom:1px solid var(--line);background:#fff}.student-picker-toolbar .search-field{min-width:0}.student-picker-toolbar select{width:100%}.student-picker-actions{min-height:36px;padding:6px 10px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.student-picker-actions span{margin-left:auto;color:var(--muted);font-size:var(--text-xs)}.student-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px;max-height:245px;overflow-y:auto;overflow-x:hidden}.student-picker-list>label{display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important;min-width:0;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:#fff;cursor:pointer}.student-picker-list>label:hover{border-color:#bdd7f2;background:#f2f8ff}.student-picker-list input{width:17px;height:17px;flex:0 0 auto}.student-picker-list span{display:grid;min-width:0}.student-picker-list b,.student-picker-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-picker-list b{font-size:var(--text-sm)}.student-picker-list small{font-size:var(--text-xs);font-weight:400;color:var(--muted)}.invite-hint{color:#9a6814!important;background:#fff6dc!important}.soft-button:disabled{cursor:not-allowed;opacity:.5}
@media(max-width:620px){.student-picker-toolbar,.student-picker-list{grid-template-columns:1fr}.assignment-dialog .form-grid{grid-template-columns:1fr}.assignment-dialog .span-all{grid-column:auto}}
.student-picker-toolbar{grid-template-columns:minmax(0,1fr) minmax(140px,.36fr) minmax(140px,.42fr)}
@media(max-width:620px){.student-picker-toolbar{grid-template-columns:1fr}}
.live-location{display:grid;gap:2px}.live-location a{color:#2873cf;font-weight:700;text-decoration:none}.live-location a:hover{text-decoration:underline}.live-location small{color:var(--muted);font-size:11px}.location-waiting{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#fff6dc;color:#956515;font-size:var(--text-xs);font-weight:600}
.transport-route-row{align-items:flex-start}.transport-route-row>div:first-child{min-width:0;flex:1}.transport-stop-list{display:flex!important;flex-wrap:wrap;gap:6px 12px;margin-top:7px}.transport-stop-list>span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:8px;background:#eef5fb}.transport-stop-list .text-button{font-size:10px;padding:1px}.run-actions{margin-top:0;flex-wrap:wrap;justify-content:flex-start}

/* Movement, guardian and operator access workflows */
.movement-pill{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:700;background:#edf3ff;color:#2d66c8}.movement-pill.school_entry{background:#e8f8f2;color:#087f5b}.movement-pill.school_exit{background:#fff3e5;color:#9b5a08}.movement-pill.bus_boarded{background:#eeeaff;color:#5d43b5}.movement-pill.bus_alighted{background:#e9f7fb;color:#14738b}
.student-guardians-panel{margin:4px 20px 16px;padding:16px;border:1px solid #dce7f2;border-radius:17px;background:linear-gradient(135deg,#f7fbff,#f4fcf9)}.student-guardians-panel .panel-heading{margin-bottom:12px}.student-guardians-panel h3{margin:2px 0 0}.guardian-relation{align-items:flex-start}.guardian-relation .card-actions{margin:0;flex-wrap:wrap}.guardian-relation .channel-row{margin:7px 0 0}.text-button.danger{color:#b42318}.candidate-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;text-align:left;cursor:pointer}.candidate-row:hover,.candidate-row:focus-visible{border-color:#8db9ee;background:#f4f9ff}.candidate-row small{color:var(--muted)}
.permission-editor{margin:4px 20px 18px;padding:16px;border:1px solid var(--line);border-radius:15px;background:#f8fbff}.permission-editor h3{margin:2px 0 10px;font-size:var(--text-sm)}.permission-grid,.class-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-grid{margin-bottom:16px}.permission-grid .check-line,.class-scope-grid .check-line{padding:9px 10px;border:1px solid #e2eaf4;border-radius:10px;background:#fff}.permission-hidden{display:none!important}
@media(max-width:760px){.student-guardians-panel{margin:4px 20px 14px}.guardian-relation{display:grid}.guardian-relation .card-actions{justify-content:flex-start}.permission-grid,.class-scope-grid{grid-template-columns:1fr}}
.device-provisioning{display:grid;gap:14px}.device-provisioning>label{display:grid;gap:7px;color:var(--muted);font-size:var(--text-sm);font-weight:700}.copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.copy-field input,.copy-field textarea{min-width:0;width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--ink);background:#f7faff}.copy-field-block textarea{min-height:118px}.notice-box.warning{border-left-color:#e9a23b;background:linear-gradient(135deg,#fff9e8,#fffdf5)}
@media(max-width:600px){.copy-field{grid-template-columns:1fr}.copy-field button{width:100%}}
.brand:has(.brand-logo:not([hidden])){justify-content:center;padding:0 8px 24px}.brand-logo{display:block;width:auto;max-width:178px;height:76px;object-fit:contain;object-position:center;border-radius:10px;box-shadow:0 7px 20px rgba(4,23,52,.18)}.brand-setting{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#f7fbff,#f4fcf9)}.brand-setting b{display:block;margin-bottom:4px}.brand-setting p{margin:0 0 10px;color:var(--muted);font-size:var(--text-xs)}.brand-preview{height:82px;border:1px dashed #b9cbe0;border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden;color:#8292a8;font-size:var(--text-xs);font-weight:800;letter-spacing:.12em}.brand-preview img{width:100%;height:100%;object-fit:contain;padding:5px}.brand-setting .file-button{display:inline-flex!important;width:max-content;flex-direction:row!important;color:#52627a;font-size:var(--text-xs)}

/* Dashboard cumulative entry trend */
.trend-heading-actions{display:flex;align-items:center;gap:12px}.trend-progress{display:grid;text-align:right;line-height:1.15}.trend-progress strong{font-size:17px;color:#174980}.trend-progress small{font-size:10px;color:var(--muted);font-weight:600}.trend-chart{height:230px;padding:0 2px;border:1px solid #e5eff6;border-radius:15px;background:linear-gradient(180deg,rgba(237,247,255,.72),rgba(244,252,249,.52));overflow:hidden}.arrival-trend-svg{display:block;width:100%;height:100%}.trend-grid-line line{stroke:#dce9f2;stroke-width:1}.trend-grid-line text,.trend-axis-label{fill:#8796aa;font-size:10px;font-family:var(--font-ui)}.trend-area{fill:url(#arrivalTrendGradient)}.trend-line{fill:none;stroke:url(#arrivalTrendStroke);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 4px rgba(64,128,211,.14))}.trend-point{fill:#fff;stroke:#2bb7a5;stroke-width:3;cursor:help;transition:r .15s ease}.trend-point:hover,.trend-point:focus{r:6;outline:none}.trend-chart>.empty-row{height:100%;display:grid;place-items:center}
@media(max-width:560px){.trend-heading-actions{align-items:flex-end;gap:7px}.trend-progress strong{font-size:14px}.trend-progress small{font-size:9px}.trend-chart{height:205px}}
@media(max-width:600px){.brand-setting{grid-template-columns:1fr}.brand-preview{height:110px}}
.consent-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.consent-summary h3{margin:0 0 5px}.consent-summary>div>p{margin:4px 0;max-width:680px}.consent-summary button{flex:0 0 auto}
@media(max-width:600px){.consent-summary{display:grid}.consent-summary button{width:100%}}
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:var(--text-xs);line-height:1.45}.device-profile-note{display:grid;gap:3px;margin:12px 0;padding:10px 12px;border:1px solid #d9e8f5;border-radius:11px;background:linear-gradient(135deg,#f4f9ff,#f2fcf8)}.device-profile-note b{font-size:var(--text-sm)}.device-profile-note span{color:var(--muted);font-size:var(--text-xs);line-height:1.45}
.field-label{display:block;margin-bottom:8px;color:var(--muted);font-size:var(--text-xs);font-weight:700}.choice-grid{display:grid;gap:8px}.choice-grid .check-line{justify-content:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}[data-fingerprint-slots]{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:14px}[data-fingerprint-slots] legend{padding:0 6px;font-weight:700;color:var(--ink)}.fingerprint-slots{grid-template-columns:repeat(5,minmax(64px,1fr))}@media(max-width:560px){.fingerprint-slots{grid-template-columns:repeat(2,minmax(64px,1fr))}}
.import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.import-file-card{display:grid!important;gap:10px!important;min-width:0;padding:18px!important;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#f7fbff,#f2fcf9)}.import-file-card b{display:flex;align-items:center;gap:9px;font-size:var(--text-sm)}.import-file-card input{width:100%;min-width:0;padding:10px;border:1px dashed #b8cee2;border-radius:10px;background:#fff}.import-file-card small{color:var(--muted);line-height:1.5}.step-number{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e3efff;color:#2768c8;font-weight:800}.import-update-line{justify-content:flex-start!important;margin:4px 0 15px}.import-result{margin:14px 0;padding:14px 16px;border:1px solid #bce8db;border-radius:14px;background:#edf9f5}.import-result p{margin:3px 0;font-weight:700}.import-result details{margin-top:9px}.import-result ul{max-height:180px;overflow:auto;margin:8px 0 0;padding-left:20px}.import-result li{margin:5px 0;color:var(--muted)}.device-sync-state>div:last-child{display:grid;justify-items:end;gap:4px;max-width:min(430px,100%)}.sync-error-code{color:#b42318!important;font-weight:700}.sync-error-hint{max-width:420px;padding:7px 9px;border-radius:9px;background:#fff4e8;color:#87510a!important;line-height:1.45;text-align:left}@media(max-width:620px){.import-grid{grid-template-columns:1fr}.device-sync-state>div:last-child{justify-items:start;max-width:100%}}
.personnel-transfer-dialog{width:min(1220px,calc(100vw - 30px))}.personnel-transfer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.sync-flow-card{min-width:0;padding:16px;border:1px solid #dbe8f3;border-radius:17px;background:linear-gradient(145deg,#fbfdff,#f3faf9)}.sync-flow-heading{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}.sync-flow-heading>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:11px;background:linear-gradient(145deg,#4d82ef,#26b9a7);color:#fff;font-size:18px;font-weight:800}.sync-flow-heading h3,.sync-flow-heading p{margin:0}.sync-flow-heading p{margin-top:3px;color:var(--muted);font-size:var(--text-xs);line-height:1.45}.sync-flow-card fieldset{min-width:0;margin:0 0 12px;padding:11px;border:1px solid var(--line);border-radius:12px}.sync-flow-card legend{padding:0 6px;color:var(--muted);font-size:var(--text-xs);font-weight:700}.device-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:150px;overflow:auto}.device-choice{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.device-choice input{width:17px;height:17px;flex:0 0 auto}.device-choice span{display:grid;min-width:0}.device-choice b,.device-choice small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-choice small{color:var(--muted);font-weight:400}.personnel-roster-toolbar{align-items:center}.personnel-roster-toolbar select{flex:1;min-width:0}.personnel-roster-actions{align-items:center;flex-wrap:wrap}.personnel-roster-actions select{flex:1;min-width:190px}.personnel-roster-table{max-height:390px;border:1px solid var(--line);border-radius:12px}.personnel-roster-table .student-cell .event-photo-thumb{width:34px;height:42px;border-radius:8px}.status-pill.device_only{background:#fff3d2;color:#986208}.status-pill.matched{background:#e5f8f1;color:#087b65}.status-pill.ignored{background:#eef1f6;color:#667085}@media(max-width:900px){.personnel-transfer-grid{grid-template-columns:1fr}.device-choice-grid{grid-template-columns:1fr}}

/* Grouped navigation and dedicated personnel-sync workspace. */
.nav-group-label{margin:14px 13px 4px;color:#7692ba;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}.nav-group-label:first-child{margin-top:0}.personnel-sync-page .page-intro{align-items:flex-start}.personnel-sync-page #personnelTransferForm{display:block}.personnel-sync-page .personnel-transfer-grid{align-items:start}.personnel-sync-page .sync-flow-card{min-height:620px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.personnel-sync-page label{display:flex;flex-direction:column;gap:7px;font-size:var(--text-xs);font-weight:700}.personnel-sync-page select{min-height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:9px 12px;color:var(--ink)}.personnel-sync-page .student-picker{margin-top:13px}.personnel-sync-page .personnel-roster-table{max-height:430px;background:#fff}.device-more{position:relative}.device-more>summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;color:#52627a;padding:9px 14px;font-size:var(--text-sm);font-weight:600}.device-more>summary::-webkit-details-marker{display:none}.device-more[open]>summary{border-color:#9abcf1;background:#f4f8ff}.device-more>div{position:absolute;right:0;bottom:calc(100% + 7px);z-index:6;display:grid;gap:4px;min-width:120px;padding:7px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 14px 32px rgba(28,49,84,.18)}.device-more>div button{width:100%;margin:0!important;padding:8px 10px;text-align:left;border-radius:8px}.device-more>div button:hover{background:#f4f8fd}

/* Keep the roster tree and student table visually balanced and independently scrollable. */
.student-directory-page .roster-workspace{height:calc(100vh - 235px);min-height:560px;max-height:760px}.student-directory-page .roster-tree-card{position:relative;top:auto;height:100%;max-height:none}.student-directory-page .roster-main{height:100%;min-height:0}.student-directory-page .roster-main .table-card{display:flex;flex:1;min-height:0;flex-direction:column}.student-directory-page .roster-main .table-scroll{flex:1;min-height:0;max-height:none}.student-directory-page .roster-main .pager{flex:0 0 auto;background:#fff}

@media(max-width:900px){.personnel-sync-page .sync-flow-card{min-height:0}}
@media(max-width:760px){.nav-group-label{margin-top:12px}.student-directory-page .roster-workspace{height:auto;min-height:0;max-height:none}.student-directory-page .roster-tree-card,.student-directory-page .roster-main{height:auto}.student-directory-page .roster-main .table-card{display:block}.student-directory-page .roster-main .table-scroll{max-height:480px}.device-more>div{position:fixed;right:18px;bottom:76px}}

/* Device-level acknowledgements for personnel downlink. */
.personnel-transfer-feedback{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.personnel-transfer-feedback .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.personnel-transfer-feedback .eyebrow,.personnel-transfer-feedback h4{margin:0}.personnel-transfer-feedback h4{font-size:var(--text-md)}.transfer-feedback-list{display:grid;gap:10px}.transfer-feedback-list[data-loading="true"]{opacity:.58}.transfer-feedback-device{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.transfer-feedback-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px}.transfer-feedback-head>div{display:grid;gap:2px}.transfer-feedback-head small{color:var(--muted)}.transfer-feedback-head strong{max-width:55%;color:#49617f;font-size:var(--text-xs);text-align:right}.transfer-progress{display:block;width:100%;height:5px;border:0;background:#edf2f7;appearance:none}.transfer-progress::-webkit-progress-bar{background:#edf2f7}.transfer-progress::-webkit-progress-value{background:linear-gradient(90deg,#4c81ef,#25baa5)}.transfer-progress::-moz-progress-bar{background:linear-gradient(90deg,#4c81ef,#25baa5)}.transfer-feedback-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid #e8eef5}.transfer-feedback-row>div{display:grid;gap:3px;min-width:0}.transfer-feedback-row>div:last-child{justify-items:end}.transfer-feedback-row b,.transfer-feedback-row small{overflow-wrap:anywhere}.transfer-feedback-row small{color:var(--muted)}
@media(max-width:620px){.transfer-feedback-head,.transfer-feedback-row{display:grid}.transfer-feedback-head strong{max-width:none;text-align:left}.transfer-feedback-row>div:last-child{justify-items:start}}

/* Customer-facing Telegram setup wizard. */
.telegram-setup-dialog{display:grid;gap:14px}.telegram-setup-step{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;border:1px solid var(--line);border-radius:16px;padding:16px;background:#fbfdff}.setup-step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,#4b83f4,#27bda9);color:#fff;font-weight:800}.telegram-setup-step h3,.telegram-setup-step p{margin:0 0 7px}.telegram-step-content{min-width:0}.inline-button{display:inline-flex;width:max-content;margin-top:5px}.telegram-credential-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;border:1px solid #cfe0f5;border-radius:12px;background:linear-gradient(115deg,#f2f7ff,#f0fbf8)}.telegram-credential-summary>div{display:grid;gap:3px;min-width:0}.telegram-credential-summary small,.telegram-credential-summary span{color:var(--muted);font-size:var(--text-xs)}.telegram-credential-summary strong{overflow-wrap:anywhere}.telegram-token-form{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;max-height:none!important;overflow:visible!important}.telegram-token-form label{display:grid;gap:6px;color:var(--muted);font-size:var(--text-xs);font-weight:700}.telegram-token-form input{width:100%}.telegram-credential-actions{display:flex;flex-wrap:wrap;gap:9px;margin:10px 0}.danger-button{border:1px solid #f2b8b5;border-radius:10px;background:#fff7f7;color:#b42318;padding:10px 14px;font:inherit;font-size:var(--text-sm);font-weight:700;cursor:pointer}.danger-button:hover{background:#fff0f0}.danger-button:focus-visible{outline:3px solid rgba(180,35,24,.2);outline-offset:2px}
@media(max-width:760px){.telegram-setup-step{grid-template-columns:32px minmax(0,1fr);padding:13px}.setup-step-number{width:30px;height:30px}.telegram-token-form{grid-template-columns:1fr}.telegram-token-form button,.telegram-credential-actions button{width:100%}.telegram-credential-summary{align-items:flex-start}.telegram-connection-status{margin-bottom:4px}}
.telegram-submit-status{min-height:20px;margin:7px 0 0!important;color:#337064;font-size:var(--text-xs);font-weight:700}.primary-button:disabled,.danger-button:disabled,.soft-button:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}

/* In-product operator guide */
.help-context-button{border:1px solid #c9ddf2;border-radius:10px;background:#f8fbff;color:#346dcc;padding:8px 10px;font:inherit;font-size:var(--text-xs);font-weight:700;cursor:pointer;white-space:nowrap}.help-context-button:hover{border-color:#82afe6;background:#eef6ff}.topbar .help-context-button{width:36px;height:36px;padding:0;font-size:17px}.help-page{max-width:1160px}.help-page .page-intro{align-items:center}.help-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:22px 24px;border:1px solid #cde5f4;border-radius:18px;background:linear-gradient(110deg,#edf8ff,#effcf7 62%,#fff8e7)}.help-hero strong{display:block;font-size:var(--text-md)}.help-hero p{margin:5px 0 0;color:var(--muted);font-size:var(--text-sm)}.help-flow{display:flex;align-items:center;gap:8px;flex:0 0 auto}.help-flow span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#4b82ef,#25baa5);color:#fff;font-size:var(--text-xs);font-weight:800}.help-flow i{color:#7c94ad;font-style:normal}.help-search-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin-bottom:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.help-search-panel .search-field{min-width:0}.help-search-panel p{margin:0;color:var(--muted);font-size:var(--text-xs)}.help-article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.help-article{scroll-margin-top:96px;padding:20px;border:1px solid #dce8f3;border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(25,48,82,.04)}.help-article header{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.help-article header .eyebrow{margin:1px 0 4px}.help-article h3{margin:0;font-size:var(--text-md)}.help-article h4{margin:0 0 5px;color:#48617d;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.help-article section{margin-top:14px}.help-article section p,.help-article li,.help-article details p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.6}.help-article ol{margin:7px 0 0;padding-left:21px}.help-article li+li{margin-top:5px}.help-article-icon{display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;border-radius:11px;background:linear-gradient(145deg,#4d82ef,#25b9a7);color:#fff;font-size:var(--text-sm);font-weight:800}.help-outcome{margin-top:16px;padding:11px 12px;border-radius:11px;background:#eefaf6;color:#237566}.help-outcome b{font-size:var(--text-xs)}.help-outcome p{margin:3px 0 0;font-size:var(--text-sm);line-height:1.5}.help-article details{margin-top:13px;border-top:1px solid #e8eef4;padding-top:11px}.help-article summary{color:#386ec4;font-size:var(--text-sm);font-weight:700;cursor:pointer}.help-article details p{padding-top:8px}.help-empty{grid-column:1/-1;padding:32px;border:1px dashed #bfcede;border-radius:15px;background:#fff;text-align:center;color:var(--muted)}
@media(max-width:760px){.help-page .page-intro{align-items:flex-start}.help-print-button{width:100%}.help-hero{display:grid;padding:18px}.help-flow{justify-content:flex-start}.help-search-panel{grid-template-columns:1fr}.help-article-grid{grid-template-columns:1fr}.help-article{padding:17px}.help-context-button{align-self:flex-start}.topbar .help-context-button{width:34px;height:34px;flex:0 0 auto}}
@media print{body{background:#fff}.sidebar,.topbar,#runtimeContractWarning,.toast,.page:not(#page-help),.help-print-button,.help-context-button{display:none!important}.workspace{margin:0}.content{max-width:none;padding:0}.page#page-help{display:block!important}.help-hero,.help-search-panel{border-color:#d7dfe8;background:#fff}.help-search-panel{display:none}.help-article-grid{grid-template-columns:1fr}.help-article{break-inside:avoid;box-shadow:none}.help-article details{display:block}.help-article details:not([open])>p{display:block!important}.help-article summary{list-style:none}.help-article summary::-webkit-details-marker{display:none}}
.logout-button{height:36px;display:inline-flex;align-items:center;gap:6px;border:1px solid #d8e8f4;border-radius:10px;background:#fff;color:#52627a;padding:0 11px;font:inherit;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px rgba(43,82,120,.06)}.logout-button:hover{border-color:#8bb2df;background:#f5faff;color:#2d67bd}
.student-profile-avatar{display:block;object-fit:cover;border:1px solid #dce8f3}
.status-pill.working{background:#fff3d2;color:#986208}
