:root{font:15px/1.7 "Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,-apple-system,"Segoe UI",sans-serif;font-synthesis:none;color:#233e32;background:#f7f7ef}*{box-sizing:border-box}body{margin:0}a{color:#315c46;text-decoration:none}button,input,select,textarea{font:inherit}button,.btn{cursor:pointer;border:1px solid #b9c7b0;border-radius:6px;padding:8px 14px;background:#fffef9;color:#294c39;display:inline-block;min-height:42px}button:hover,.btn:hover{background:#e6eddd}button:disabled{cursor:wait;opacity:.6}.primary,button[type=submit]{background:#294c39;color:white}header{display:flex;gap:24px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #d9dfcf;padding:18px 30px;background:#fffef9}.brand{display:inline-flex;align-items:center;gap:10px;font-size:21px;font-weight:700;margin-right:auto}.brand-mark{width:38px;height:38px;display:block;flex:0 0 38px}.brand-copy{display:block;line-height:1.25}.brand small{display:block;margin-top:2px;font-size:11px;font-weight:400;letter-spacing:2px}.layout{display:grid;grid-template-columns:205px minmax(0,1fr);max-width:1560px;margin:auto}#nav{padding:24px 12px}#nav a{display:block;padding:9px 16px;border-radius:6px;margin-bottom:4px}#nav a[aria-current=page]{background:#dfe7d3;font-weight:700}main{padding:28px;min-width:0}h1{font-size:29px;line-height:1.4;margin:0 0 10px}h2{font-size:20px}p{margin:10px 0}.muted{color:#687861;font-size:13px}.panel,.tile{background:#fffef9;border:1px solid #dce2d3;border-radius:9px;padding:22px;margin:18px 0}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.tile{margin:0}.tile b{display:block;font-size:32px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fields label{display:flex;flex-direction:column;gap:5px;font-size:13px}.fields .wide{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #b9c7b0;padding:9px 11px;border-radius:5px;background:white;color:#233e32;min-height:43px}input[type=checkbox]{width:22px;min-height:22px}textarea{min-height:110px;resize:vertical}.table-wrap{overflow:auto;margin-top:18px;border:1px solid #dce2d3;border-radius:8px}table{width:100%;border-collapse:collapse;background:#fffef9;font-size:13px}th,td{padding:12px;text-align:left;border-bottom:1px solid #e6eadf;vertical-align:top}th{background:#edf0e6;white-space:nowrap}td{max-width:380px;overflow-wrap:anywhere}td button{padding:5px 9px;min-height:35px;margin:2px;font-size:12px}.badge{padding:3px 9px;background:#e6eddc;border-radius:12px;white-space:nowrap}.warn{color:#a34f2c;background:#fff0d9}.empty{padding:35px;border:1px dashed #bdc9b0;border-radius:8px;text-align:center}.login{max-width:480px;margin:35px auto}.login .fields{grid-template-columns:1fr}.login h1{margin-bottom:18px}dialog{width:min(850px,calc(100% - 28px));max-height:90vh;overflow:auto;border:1px solid #b9c7b0;border-radius:12px;background:#fffef7;padding:28px;color:#233e32}dialog::backdrop{background:#172c2366}.close{position:absolute;top:7px;right:8px;border:0;font-size:22px}.dialog-actions{margin-top:22px}.editor-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px;margin-top:15px}.file-tree{max-height:550px;overflow:auto}.file-tree button{display:block;width:100%;text-align:left;font-size:12px;overflow-wrap:anywhere;margin-bottom:5px}#editor{height:560px;border:1px solid #b9c7b0;min-width:0}#editor textarea{height:100%;font:13px/1.6 monospace;white-space:pre;tab-size:2}.danger{color:#a33c30}#notice{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);max-width:90vw;background:#294c39;color:#fff;padding:12px 20px;border-radius:7px;z-index:100;box-shadow:0 3px 15px #0002;display:none}#notice.show{display:block}pre{white-space:pre-wrap;word-break:break-word}details summary{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b48643;outline-offset:3px}[hidden]{display:none!important}@media(max-width:800px){header{padding:14px 18px;gap:12px}.layout{grid-template-columns:1fr}#nav{display:flex;overflow:auto;gap:5px;padding:10px 14px;border-bottom:1px solid #dce2d3}#nav a{white-space:nowrap;margin:0;padding:7px 12px}main{padding:18px}.editor-grid{grid-template-columns:1fr}.file-tree{max-height:140px;display:flex;gap:6px}.file-tree button{width:auto;flex-shrink:0}#editor{height:440px}}@media(max-width:500px){.fields{grid-template-columns:1fr}h1{font-size:25px}.panel{padding:16px}header .brand{font-size:18px}.brand-mark{width:32px;height:32px;flex-basis:32px}header>a:not(.brand){font-size:12px}}

.student-auth{max-width:560px}
.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 18px}
.auth-switch button{width:100%}
.student-auth-fields{display:grid;gap:14px}
.student-auth-fields>label{display:flex;flex-direction:column;gap:5px;font-size:13px}
.student-no-field strong{font-size:16px;color:#173c2b}
.student-no-row{display:flex;align-items:center;gap:8px}
.student-no-row input{width:180px;max-width:70vw;font-weight:700;font-size:17px;letter-spacing:.03em}
.student-no-row span{font-weight:700}
.password-inline{display:flex;gap:8px;align-items:center}
.password-inline input{max-width:220px}
button.compact{min-height:35px;padding:5px 10px;font-size:12px;white-space:nowrap}
.auth-footnote{margin-top:14px}
@media(max-width:500px){.student-auth{max-width:none}.student-no-row input{width:150px}.password-inline{align-items:stretch;flex-wrap:wrap}.password-inline input{max-width:none;flex:1 1 170px}.auth-switch{grid-template-columns:1fr 1fr}}

.scope-permissions{margin-top:14px;display:grid;gap:8px}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 12px;margin-top:8px}
.permission-grid label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line,#dfe6e1);border-radius:10px;background:#fff}
.grant-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line,#e8ece9)}
.grant-row:last-child{border-bottom:0}

.data-grid{margin-top:18px}
.data-grid-toolbar,.data-grid-selection,.data-grid-pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.data-grid-toolbar{justify-content:space-between;margin-bottom:10px}
.data-grid-search{max-width:320px}
.data-grid-filters{display:flex;gap:8px;flex-wrap:wrap}
.data-grid-filters select{width:auto;min-width:130px}
.data-grid-selection{min-height:42px;padding:8px 10px;background:#f4f6ef;border:1px solid #dce2d3;border-radius:8px}
.data-grid-selection:empty{display:none}
.data-grid-pager{justify-content:flex-end;margin-top:10px}
.sort-head{border:0;background:transparent;min-height:0;padding:0;font-weight:700;color:inherit}
.sort-head:hover{background:transparent;text-decoration:underline}
.selected-row td{background:#f0f5e9}
.row-actions{white-space:nowrap}
.impact-list{display:grid;gap:10px;margin:16px 0}
.impact-item{border:1px solid #dce2d3;border-radius:9px;padding:13px 15px;background:#fff}
.impact-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.impact-item p{margin:5px 0}
.impact-mode{font-size:12px;padding:3px 8px;border-radius:999px;background:#edf0e6;white-space:nowrap}
.impact-item.delete .impact-mode{background:#ffe9e5;color:#8a3027}
.impact-item.archive .impact-mode{background:#fff3dc;color:#86551d}
.impact-item.protected .impact-mode{background:#ececec;color:#555}
@media(max-width:700px){.data-grid-toolbar{align-items:stretch}.data-grid-search{max-width:none}.data-grid-filters{width:100%}.data-grid-filters select{flex:1 1 130px}.data-grid-pager{justify-content:flex-start}.row-actions{white-space:normal}}

.dashboard-section{margin:18px 0 22px}
.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dashboard-heading h2{margin:0}
.dashboard-heading p{margin:4px 0 0}
.dashboard-metrics{margin-top:14px}
.dashboard-tile span,.mini-metrics span,.attention-card span{display:block;color:#687861;font-size:13px}
.dashboard-tile small,.mini-metrics small{display:block;color:#7b8875;font-size:12px}
.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#edf0e6;color:#4c5d4f;font-size:12px;white-space:nowrap}
.status-pill.on{background:#e3f3e5;color:#245f34}
.status-pill.off{background:#f3e8e6;color:#81443d}
.mini-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:14px}
.mini-metrics>div,.attention-card{border:1px solid #dce2d3;border-radius:9px;padding:14px;background:#fbfcf7}
.mini-metrics b,.attention-card b{display:block;font-size:25px;line-height:1.3;margin:3px 0}
.attention-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}
.archive-center{scroll-margin-top:18px}
.archive-center .data-grid{margin-top:14px}
@media(max-width:600px){.dashboard-heading{display:block}.status-pill{margin-top:8px}.mini-metrics,.attention-grid{grid-template-columns:1fr 1fr}}

.cascade-warning{border:1px solid #d7a7a1;background:#fff2ef;border-radius:10px;padding:14px 16px;margin:14px 0;color:#7e342c}
.cascade-warning p{margin:5px 0 0;color:#7e342c}
.cascade-confirm{display:flex;flex-direction:column;gap:6px;margin-top:16px}
.cascade-confirm input{max-width:260px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700;letter-spacing:.08em}


/* ===== Phone workbench adaptation ===== */
@media(max-width:520px){
 body{overflow-x:hidden}
 header{padding:10px 12px;flex-wrap:wrap;gap:8px}
 header .brand{flex:1 1 100%;font-size:17px}
 header .brand small{display:none}
 header>a:not(.brand),header button,#identity{min-height:40px;display:inline-flex;align-items:center}
 .layout{display:block}
 #nav{
  position:sticky;top:0;z-index:20;width:100%;display:flex;overflow-x:auto;
  gap:5px;padding:8px 10px;background:#f7f8f2;scrollbar-width:none
 }
 #nav::-webkit-scrollbar{display:none}
 #nav a{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center}
 main{padding:12px}
 .panel{padding:14px;border-radius:10px}
 .fields,.permission-grid,.mini-metrics,.attention-grid{grid-template-columns:1fr!important}
 .auth-switch{grid-template-columns:1fr 1fr}
 .student-no-row,.password-inline{width:100%}
 .student-no-row input,.password-inline input{width:100%;max-width:none;min-height:44px;font-size:16px}
 input,select,textarea,button{font-size:16px}
 .data-grid-toolbar{align-items:stretch;flex-direction:column}
 .data-grid-filters{display:grid;grid-template-columns:1fr}
 .data-grid-filters select{width:100%}
 .data-table-wrap,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
 dialog{width:calc(100% - 20px);max-height:calc(100svh - 20px);overflow:auto;padding:20px 14px}
 #editor{height:56svh}
}

/* WangMathLab V4 brand */
.brand-mark{border-radius:10px;object-fit:cover}.brand small{color:#6d8798;letter-spacing:.08em}header{background:#f8fbfd;border-bottom-color:#d8e7f1}header>a:not(.brand){color:#356582}


/* ===== Admin master-data workbench: compact, readable, table-first editing ===== */
.master-data-grid{margin-top:14px}
.master-data-grid .data-grid-toolbar{gap:8px;margin-bottom:8px;align-items:flex-start}
.master-data-grid .data-grid-search{max-width:280px;min-height:36px;height:36px;padding:6px 10px;font-size:12.5px}
.master-data-grid .data-grid-sort-hint{font-size:11px;line-height:36px;white-space:nowrap}
.master-data-grid .data-grid-filters{gap:6px;justify-content:flex-end}
.master-data-grid .data-grid-filters select,
.master-data-grid .data-grid-page-size{min-width:108px;max-width:190px;min-height:36px;height:36px;padding:5px 27px 5px 8px;font-size:12px}
.master-data-grid .data-grid-selection{min-height:38px;padding:5px 8px;gap:6px;border-color:#cfdee7;background:#f1f8fc}
.master-data-grid .data-grid-selection strong{font-size:12px;color:#274f68}
.master-data-grid .data-grid-selection button{min-height:29px;padding:3px 8px;font-size:11px}
.master-data-grid .table-wrap{
 margin-top:8px;border:1px solid #d7e5ed;border-radius:9px;background:#fff;
 overflow:auto;max-width:100%;scrollbar-gutter:stable
}
.master-data-grid table{
 width:100%;min-width:max-content;table-layout:fixed;border-collapse:separate;border-spacing:0;
 background:#fff;font-size:12.5px;color:#29475b
}
.master-data-grid th,.master-data-grid td{
 padding:7px 8px;line-height:1.35;vertical-align:middle;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 max-width:260px;border-bottom:1px solid #e5edf2
}
.master-data-grid th{
 position:sticky;top:0;z-index:2;background:#eef7fc;color:#355b72;font-weight:800;
 box-shadow:0 1px 0 #d8e6ee
}
.master-data-grid tbody tr{height:42px}
.master-data-grid tbody tr:last-child td{border-bottom:0}
.master-data-grid tbody tr:hover td{background:#f7fbfd}
.master-data-grid .selected-row td{background:#edf7fc}
.master-data-grid .sort-head{
 max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 font-size:12px;font-weight:800;text-align:left
}
.master-data-grid td:first-child,.master-data-grid th:first-child{width:38px;min-width:38px;max-width:38px;text-align:center}
.master-data-grid input[type=checkbox]{width:17px;height:17px;min-height:17px}
.master-data-grid .row-actions{
 min-width:190px;max-width:none;overflow:visible!important;white-space:nowrap
}
.master-data-grid .row-actions button{
 min-height:29px;padding:3px 7px;margin:1px;font-size:11px;border-radius:6px
}
.grid-inline-select{
 width:100%;max-width:100%;height:30px;min-height:30px;padding:3px 24px 3px 7px;
 border:1px solid #cbdde8;border-radius:6px;background:#fff;color:#29485c;
 font-size:12px;line-height:1.2
}
.grid-inline-select:hover{border-color:#75aecd}
.grid-inline-select:focus{border-color:#4e91b8;box-shadow:0 0 0 2px #4e91b819;outline:0}
.grid-inline-select:disabled{opacity:.65;background:#f2f5f7}
.grid-badge{
 display:inline-flex;align-items:center;max-width:100%;padding:2px 7px;border-radius:999px;
 background:#eef5f8;color:#416176;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.registration-compact{padding:12px 16px;margin:12px 0}
.registration-compact summary{
 display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;
 list-style:none;color:#254b64
}
.registration-compact summary::-webkit-details-marker{display:none}
.registration-compact summary::after{content:"展开";font-size:11px;color:#6f8797}
.registration-compact[open] summary::after{content:"收起"}
.subject-extra-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 8px}
.subject-extra-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.2fr) auto;gap:8px;align-items:center;margin:7px 0}
.subject-extra-row input,.subject-extra-row select{min-height:38px;height:38px}
.campus-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;margin-top:14px}
.campus-check-grid>strong{grid-column:1/-1}
.campus-check-grid label{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #d8e4eb;border-radius:8px;background:#f9fcfd}
.campus-check-grid input[type=checkbox]{width:18px;min-height:18px}
.school-master-grid .row-actions{min-width:125px}
.class-master-grid .row-actions{min-width:150px}
.student-master-grid .row-actions{min-width:180px}
.teacher-master-grid .row-actions{min-width:170px}
@media(max-width:900px){
 .master-data-grid .data-grid-toolbar{display:grid;grid-template-columns:1fr}
 .master-data-grid .data-grid-search{max-width:none}
 .master-data-grid .data-grid-sort-hint{line-height:1.4}
 .master-data-grid .data-grid-filters{justify-content:flex-start}
}
@media(max-width:520px){
 .master-data-grid .data-grid-filters{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
 .master-data-grid .data-grid-filters select{flex:0 0 140px;width:140px}
 .master-data-grid th,.master-data-grid td{padding:7px 6px}
 .master-data-grid .row-actions{white-space:nowrap}
 .subject-extra-row{grid-template-columns:1fr}
}


/* ===== Admin V14: calm page header, collapsible filters and readable field controls ===== */
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 14px}
.page-heading>div:first-child{min-width:0;max-width:850px}
.page-heading h1{margin:0 0 6px}
.page-heading>div:first-child>.muted{margin:0;line-height:1.75}
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:52%;padding-top:2px}
.page-actions button,.page-actions .btn{min-height:38px;padding:7px 12px}

.master-data-grid .data-grid-toolbar{position:relative;z-index:30;display:grid;grid-template-columns:minmax(220px,310px) minmax(180px,1fr) auto;align-items:center;gap:10px;margin:0 0 10px;overflow:visible}
.master-data-grid .data-grid-search{max-width:none;width:100%;height:38px;min-height:38px}
.master-data-grid .data-grid-sort-hint{line-height:1.45;white-space:normal}
.data-grid-controls{position:relative;z-index:31;display:flex;justify-content:flex-end;gap:8px;align-items:flex-start;overflow:visible}
.data-grid-control{position:relative}
.data-grid-filter-control,.data-grid-column-control{z-index:1}.data-grid-filter-control[open],.data-grid-column-control[open]{z-index:40}
.data-grid-control>summary{list-style:none;cursor:pointer;min-height:38px;display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #cbdde8;border-radius:8px;background:#fff;color:#315b74;font-size:12px;font-weight:800;white-space:nowrap;user-select:none}
.data-grid-control>summary::-webkit-details-marker{display:none}
.data-grid-control>summary::after{content:"⌄";font-size:12px;color:#7a92a2}
.data-grid-control[open]>summary{border-color:#78afd0;background:#f4faff}
.data-grid-control[open]>summary::after{content:"⌃"}
.master-data-grid .data-grid-filters,.master-data-grid .data-grid-column-picker{position:absolute;right:0;top:44px;z-index:50;display:grid;gap:9px;padding:12px;border:1px solid #cfe0ea;border-radius:10px;background:#fff;box-shadow:0 14px 34px #244d681a}
.master-data-grid .data-grid-filters{grid-template-columns:repeat(2,minmax(150px,1fr));width:min(470px,78vw)}
.master-data-grid .data-grid-filters label{display:grid;gap:4px;font-size:11px;color:#60798a}
.master-data-grid .data-grid-filters label:first-of-type{display:contents}
.master-data-grid .data-grid-filters select,.master-data-grid .data-grid-page-size{width:100%;max-width:none;min-width:0;height:36px;min-height:36px;padding:5px 28px 5px 9px}
.master-data-grid .data-grid-column-picker{grid-template-columns:repeat(2,minmax(145px,1fr));width:min(400px,76vw);max-height:360px;overflow:auto}
.master-data-grid .data-grid-column-picker label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;font-size:12px;color:#35566a}
.master-data-grid .data-grid-column-picker label:hover{background:#f3f8fb}
.master-data-grid .data-grid-column-picker input{width:16px;height:16px;min-height:16px;flex:none}

.master-data-grid .data-grid-selection{background:#f7fafc;border-color:#d8e5ec}
.master-data-grid .table-wrap{position:relative;z-index:1;border-radius:10px;border-color:#d5e3eb;box-shadow:0 1px 0 #fff inset}
.master-data-grid table{font-size:12.5px}
.master-data-grid th{height:46px;padding:8px 10px!important;background:#f4f9fc!important;color:#31566d!important;box-shadow:inset 0 -1px #d6e4ec!important;overflow:visible!important;text-overflow:clip!important}
.master-data-grid th .sort-head{display:flex;align-items:center;width:100%;min-height:30px;height:auto!important;padding:4px 2px!important;margin:0!important;border:0!important;background:transparent!important;color:#31566d!important;box-shadow:none!important;line-height:1.35!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.master-data-grid th.actions-head{min-width:92px}
.master-data-grid td{padding:8px 9px;line-height:1.4}
.master-data-grid tbody tr{height:44px}
.master-data-grid .row-actions{position:sticky;right:0;background:#fff;box-shadow:-1px 0 #e4edf2;z-index:1}
.master-data-grid tbody tr:hover .row-actions{background:#f7fbfd}
.master-data-grid thead th:last-child{position:sticky;right:0;z-index:4}
.master-data-grid .data-grid-pager{gap:8px;color:#637b8c;font-size:12px}
.master-data-grid .data-grid-pager button{min-height:32px;padding:4px 9px}

.master-import-note{margin:10px 0 0;padding:10px 12px;border:1px solid #d8e6ef;border-radius:8px;background:#f8fbfd;color:#60798a;font-size:12px;line-height:1.7}
.master-import-actions{display:flex;gap:8px;flex-wrap:wrap}

.courseware-master-grid .row-actions{min-width:150px}
.interactive-admin-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px;border:1px solid #d5e6ef;border-radius:14px;background:linear-gradient(135deg,#f6fbff,#fff)}
.interactive-admin-card h2{margin:4px 0 8px}
.interactive-admin-card p{margin:0;color:#627a8a}
.interactive-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.interactive-admin-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.interactive-admin-meta span{padding:4px 8px;border-radius:999px;background:#eaf6fd;color:#356d8b;font-size:11px}

@media(max-width:900px){
 .page-heading{display:grid;grid-template-columns:1fr}.page-actions{max-width:none;justify-content:flex-start;padding-top:0}
 .master-data-grid .data-grid-toolbar{grid-template-columns:1fr auto}.master-data-grid .data-grid-sort-hint{grid-column:1/-1;grid-row:2}
 .master-data-grid .data-grid-filters,.master-data-grid .data-grid-column-picker{right:0}
 .interactive-admin-card{grid-template-columns:1fr}.interactive-admin-actions{justify-content:flex-start}
}
@media(max-width:600px){
 .master-data-grid .data-grid-toolbar{grid-template-columns:1fr}.data-grid-controls{justify-content:flex-start}
 .master-data-grid .data-grid-filters,.master-data-grid .data-grid-column-picker{position:fixed;left:12px;right:12px;top:auto;width:auto;max-height:55vh;overflow:auto}
 .master-data-grid .data-grid-filters{grid-template-columns:1fr}
 .master-data-grid .data-grid-column-picker{grid-template-columns:1fr 1fr}
 .page-actions button{flex:1 1 auto}
}


/* ===== Student staged edits ===== */
.student-save-drafts{background:#138a5b!important;border-color:#138a5b!important;color:#fff!important;box-shadow:0 7px 18px #138a5b24!important}
.student-save-drafts:hover{background:#0f784e!important}
.student-discard-drafts{border-color:#e4b4a8!important;color:#9a4733!important;background:#fff8f6!important}
.student-draft-note{margin:0 0 10px;padding:10px 13px;border:1px solid #efd9a7;border-radius:10px;background:#fff9e8;color:#8a651d;font-size:12px;font-weight:750}
.grid-inline-select.pending-field{border-color:#e39a27!important;background:#fff7e7!important;box-shadow:0 0 0 2px #f5b84a26}
.pending-change-list{display:grid;gap:8px;max-height:320px;overflow:auto;margin:15px 0;padding:4px}
.pending-change-list>div{display:grid;grid-template-columns:minmax(110px,160px) 1fr;gap:12px;padding:10px 12px;border:1px solid #dbe7ee;border-radius:9px;background:#f9fcfe}
.pending-change-list strong{color:#244f69}.pending-change-list span{color:#637d8e;line-height:1.6}
.danger-soft{border-color:#e3afa4!important;color:#9b4632!important;background:#fff8f6!important}


.student-no-preview{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 12px;margin:-3px 0 2px;padding:11px 13px;border:1px solid #cfe3ef;border-radius:10px;background:#f5fbff}
.student-no-preview span{font-size:11px;color:#668195;font-weight:700}
.student-no-preview strong{font-size:16px;color:#176b9d;letter-spacing:.035em}
.student-no-preview small{grid-column:2;font-size:10px;color:#7d93a1}

/* Functional polish 2026-10-06: student account hierarchy. */
.student-auth-primary-switch{margin-bottom:12px}
.existing-account-box{padding:14px;border:1px solid #d6e6ef;border-radius:16px;background:#f8fcff}
.login-method-intro{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 2px 10px}.login-method-intro strong{font-size:13px;color:#1d536f}.login-method-intro span{font-size:10px;color:#7890a0}
.student-login-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.student-login-methods button{min-height:40px;border-radius:10px;background:#fff;color:#2c617f;border-color:#cbdfea}
.student-login-methods button.primary{background:#e5f5ff;color:#087fc4;border-color:#89c9eb;box-shadow:inset 0 0 0 1px #89c9eb}
@media(max-width:500px){.existing-account-box{padding:12px}.login-method-intro{display:grid;gap:2px}.student-login-methods{gap:6px}.student-login-methods button{padding-inline:8px;font-size:12px}}


/* Functional polish 2026-10-06: admin request queue and mobile notice clearance. */
.profile-change-dashboard-alert{border:1px solid #f1c47f;background:linear-gradient(135deg,#fff9e9,#fffef9);box-shadow:0 8px 24px #8d5f1612}
.profile-change-dashboard-alert .dashboard-heading p{margin:3px 0 0;color:#7a684c;font-size:12px}
.profile-change-request-list{display:grid;gap:8px;margin-top:13px}.profile-change-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 13px;border:1px solid #ead9b9;border-radius:11px;background:#fff}
.profile-change-request-row>div:first-child{min-width:0}.profile-change-request-row strong{display:block;color:#31546a}.profile-change-request-row span{display:block;color:#7b8b93;font-size:11px}.profile-change-request-row p{margin:4px 0 0;font-size:12px}.profile-change-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.profile-change-actions button{min-height:36px;padding:6px 9px;font-size:11px}
@media(max-width:700px){.profile-change-request-row{grid-template-columns:1fr}.profile-change-actions{justify-content:flex-start}}
@media(max-width:600px){body.student-app-mode #notice{bottom:calc(88px + env(safe-area-inset-bottom))!important;z-index:160!important;max-width:calc(100vw - 28px)}}
