:root{font-family:"Segoe UI",Arial,sans-serif;color:#172033;background:#f4f6fa;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:#f4f6fa}
button,input,select{font:inherit}
button{cursor:pointer}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}
.topbar{background:#1f2937;color:#fff;padding:14px 0;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.topbar-inner{display:flex;gap:18px;align-items:center;justify-content:space-between}
.brand{display:flex;flex-direction:column;gap:3px}
.brand strong{font-size:19px}
.brand span{font-size:12px;opacity:.72}
.panel{background:#fff;border:1px solid #e2e7ef;border-radius:16px;box-shadow:0 8px 28px rgba(32,50,80,.07);padding:24px}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.login{width:min(520px,100%)}
.login h1{margin:0 0 8px;font-size:28px}
.muted{color:#697386}
.form-row{display:grid;gap:8px;margin:14px 0}
label{font-weight:600}
input,select{width:100%;border:1px solid #cfd6e2;background:#fff;border-radius:10px;padding:11px 12px;outline:none}
input:focus,select:focus{border-color:#6b7cff;box-shadow:0 0 0 3px rgba(107,124,255,.12)}
.user-combobox{position:relative}
.user-search-list{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:280px;overflow:auto;padding:5px;background:#fff;border:1px solid #cfd6e2;border-radius:10px;box-shadow:0 12px 30px rgba(32,50,80,.16)}
.user-search-option{display:block;width:100%;padding:10px 11px;border:0;border-radius:7px;background:#fff;color:#172033;text-align:left}
.user-search-option:hover,.user-search-option.active{background:#eef2ff;color:#283aa5}
.user-search-empty{padding:11px;color:#697386}
.primary{border:0;border-radius:10px;padding:11px 16px;background:#4557d9;color:#fff;font-weight:700}
.primary:hover{filter:brightness(1.05)}
.secondary{border:1px solid #cfd6e2;border-radius:10px;padding:10px 14px;background:#fff;color:#25324a}
.danger{border:1px solid #d04b40;border-radius:10px;padding:10px 14px;background:#fff4f2;color:#a42e25;font-weight:700}
.danger:hover{background:#ffe9e6}
.notice{margin-top:14px;padding:11px 13px;border-radius:10px;background:#eef2ff;color:#28325d}
.error{background:#fff0ef;color:#a32d22}
.success{background:#edf9f0;color:#1b6e32}
main{padding:24px 0 50px}
.controls{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.card{background:#fff;border:1px solid #e2e7ef;border-radius:14px;padding:16px}
.card h3{margin:0 0 8px;font-size:14px;color:#64748b}
.value{font-size:16px;font-weight:700}
.profile-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.profile-switch select{width:auto;min-width:280px}
.toolbar{display:flex;gap:10px;align-items:end;justify-content:space-between;flex-wrap:wrap;margin:18px 0}
.toolbar-left{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.table-wrap{overflow:auto;border:1px solid #e2e7ef;border-radius:12px;background:#fff}
table{width:100%;border-collapse:collapse;min-width:620px}
th,td{padding:11px 12px;border-bottom:1px solid #edf0f4;text-align:left}
th{background:#f7f8fb;font-size:13px;color:#596579;position:sticky;top:0}
td.num,th.num{text-align:center;width:56px}
.grade-select{width:100px;padding:8px 9px}
.footer-note{margin-top:14px;color:#6b7280;font-size:13px}
.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#3342a8;font-size:12px;font-weight:700}
.empty{padding:30px;text-align:center;color:#687386}
.hidden{display:none!important}
hr{border:0;border-top:1px solid #e9edf3;margin:20px 0}
@media(max-width:900px){.controls{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.container{width:min(100% - 20px,1180px)}.panel{padding:18px;border-radius:13px}.topbar-inner{align-items:flex-start}.controls{grid-template-columns:1fr}.toolbar-left{width:100%}.toolbar-left>*{width:100%}.profile-switch select{width:100%;min-width:0}.brand strong{font-size:16px}.login h1{font-size:24px}}
.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.page-head h2{margin:0 0 6px}
.controls-5{grid-template-columns:repeat(5,1fr)}
.assignment-note{margin:14px 0;padding:12px 14px;border-radius:10px;background:#f6f8fc;color:#4a566b;border:1px solid #e4e8f0;font-size:13px;line-height:1.45}
.journal-head{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:18px 0 12px}
.journal-title{font-size:18px;font-weight:700}
@media(max-width:1100px){.controls-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.controls-5{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.controls-5{grid-template-columns:1fr}.page-head{gap:8px}.profile-switch{align-items:stretch}.profile-switch select{min-width:0}.assignment-note{font-size:12px}}
.scope-note{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f5f7fb;color:#5b6577;font-size:12px;line-height:1.35}
.readonly-row{background:#fafbfc}
.readonly-row td{color:#5f697a}
.readonly-badge{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:999px;background:#eef1f5;color:#7a8494;font-size:10px;font-weight:700;vertical-align:middle}
.grade-select:disabled{background:#f2f4f7;color:#526071;cursor:not-allowed}
.top-actions{display:flex;gap:8px;flex-wrap:wrap}
.mode-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0}
.mode-button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:16px;border:1px solid #d6dce7;border-radius:12px;background:#fff;text-align:left}
.mode-button:hover{border-color:#7b88e8;background:#fafbff}
.mode-button strong{font-size:17px}
.mode-button span{color:#697386;font-size:13px;line-height:1.35}
.admin-layout{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:start}
.admin-nav{position:sticky;top:12px;display:grid;gap:6px}
.admin-nav button{border:1px solid #dce2ec;background:#fff;border-radius:10px;padding:11px 12px;text-align:left;color:#344056}
.admin-nav button.active{background:#eef1ff;border-color:#6a78df;color:#3442a6;font-weight:700}
.admin-content{min-width:0}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}
.stat-card{background:#fff;border:1px solid #e2e7ef;border-radius:14px;padding:16px}
.stat-value{font-size:28px;font-weight:800;margin-bottom:4px}
.admin-help{line-height:1.5}
.admin-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.compact-admin-details{margin-bottom:14px}
.compact-admin-details summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}
.compact-admin-details summary::-webkit-details-marker{display:none}
.compact-admin-details summary:before{content:'▸';color:#4d5dd1;font-weight:800}
.compact-admin-details[open] summary:before{content:'▾'}
.compact-admin-details[open] summary{margin-bottom:14px}
.compact-create-group{align-items:end}
.compact-registry{margin-top:14px;max-height:330px;overflow:auto}
.compact-registry th,.compact-registry td{padding:7px 9px}
.group-row-curator{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:6px;min-width:300px}
.group-row-curator input,.group-row-curator button{padding:7px 9px;font-size:12px}
.bulk-word-upload{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #e6eaf1}
.assessment-common-panel,.assessment-exception-panel{margin-bottom:14px}
.assessment-common-panel #assessmentDatesSaved,.assessment-exception-panel #assessmentOverridesSaved{margin-top:18px;padding-top:14px;border-top:1px solid #e5e9f1}
.override-date-details{margin:12px 0;padding:12px 14px;border:1px solid #dfe5ef;border-radius:10px;background:#fafbfe}
.override-date-details summary{cursor:pointer;font-weight:700;color:#3647ad}
.assessment-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.exception-actions{display:flex;gap:6px;flex-wrap:wrap}
.exception-actions button{padding:7px 9px;font-size:12px}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid-4{display:grid;grid-template-columns:1.1fr .8fr .8fr 1.7fr;gap:10px;margin:12px 0}
.form-grid-3{display:grid;grid-template-columns:1fr 1.7fr 1fr;gap:10px;margin:12px 0}
.form-grid-2{display:grid;grid-template-columns:1fr auto;gap:10px;margin:12px 0}
.section-title{font-weight:700;margin-bottom:9px}
.teacher-picker-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:10px}
.teacher-search-wrap{width:min(330px,100%)}
.teacher-search-wrap label{display:block;margin-bottom:5px;font-size:12px;color:#596579}
.teacher-search-wrap input{padding:8px 10px}
.teacher-search-count{font-size:12px}
.teacher-pick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.teacher-pick{display:flex;gap:7px;align-items:center;min-height:38px;padding:6px 8px;border:1px solid #e2e7ef;border-radius:8px;background:#fafbfc;font-weight:500;line-height:1.2;cursor:pointer}
.teacher-pick:hover{border-color:#aeb9d3;background:#f5f7ff}
.teacher-pick:has(input:checked){border-color:#7787e4;background:#eef1ff;color:#283aa5}
.teacher-pick input{width:auto;flex:0 0 auto;margin:0}
.teacher-pick span{min-width:0;overflow-wrap:anywhere}
.staff-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.staff-card{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:104px;padding:11px;border:1px solid #dfe5ef;border-radius:10px;background:#fff}
.staff-card strong{display:block;line-height:1.25}
.staff-card .muted{font-size:12px;line-height:1.3;margin-top:4px}
.staff-actions{display:flex;gap:6px;flex-wrap:wrap}
.staff-actions button,.staff-card>button{padding:7px 9px;font-size:12px}
.commission-grid .staff-card{border-color:#bfc8f5;background:#f8f9ff}
.staff-search-results{margin-top:8px;border:1px solid #e0e5ee;border-radius:10px;overflow:hidden}
.staff-search-row,.staff-create-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid #edf0f5}
.staff-search-row:last-child,.staff-create-row:last-child{border-bottom:0}
.staff-create-row{background:#f7f8fb}
.assessment-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.assessment-checks label{font-weight:500}
.role-checks{display:flex;gap:10px;flex-wrap:wrap}
textarea{width:100%;resize:vertical;border:1px solid #cfd6e2;border-radius:10px;padding:11px 12px;font:inherit}
textarea:focus{outline:none;border-color:#6b7cff;box-shadow:0 0 0 3px rgba(107,124,255,.12)}
@media(max-width:1100px){.teacher-pick-grid,.staff-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.stats-grid{grid-template-columns:repeat(3,1fr)}.admin-layout{grid-template-columns:1fr}.admin-nav{position:static;display:flex;overflow:auto}.admin-nav button{white-space:nowrap}.split-grid{grid-template-columns:1fr}}
@media(max-width:800px){.teacher-pick-grid,.staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-picker-head{align-items:stretch;flex-direction:column}.teacher-search-wrap{width:100%}}
@media(max-width:700px){.stats-grid{grid-template-columns:repeat(2,1fr)}.form-grid-4,.form-grid-3,.form-grid-2{grid-template-columns:1fr}.assessment-checks{grid-template-columns:1fr}}
@media(max-width:700px){.bulk-word-upload,.group-row-curator{grid-template-columns:1fr}.group-row-curator{min-width:230px}}
@media(max-width:500px){.teacher-pick-grid,.staff-grid{grid-template-columns:1fr}.staff-search-row,.staff-create-row{align-items:stretch;flex-direction:column}.staff-search-row button,.staff-create-row button{width:100%}}


.full-name-editor{display:flex;gap:6px;align-items:center;min-width:300px}
.full-name-editor input{min-width:200px;padding:8px 9px}
.full-name-editor button{flex:0 0 auto;border:1px solid #cfd6e2;border-radius:8px;padding:8px 10px;background:#fff;color:#25324a}
.report-actions{display:flex;justify-content:flex-end;margin:10px 0 16px}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body{background:#fff;color:#111;font-size:9pt}
  .topbar,.admin-nav,.admin-toolbar,.report-actions,button{display:none!important}
  main,.container,.admin-content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  .admin-layout{display:block!important}
  .panel{border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important;background:#fff!important}
  .table-wrap{overflow:visible!important;border:0!important}
  table{width:100%!important;min-width:0!important;font-size:8pt;border-collapse:collapse}
  th,td{padding:4px 5px!important;border:1px solid #aaa!important}
  th{position:static!important;background:#eee!important;color:#111!important}
  .stats-grid{grid-template-columns:repeat(5,1fr)!important;gap:6px!important}
  .stat-card{border:1px solid #aaa!important;border-radius:0!important;padding:6px!important;box-shadow:none!important}
  .stat-value{font-size:15pt!important}
  h3,h4{break-after:avoid}
}

/* Report export buttons wrap instead of overflowing on narrower screens. */
.report-actions{flex-wrap:wrap;gap:8px}

/* Group roster and student personal cards */
.section-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 4px;border-bottom:1px solid #e2e7ef;padding-bottom:10px}
.section-tabs button{border:1px solid #cfd6e2;border-radius:10px;padding:10px 14px;background:#fff;color:#344056}
.section-tabs button.active{background:#eef1ff;border-color:#6a78df;color:#3442a6;font-weight:700}
.roster-summary{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.status-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}
.status-pill.active{background:#eaf8ee;color:#1b6e32}
.status-pill.inactive{background:#fff0ef;color:#a32d22}
.roster-inactive td{background:#fffafa;color:#6f5960}
.roster-date{font-size:11px;margin-top:4px}
.student-card{margin-top:18px;border-color:#cdd7e8}
.student-card h3,.student-card h4{margin-top:0}
.student-card-fields,.student-status-fields{grid-template-columns:1fr 1fr}
.student-card .table-wrap{margin-top:10px}
.word-recognizer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:14px 0;border:1px dashed #9bb3e8;border-radius:12px;background:#f7f9ff}
.file-button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer}
.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.student-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:10px 0 14px}
.student-profile-grid .form-row{margin:0}
.student-profile-grid .profile-wide{grid-column:1/-1}
.profile-details{border:1px solid #dce4f2;border-radius:10px;padding:0 12px;margin:10px 0;background:#fbfcff}
.profile-details summary{cursor:pointer;font-weight:700;padding:11px 0;color:#26395f}
.profile-details[open] summary{border-bottom:1px solid #e8edf6;margin-bottom:10px}
.student-card-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0;border-bottom:1px solid #dce4f2;padding-bottom:9px}
.student-card-tab{border:1px solid #ccd6e6;border-radius:9px;background:#fff;color:#344056;padding:8px 11px}
.student-card-tab.active{background:#eef1ff;border-color:#6a78df;color:#3442a6;font-weight:700}
.card-tab-pane{display:none}
.card-tab-pane.active{display:block}
.academic-history-wrap{max-height:62vh;overflow:auto}
.academic-history-table{min-width:900px;border-collapse:collapse}
.academic-history-table th,.academic-history-table td{padding:4px;border:1px solid #d6deea;vertical-align:middle}
.academic-history-table input,.academic-history-table select{box-sizing:border-box;width:100%;min-width:62px;padding:5px 6px;border:1px solid #bdc9d9;border-radius:5px;background:#fff}
.academic-history-table td:nth-child(4) input{min-width:260px}
.academic-history-table .remove-history-row{min-width:32px;padding:5px 8px;color:#9e2920}
.academic-history-table .journal-history-row td{background:#f3f8ff}
.academic-history-table .journal-history-row input,.academic-history-table .journal-history-row select{background:#eef4fb;color:#40536b}
.journal-sync-badge{display:inline-block;margin-top:3px;padding:2px 6px;border-radius:999px;background:#dfeeff;color:#245a8d;font-size:10px;font-weight:700}
.history-subhead{margin-top:18px}
.graduation-fields{margin-top:10px}
.save-full-card{margin-top:16px}
.roster-add{margin:14px 0 20px;padding:16px;border:1px solid #dce3ee;border-radius:12px;background:#fafbff}
.roster-add h4{margin:0 0 10px}
.curator-assignment{align-items:end}
@media(max-width:700px){.student-card-fields,.student-status-fields,.student-profile-grid{grid-template-columns:1fr}.section-tabs button{width:100%}.word-recognizer{align-items:stretch;flex-direction:column}.student-card-tab{flex:1 1 42%}}


/* Editable curator grade and attendance table */
.curator-edit-panel{margin-top:24px;padding:16px;border:1px solid #dce3ee;border-radius:14px;background:#fff}
.curator-edit-wrap{max-height:70vh;overflow:auto}
.curator-edit-table{min-width:850px}
.curator-edit-table th{vertical-align:bottom}
.curator-edit-name{min-width:210px;position:sticky;left:0;background:#f8faff;z-index:2}
.curator-edit-discipline{min-width:125px;max-width:170px;white-space:normal}
.curator-edit-cell{min-width:112px;text-align:center}
.curator-edit-cell select{width:58px;min-width:58px;padding:6px 3px;margin:2px;border:1px solid #cfd6e2;border-radius:7px;background:#fff;font:inherit}
.curator-edit-cell input{width:48px;min-width:48px;padding:6px 3px;margin:2px;border:1px solid #cfd6e2;border-radius:7px;font:inherit;text-align:center}
.curator-edit-panel .page-head{align-items:flex-start;gap:12px;flex-wrap:wrap}
.curator-edit-panel .page-head p{max-width:760px}

/* Spreadsheet-like editable cells for curator */
.curator-edit-cell{min-width:105px;text-align:center;vertical-align:middle}
.curator-edit-cell .curator-grade{display:block;width:48px;min-width:48px;margin:2px auto 5px;padding:5px 3px;text-align:center;border:1px solid #bfcbd9;border-radius:4px;background:#fff;font:inherit}
.curator-absence-wrap{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
.curator-absence-wrap .muted{font-size:11px}
.curator-edit-cell .curator-absence{width:48px;min-width:48px;margin:2px;padding:5px 2px;text-align:center;border:1px solid #bfcbd9;border-radius:4px;background:#fff;font:inherit}
.curator-edit-table input:focus{outline:none;box-shadow:inset 0 0 0 2px #5a91d6;background:#f4f8ff}

/* Excel-like grid: each discipline has two independent columns */
.curator-edit-table{border-collapse:collapse!important;table-layout:auto}
.curator-edit-table th,.curator-edit-table td{border:1px solid #c7cfda!important;padding:5px 6px!important}
.curator-edit-table thead th{background:#eaf3fc!important;color:#24354b;text-align:center;vertical-align:middle}
.curator-edit-table .curator-edit-discipline{min-width:150px;max-width:220px;white-space:normal}
.curator-edit-table .curator-edit-subhead{min-width:78px;font-size:12px;white-space:nowrap}
.curator-edit-table .curator-edit-grade-cell,.curator-edit-table .curator-edit-absence-cell{min-width:78px;width:78px;text-align:center;vertical-align:middle}
.curator-edit-table .curator-grade,.curator-edit-table .curator-absence{box-sizing:border-box;width:100%;min-width:0;max-width:90px;height:32px;margin:0;padding:4px 5px;border:0;border-radius:0;background:transparent;font:inherit;text-align:center}
.curator-edit-table .curator-edit-name{min-width:210px;background:#f8faff;white-space:nowrap}
.curator-edit-table tbody tr{height:40px}
.curator-edit-table tbody td{background:#fff}

/* Compact typography for curator spreadsheet */
.curator-edit-panel{padding:10px!important}
.curator-edit-table{font-size:12px!important}
.curator-edit-table th,.curator-edit-table td{padding:3px 4px!important;line-height:1.15}
.curator-edit-table .curator-edit-name{min-width:155px;max-width:175px;font-size:12px;white-space:normal}
.curator-edit-table .curator-edit-discipline{min-width:105px;max-width:150px;font-size:11px;line-height:1.15}
.curator-edit-table .curator-edit-subhead{min-width:54px;font-size:10px;padding:3px 2px!important;white-space:normal}
.curator-edit-table .curator-edit-grade-cell,.curator-edit-table .curator-edit-absence-cell{width:56px;min-width:56px;padding:2px!important}
.curator-edit-table .curator-grade,.curator-edit-table .curator-absence{height:21px;padding:1px 2px;font-size:12px}
.curator-edit-table .curator-edit-excused-head{min-width:120px;max-width:140px;font-size:11px;line-height:1.15}
.curator-edit-table .curator-edit-excused-cell{min-width:120px;text-align:center;vertical-align:middle;background:#f7fbff}
.curator-edit-table .curator-excused{box-sizing:border-box;width:64px;height:21px;padding:1px 3px;border:0;border-radius:0;background:transparent;font:inherit;text-align:center}
.curator-edit-table tbody tr{height:24px}
.curator-edit-table tbody td{padding:1px 3px!important;line-height:1}
.curator-edit-wrap{max-height:none;overflow:auto}

/* Compact curator summary table below the editable journal */
.curator-results-section{margin-top:18px}
.curator-results-section h3{margin-bottom:8px}
.curator-results-table{font-size:12px}
.curator-results-table th,.curator-results-table td{padding:4px 6px;line-height:1.1}
.curator-results-table tbody tr{height:27px}
.curator-results-table .link-button{padding:0;line-height:1.1}

/* Per-group assessment timing status */
.assessment-status-panel{margin:16px 0;padding:15px;border:1px solid #d8e0ec;border-radius:12px;background:#f8faff}
.assessment-status-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}
.assessment-status-head>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.assessment-status-head .muted{max-width:650px}
.status-pill.planned{background:#fff4d6;color:#7a5500}
.status-pill.completed{background:#eaf8ee;color:#1b6e32}
.assessment-status-fields,.assessment-status-editor{display:grid;grid-template-columns:minmax(220px,1fr) minmax(190px,.8fr) minmax(260px,1.5fr) auto;gap:10px;align-items:end}
.assessment-status-note{min-width:0}
.assessment-status-fields label,.assessment-status-editor label{display:block;margin-bottom:5px;font-weight:600;font-size:13px}
.assessment-status-fields input,.assessment-status-fields select,.assessment-status-editor input,.assessment-status-editor select{width:100%;box-sizing:border-box}
#adminOccurrenceEditor{grid-column:2/-1}
@media(max-width:900px){.assessment-status-head{display:block}.assessment-status-head .muted{margin-top:8px}.assessment-status-fields,.assessment-status-editor{grid-template-columns:1fr 1fr}.assessment-status-note{grid-column:1/-1}}
@media(max-width:600px){.assessment-status-fields,.assessment-status-editor{grid-template-columns:1fr}.assessment-status-note{grid-column:auto}#adminOccurrenceEditor{grid-column:auto}}

/* Excel-style clipboard paste into the teacher journal */
.excel-paste-help{margin:14px 0 10px;padding:12px 14px;border:1px dashed #9aabd1;border-radius:10px;background:#f7f9ff;color:#344056;line-height:1.45}
.excel-paste-help kbd{display:inline-block;min-width:20px;padding:1px 5px;border:1px solid #bdc6d6;border-bottom-width:2px;border-radius:4px;background:#fff;font:inherit;font-size:12px;text-align:center}
.teacher-journal-table .grade-select,.teacher-journal-table .absence-input,.curator-edit-table .curator-grade,.curator-edit-table .curator-absence{transition:background-color .15s,border-color .15s,box-shadow .15s}
.teacher-journal-table .paste-updated,.curator-edit-table .paste-updated{background:#eaf8ee!important;border-color:#48a868!important;box-shadow:0 0 0 2px rgba(72,168,104,.15)}
.teacher-journal-table .paste-invalid,.curator-edit-table .paste-invalid{background:#fff0ef!important;border-color:#d95149!important;box-shadow:0 0 0 2px rgba(217,81,73,.12)}
.paste-errors{margin-top:7px;font-size:13px;line-height:1.45}
.admin-official-reports{margin:18px 0;padding:16px;border:1px solid var(--border);border-radius:14px;background:#f8faff}
.admin-official-reports h4{margin-top:0}
.admin-official-reports .report-actions{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}
@media(max-width:900px){.admin-official-reports .report-actions{grid-template-columns:1fr}}

/* Admin assessment readiness dashboard */
.readiness-panel{margin:14px 0}
.readiness-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.readiness-controls select{width:auto;min-width:145px}
.readiness-summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:12px 0 16px}
.readiness-card{padding:12px 14px;border:1px solid #dbe3ee;border-radius:12px;background:#f8faff;display:flex;flex-direction:column;gap:3px}
.readiness-card strong{font-size:22px;color:#18253a}.readiness-card span{font-size:12px;color:#637087}
.readiness-card.ready{background:#eef9f1;border-color:#b9dfc4}.readiness-card.partial{background:#fff8e8;border-color:#ead49d}.readiness-card.accent{background:#eef2ff;border-color:#c8d0ff}
.readiness-table table{min-width:1180px;font-size:12px}.readiness-table th,.readiness-table td{padding:7px 8px;vertical-align:top}
.readiness-progress{height:5px;margin-top:5px;overflow:hidden;border-radius:999px;background:#e1e7f0}.readiness-progress span{display:block;height:100%;border-radius:inherit;background:#5265df}
.readiness-teachers summary{cursor:pointer;color:#35466a;font-weight:700}.readiness-teacher-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,auto) auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid #edf0f5;white-space:normal}
.readiness-mini-status,.readiness-status,.readiness-report{display:inline-flex;align-items:center;border-radius:999px;font-size:11px;font-weight:700;padding:4px 7px;white-space:nowrap}
.readiness-status.ready,.readiness-mini-status.ready,.readiness-report.ready{background:#e7f7ec;color:#17632e}
.readiness-status.partial,.readiness-mini-status.partial{background:#fff2cc;color:#785400}
.readiness-status.not-started{background:#eef1f5;color:#5d6877}.readiness-status.not-configured{background:#ffebea;color:#982f29}
.readiness-report.waiting{background:#f0f2f6;color:#657083}.readiness-note{margin:10px 0 0;font-size:12px}
.campaign-control{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;padding:12px 14px;border:1px solid #dbe3ee;border-radius:12px;background:#f8faff}
.campaign-control.closed{border-color:#b9dfc4;background:#eef9f1}.campaign-control.closed>div>strong{color:#17632e}
.campaign-locked{background:#eef9f1!important;border-color:#b9dfc4!important;color:#17632e!important}
@media(max-width:850px){.readiness-summary{grid-template-columns:repeat(2,1fr)}.readiness-controls{width:100%}.readiness-controls select,.readiness-controls button{flex:1 1 150px}.readiness-teacher-row{grid-template-columns:1fr}}
@media(max-width:600px){.campaign-control{align-items:stretch;flex-direction:column}.campaign-control button{width:100%}}

/* Mobile workspace: compact controls, touch targets and usable wide registers */
@media(max-width:640px){
  body{overflow-x:hidden;font-size:14px}
  main{padding:12px 0 32px}
  .container{width:calc(100% - 16px)}
  .topbar{padding:10px 0}
  .topbar-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
  .brand{min-width:0}.brand strong{font-size:15px;line-height:1.2}.brand span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
  .top-actions button{min-height:40px;padding:7px 9px;font-size:12px;white-space:nowrap}
  .panel{padding:14px;border-radius:12px;box-shadow:0 4px 16px rgba(32,50,80,.06)}
  .panel .panel{padding:12px;box-shadow:none}
  h2{font-size:20px}h3{font-size:17px}h4{font-size:15px}
  input,select,textarea{min-height:44px;padding:9px 10px;font-size:16px}
  button,.primary,.secondary,.danger{min-height:44px}
  .page-head{display:block}.page-head .badge{margin-top:8px}
  .admin-layout{gap:10px}
  .admin-nav{position:sticky;top:0;z-index:15;display:flex;gap:6px;margin:0 -8px 10px;padding:8px;overflow-x:auto;overscroll-behavior-inline:contain;background:#f4f6fa;box-shadow:0 4px 8px rgba(32,50,80,.06);scrollbar-width:none}
  .admin-nav::-webkit-scrollbar{display:none}
  .admin-nav button{flex:0 0 auto;min-height:42px;padding:9px 11px;font-size:13px;white-space:nowrap}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stat-card{padding:11px}.stat-value{font-size:22px}
  .controls,.controls-5{gap:8px;margin:12px 0}
  .controls .card{padding:11px}.controls .card h3{font-size:12px;margin-bottom:5px}
  .controls .card button{width:100%}
  .toolbar{align-items:stretch;margin:12px 0}.toolbar>button,.toolbar-left button{width:100%}
  .profile-switch{display:grid;grid-template-columns:1fr}.profile-switch button{width:100%}
  .section-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;overflow:visible}
  .section-tabs button{width:auto!important;padding:8px;font-size:12px}
  .form-grid-2,.form-grid-3,.form-grid-4{gap:8px}
  .compact-admin-details summary{align-items:flex-start}.compact-admin-details[open] summary{margin-bottom:10px}
  .admin-toolbar{display:block}.admin-toolbar p{margin-bottom:8px}
  .bulk-word-upload{gap:6px}.bulk-word-upload button{width:100%}
  .teacher-picker-head{gap:8px}.teacher-pick-grid,.staff-grid{gap:6px}.staff-card{min-height:0}
  .staff-actions{display:grid;grid-template-columns:1fr}.staff-actions button,.staff-card>button{width:100%;min-height:40px}
  .readiness-summary{gap:7px}.readiness-card{padding:9px}.readiness-card strong{font-size:19px}
  .readiness-table,.compact-registry,.table-wrap,.curator-edit-wrap,.academic-history-wrap{position:relative;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
  .table-wrap:after{content:'Проведите по таблице влево или вправо';position:sticky;left:8px;display:inline-block;margin:6px 8px;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#52607a;font-size:10px;pointer-events:none}
  .teacher-journal-table th,.teacher-journal-table td{padding:7px 8px}
  .teacher-journal-table th:first-child,.teacher-journal-table td:first-child{position:sticky;left:0;z-index:3;background:#f8faff}
  .teacher-journal-table th:nth-child(2),.teacher-journal-table td:nth-child(2){position:sticky;left:46px;z-index:3;min-width:165px;background:#fff;box-shadow:5px 0 8px rgba(35,48,70,.08)}
  .teacher-journal-table thead th:first-child,.teacher-journal-table thead th:nth-child(2){z-index:5;background:#f1f4f9}
  .curator-edit-table th:first-child,.curator-edit-table td:first-child{position:sticky;left:0;z-index:4;min-width:34px;background:#f8faff}
  .curator-edit-table .curator-edit-name{left:34px;z-index:4;min-width:145px;box-shadow:5px 0 8px rgba(35,48,70,.08)}
  .readiness-table th:first-child,.readiness-table td:first-child{position:sticky;left:0;z-index:3;min-width:170px;background:#fff;box-shadow:5px 0 8px rgba(35,48,70,.08)}
  .readiness-table thead th:first-child{z-index:5;background:#f7f8fb}
  .assessment-status-fields,.assessment-status-editor{display:grid;grid-template-columns:1fr!important}
  .assessment-status-fields button,.assessment-status-editor button{width:100%}
  .word-recognizer{padding:11px}.word-recognizer .file-button{width:100%}
  .report-actions{display:grid!important;grid-template-columns:1fr!important}.report-actions button{width:100%}
  .full-name-editor{display:grid;grid-template-columns:1fr;min-width:240px}.full-name-editor input{min-width:0}
  .empty{padding:20px 10px}
}

@media(max-width:380px){
  .topbar-inner{grid-template-columns:1fr}.top-actions{width:100%}
  .stats-grid,.readiness-summary{grid-template-columns:1fr 1fr}
  .section-tabs{grid-template-columns:1fr}
}

/* Calm soft UI — warm neutral surfaces with clear, accessible contrast */
:root{
  --page:#eae6e0;
  --surface:#f5f1eb;
  --surface-raised:#fbf8f3;
  --surface-inset:#eee9e2;
  --ink:#31424c;
  --muted:#738079;
  --line:rgba(84,100,102,.16);
  --border:rgba(84,100,102,.16);
  --sage:#78a99d;
  --sage-dark:#4f7f76;
  --coral:#d58f88;
  --coral-dark:#a95f59;
  --blue:#93a7c1;
  --sand:#dfc398;
  --shadow:10px 10px 24px rgba(115,104,93,.14),-8px -8px 20px rgba(255,255,255,.72);
  --shadow-soft:5px 5px 12px rgba(115,104,93,.12),-4px -4px 10px rgba(255,255,255,.7);
  --shadow-inset:inset 2px 2px 5px rgba(118,106,94,.12),inset -2px -2px 5px rgba(255,255,255,.8);
  color:var(--ink);
  background:var(--page);
}
body{background:linear-gradient(145deg,#eeeae5 0%,#e7e2dc 62%,#e5e1dc 100%);color:var(--ink)}
.container{width:min(1920px,calc(100% - clamp(20px,3vw,56px)))}
.topbar{position:relative;background:rgba(245,241,235,.9);color:var(--ink);padding:13px 0;border-bottom:1px solid rgba(255,255,255,.65);box-shadow:0 5px 20px rgba(99,89,80,.1);backdrop-filter:blur(16px)}
.brand{position:relative;padding-left:46px}
.brand:before{content:'И';position:absolute;left:0;top:50%;display:grid;place-items:center;width:34px;height:34px;transform:translateY(-50%);border-radius:11px;background:var(--blue);color:#fff;font-weight:800;box-shadow:var(--shadow-soft)}
.brand strong{letter-spacing:-.01em}.brand span{color:var(--muted);opacity:1}
main{padding:28px 0 60px}
.panel,.card,.stat-card,.staff-card,.readiness-card,.assessment-status-panel,.campaign-control,.curator-edit-panel,.roster-add,.admin-official-reports{background:rgba(248,245,240,.92);border:1px solid rgba(255,255,255,.72);box-shadow:var(--shadow)}
.panel{border-radius:24px}.panel .panel{box-shadow:var(--shadow-soft)}
.card,.stat-card,.staff-card,.readiness-card,.assessment-status-panel,.campaign-control,.curator-edit-panel,.roster-add,.admin-official-reports{border-radius:18px}
h1,h2,h3,h4,.journal-title{color:#273942;letter-spacing:-.015em}
.muted,.footer-note{color:var(--muted)}
.badge,.status-pill,.readonly-badge,.journal-sync-badge,.readiness-mini-status,.readiness-status,.readiness-report{border:1px solid rgba(255,255,255,.55);box-shadow:0 2px 5px rgba(105,94,83,.09)}
.badge{background:#dce6ea;color:#3e6470}
input,select,textarea{border:1px solid rgba(94,110,111,.18);background:var(--surface-inset);color:var(--ink);border-radius:14px;box-shadow:var(--shadow-inset)}
input::placeholder,textarea::placeholder{color:#939b96}
input:focus,select:focus,textarea:focus{border-color:var(--sage);box-shadow:var(--shadow-inset),0 0 0 3px rgba(120,169,157,.2)}
button,.primary,.secondary,.danger,.mode-button,.file-button{transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease}
button:active,.primary:active,.secondary:active,.danger:active,.mode-button:active{transform:translateY(1px);box-shadow:var(--shadow-inset)}
.primary{background:var(--sage-dark);border:1px solid rgba(54,99,90,.2);border-radius:14px;box-shadow:4px 5px 10px rgba(75,104,97,.2);color:#fff}
.primary:hover{background:#426f67;filter:none;transform:translateY(-1px)}
.secondary{background:var(--surface-raised);border:1px solid rgba(82,99,101,.15);border-radius:14px;box-shadow:var(--shadow-soft);color:var(--ink)}
.secondary:hover{background:#fffaf4;transform:translateY(-1px)}
.danger{background:#f7e8e5;border-color:rgba(169,95,89,.24);color:var(--coral-dark);border-radius:14px;box-shadow:var(--shadow-soft)}
.notice,.assignment-note,.scope-note,.excel-paste-help,.word-recognizer,.profile-details,.override-date-details{border-color:rgba(107,129,133,.16);background:rgba(238,235,229,.72);border-radius:16px}
.notice.success,.success{background:#e5f0ea;color:#386c54}.notice.error,.error{background:#f6e5e2;color:#974f49}
.table-wrap{border:1px solid rgba(85,101,104,.14);border-radius:18px;background:rgba(250,248,244,.84);box-shadow:var(--shadow-soft)}
th{background:#e5e8e4;color:#4c5f65}th,td{border-bottom-color:rgba(89,104,107,.12)}
tbody tr:hover td{background:rgba(255,255,255,.35)}
.section-tabs,.student-card-tabs{padding:7px;border:0;border-radius:18px;background:rgba(231,226,220,.8);box-shadow:var(--shadow-inset)}
.section-tabs button,.student-card-tab{border:1px solid transparent;background:transparent;border-radius:13px;color:#66736f;box-shadow:none}
.section-tabs button.active,.student-card-tab.active{background:var(--surface-raised);border-color:rgba(255,255,255,.7);color:var(--sage-dark);box-shadow:var(--shadow-soft)}
.stats-grid{gap:16px}.stat-card:nth-child(4n+1){border-top:4px solid var(--blue)}.stat-card:nth-child(4n+2){border-top:4px solid var(--sage)}.stat-card:nth-child(4n+3){border-top:4px solid var(--coral)}.stat-card:nth-child(4n){border-top:4px solid var(--sand)}
.stat-value{color:#2f414a}

/* The primary admin sections are a separate navigation panel with solid icons. */
.admin-layout{grid-template-columns:250px minmax(0,1fr);gap:26px}
.admin-nav{top:22px;gap:7px;padding:12px;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:rgba(244,240,234,.88);box-shadow:var(--shadow)}
.admin-nav button{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-height:52px;padding:7px 12px 7px 8px;border:1px solid transparent;border-radius:16px;background:transparent;color:#64716f;text-align:left;box-shadow:none}
.admin-nav button:hover{background:rgba(255,255,255,.36);color:#3f625e}
.admin-nav button.active{background:var(--surface-raised);border-color:rgba(255,255,255,.82);color:var(--sage-dark);box-shadow:var(--shadow-soft);font-weight:750}
.nav-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#dce5e7;color:#526d77;box-shadow:2px 3px 7px rgba(101,91,81,.12),-2px -2px 5px rgba(255,255,255,.75)}
.admin-nav button:nth-child(3n+2) .nav-icon{background:#dce9e4;color:#527c72}.admin-nav button:nth-child(3n) .nav-icon{background:#f0dfdc;color:#a6645e}
.admin-nav button.active .nav-icon{background:var(--sage);color:#fff}
.nav-icon svg{display:block;width:21px;height:21px;fill:currentColor}.nav-label{line-height:1.2}
.admin-content{padding:22px 24px 30px;border:1px solid rgba(255,255,255,.64);border-radius:26px;background:rgba(244,240,234,.58);box-shadow:inset 1px 1px 0 rgba(255,255,255,.7)}

@media(max-width:1000px) and (min-width:701px){
  .admin-layout{grid-template-columns:84px minmax(0,1fr);gap:18px}
  .admin-nav{padding:10px}
  .admin-nav button{display:flex;justify-content:center;padding:7px}
  .admin-nav .nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media(max-width:700px){
  body{padding-bottom:82px;background:#eae6e0}
  .container{width:calc(100% - 18px)}
  .topbar{padding:9px 0}.brand{padding-left:39px}.brand:before{width:30px;height:30px;border-radius:9px}.brand strong{font-size:14px}
  .admin-content{padding:16px 12px 24px;border-radius:20px}
  .admin-layout{display:block}
  .admin-nav{position:fixed;z-index:50;left:8px;right:8px;bottom:8px;top:auto;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:0;padding:7px;overflow:visible;border-radius:20px;background:rgba(244,240,234,.94);box-shadow:0 10px 35px rgba(69,61,55,.24),inset 0 1px 0 rgba(255,255,255,.85);backdrop-filter:blur(18px)}
  .admin-nav button{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:57px;padding:4px 2px;text-align:center;border-radius:14px;white-space:normal}
  .admin-nav .nav-icon{width:31px;height:31px;border-radius:10px;box-shadow:none}.admin-nav .nav-icon svg{width:18px;height:18px}
  .admin-nav .nav-label{display:block;max-width:100%;overflow:hidden;font-size:9px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}
  .admin-nav button.active{box-shadow:var(--shadow-soft)}
  .panel,.card,.stat-card,.staff-card{border-radius:18px}
  .section-tabs,.student-card-tabs{border-radius:16px}
}

/* Lightweight icon-style checkboxes in the teacher picker. */
.teacher-pick input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  position:relative;
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  min-width:22px;
  margin:0 1px 0 0;
  padding:0;
  border:2px solid #9ba9a5;
  border-radius:6px;
  background:transparent;
  box-shadow:none;
  cursor:pointer;
}
.teacher-pick input[type="checkbox"]:before{
  content:'';
  width:7px;
  height:12px;
  border:solid var(--sage-dark);
  border-width:0 3px 3px 0;
  opacity:0;
  transform:translateY(-1px) rotate(45deg) scale(.65);
  transition:opacity .14s ease,transform .14s ease;
}
.teacher-pick input[type="checkbox"]:checked{border-color:transparent}
.teacher-pick input[type="checkbox"]:checked:before{opacity:1;transform:translateY(-1px) rotate(45deg) scale(1)}
.teacher-pick input[type="checkbox"]:focus-visible{outline:3px solid rgba(120,169,157,.28);outline-offset:2px}
.teacher-pick:hover input[type="checkbox"]:not(:checked){border-color:var(--sage)}

/* Official report choices sit inside the panel instead of floating above it. */
.admin-official-reports .report-actions button{
  background:#ece7e0;
  border:1px solid rgba(97,105,102,.13);
  color:#34474e;
  box-shadow:inset 4px 4px 8px rgba(105,92,80,.18),inset -4px -4px 8px rgba(255,255,255,.88);
  transform:none;
}
.admin-official-reports .report-actions button:hover{
  background:#eee9e2;
  box-shadow:inset 5px 5px 10px rgba(105,92,80,.2),inset -5px -5px 10px rgba(255,255,255,.9);
  transform:none;
}
.admin-official-reports .report-actions button:active{
  background:#e8e2da;
  box-shadow:inset 6px 6px 11px rgba(105,92,80,.23),inset -4px -4px 8px rgba(255,255,255,.82);
}

/* Component hierarchy: inputs are recessed, actions and navigation are raised. */

/* The report set is explanatory text plus four actions, not another card. */
.admin-official-reports{
  margin:22px 0 18px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.admin-official-reports .report-actions{margin:14px 0 0}
.admin-official-reports .report-actions button{
  background:linear-gradient(145deg,#fbf8f3,#eee8e0);
  border:1px solid rgba(255,255,255,.82);
  box-shadow:var(--shadow-soft);
  transform:none;
}
.admin-official-reports .report-actions button:hover{
  background:linear-gradient(145deg,#fffaf5,#f0e9e1);
  box-shadow:9px 10px 18px rgba(105,92,80,.22),-7px -7px 14px rgba(255,255,255,.92);
  transform:translateY(-2px);
}
.admin-official-reports .report-actions button:active{
  background:#ece7e0;
  box-shadow:var(--shadow-inset);
  transform:translateY(1px);
}

/* Tab strips no longer add a backing layer; every tab itself is a raised button. */
.section-tabs,.student-card-tabs{
  gap:9px;
  padding:0 0 10px;
  border:0;
  background:transparent;
  box-shadow:none;
}
.section-tabs button,.student-card-tab{
  background:linear-gradient(145deg,#faf7f2,#eee8e1);
  border:1px solid rgba(255,255,255,.78);
  color:#5f6f6b;
  box-shadow:var(--shadow-soft);
}
.section-tabs button:hover,.student-card-tab:hover{transform:translateY(-1px);color:var(--sage-dark)}
.section-tabs button.active,.student-card-tab.active{
  background:linear-gradient(145deg,#dcebe6,#c9ddd6);
  border-color:rgba(255,255,255,.82);
  color:#416e65;
  box-shadow:7px 8px 15px rgba(93,82,71,.2),-5px -5px 11px rgba(255,255,255,.88);
}
.section-tabs button:active,.student-card-tab:active{box-shadow:var(--shadow-inset);transform:translateY(1px)}

/* Multi-select cards are input areas, so they remain visibly recessed. */
.teacher-pick{
  background:#ece7e0;
  border-color:rgba(94,105,102,.13);
  box-shadow:var(--shadow-inset);
}
.teacher-pick:hover{background:#eee9e2;border-color:rgba(120,169,157,.35)}
.teacher-pick:has(input:checked){
  background:#dfeae6;
  border-color:rgba(79,127,118,.3);
  color:#315f57;
  box-shadow:inset 4px 4px 8px rgba(82,111,103,.16),inset -4px -4px 8px rgba(255,255,255,.72);
}

/* File pickers are inputs; the visible command next to them remains raised. */
input[type="file"]{box-shadow:var(--shadow-inset)}
.file-button{background:var(--surface-raised);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow-soft)}

/* At most three visual levels: page/card, inner card or control, then its field/action. */
.panel .panel .panel,.card .panel .panel{
  border-color:rgba(90,104,104,.12);
  background:transparent;
  box-shadow:none;
}
@media(max-width:430px){
  .admin-nav .nav-label{display:none}.admin-nav button{min-height:48px}.admin-nav .nav-icon{width:34px;height:34px}
}

@media print{
  body{padding-bottom:0;background:#fff}.admin-content{padding:0;border:0;box-shadow:none;background:#fff}
}

/* Depth refinement: fewer backing layers, stronger standalone controls. */
:root{
  --shadow:12px 14px 28px rgba(105,92,80,.22),-9px -9px 20px rgba(255,255,255,.92);
  --shadow-soft:6px 7px 14px rgba(105,92,80,.19),-5px -5px 11px rgba(255,255,255,.88);
  --shadow-float:9px 11px 20px rgba(96,83,72,.24),-7px -7px 15px rgba(255,255,255,.94);
  --shadow-inset:inset 3px 3px 6px rgba(103,91,80,.17),inset -3px -3px 6px rgba(255,255,255,.9);
}

/* The mode chooser cards are now independent colored controls. */
.mode-grid{gap:14px;margin:22px 0}
.mode-button{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;min-height:92px;padding:15px 18px;border:1px solid rgba(255,255,255,.74);border-radius:20px;box-shadow:var(--shadow-float);color:var(--ink)}
.mode-button .nav-icon{width:48px;height:48px;border-radius:15px;box-shadow:4px 5px 10px rgba(91,79,68,.2),-3px -3px 7px rgba(255,255,255,.7)}
.mode-button .nav-icon svg{width:25px;height:25px}
.mode-button .mode-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:5px}
.mode-button .mode-copy strong{font-size:18px;color:#263942}.mode-button .mode-copy>span{color:#647570;text-align:left;line-height:1.4}
.mode-button.mode-admin{background:linear-gradient(145deg,#e0e9f2,#cedceb)}
.mode-button.mode-admin .nav-icon{background:#8fa8c4;color:#fff}
.mode-button.mode-curator{background:linear-gradient(145deg,#deebe6,#c9ddd6)}
.mode-button.mode-curator .nav-icon{background:#74a79b;color:#fff}
.mode-button.mode-teacher{background:linear-gradient(145deg,#f1e1df,#e7c9c5)}
.mode-button.mode-teacher .nav-icon{background:#cf8b84;color:#fff}
.mode-button:hover{border-color:rgba(255,255,255,.95);filter:saturate(1.04);transform:translateY(-2px);box-shadow:14px 16px 30px rgba(96,83,72,.25),-9px -9px 18px rgba(255,255,255,.92)}

/* Remove the large right-side backing sheet; content cards sit directly on the page. */
.admin-content{padding:5px 0 32px;border:0;border-radius:0;background:transparent;box-shadow:none}
.admin-content>.page-head{padding:3px 4px 0;margin-bottom:16px}
#adminContent>.panel,#adminContent>.card,#adminContent>.split-grid>.panel{border-color:rgba(255,255,255,.82);box-shadow:var(--shadow-float)}

/* Stronger, gently colored dashboard tiles. */
.stat-card{border-top:0!important;box-shadow:var(--shadow-float)}
.stat-card:nth-child(5n+1){background:linear-gradient(145deg,#e2eaf3,#cfdeec)}
.stat-card:nth-child(5n+2){background:linear-gradient(145deg,#deebe6,#cce0d9)}
.stat-card:nth-child(5n+3){background:linear-gradient(145deg,#f2e2df,#e8ceca)}
.stat-card:nth-child(5n+4){background:linear-gradient(145deg,#f1e8d7,#e7d6b8)}
.stat-card:nth-child(5n){background:linear-gradient(145deg,#e7e4ef,#d7d2e3)}
.stat-card .muted{color:#60716d}
.readiness-summary{gap:15px}
.readiness-card{border-color:rgba(255,255,255,.8);box-shadow:var(--shadow-soft)}
.readiness-card.accent{background:linear-gradient(145deg,#e1e8f6,#d3dcf0)}
.readiness-card.ready{background:linear-gradient(145deg,#dceee5,#c8e3d4)}
.readiness-card.partial{background:linear-gradient(145deg,#f6ead2,#eddbb7)}
.readiness-card:not(.ready):not(.partial):not(.accent){background:linear-gradient(145deg,#f2efea,#e7e1da)}

/* Insets read as pressed controls; icon tiles and buttons read as raised controls. */
.nav-icon{box-shadow:4px 5px 10px rgba(91,79,68,.2),-3px -3px 7px rgba(255,255,255,.86)}
.admin-nav{box-shadow:var(--shadow-float)}
.admin-nav button.active{box-shadow:6px 7px 14px rgba(91,79,68,.18),-5px -5px 11px rgba(255,255,255,.9)}
.primary,.secondary,.danger{box-shadow:var(--shadow-soft)}
.panel,.card,.assessment-status-panel,.campaign-control,.curator-edit-panel,.roster-add,.admin-official-reports{box-shadow:var(--shadow-float)}
.panel .panel{box-shadow:var(--shadow-soft)}

/* Avoid a stack of white sheets inside the large readiness card. */
.readiness-panel .campaign-control{background:linear-gradient(145deg,#f3f0ea,#e8e2da);border-color:rgba(255,255,255,.72)}
.readiness-panel .table-wrap{box-shadow:var(--shadow-inset);background:#eee9e2}
.readiness-panel .table-wrap table{background:rgba(250,248,244,.88)}

@media(max-width:700px){
  .mode-button{grid-template-columns:43px minmax(0,1fr);min-height:82px;padding:13px 14px;border-radius:18px}
  .mode-button .nav-icon{width:43px;height:43px}
  .admin-content{padding:2px 0 24px}
  .stat-card,.readiness-card{box-shadow:5px 6px 12px rgba(105,92,80,.17),-4px -4px 9px rgba(255,255,255,.82)}
}

/* Final hierarchy cleanup after the visual review. */
.admin-official-reports,
.admin-official-reports .report-actions{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.admin-official-reports .report-actions button{
  box-shadow:5px 6px 11px rgba(105,92,80,.17),-4px -4px 9px rgba(255,255,255,.86);
}

.override-date-details summary{color:var(--ink)}

/* The curator journal has one table surface instead of a card inside a card. */
.curator-edit-panel{
  margin-top:18px;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.curator-edit-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overflow-y:visible;
  padding-bottom:9px;
  scrollbar-gutter:stable;
  box-shadow:var(--shadow-inset);
}
.curator-edit-wrap::-webkit-scrollbar{height:12px}
.curator-edit-wrap::-webkit-scrollbar-track{background:#e7e1da;border-radius:999px;box-shadow:inset 2px 2px 4px rgba(103,91,80,.16)}
.curator-edit-wrap::-webkit-scrollbar-thumb{background:#91aaa3;border:3px solid #e7e1da;border-radius:999px}
.curator-edit-table .curator-edit-name{
  width:128px;
  min-width:118px;
  max-width:138px;
}
.curator-edit-table .curator-edit-excused-head,
.curator-edit-table .curator-edit-excused-cell{
  width:92px;
  min-width:86px;
  max-width:98px;
}
.curator-edit-table .curator-edit-discipline{min-width:92px;max-width:125px}
.curator-edit-table .curator-edit-grade-cell,
.curator-edit-table .curator-edit-absence-cell{width:48px;min-width:48px}

/* Teacher filters read as one compact work strip, not five nested cards. */
.teacher-workspace .controls-5{
  gap:12px;
  padding:15px;
  border:1px solid rgba(255,255,255,.76);
  border-radius:20px;
  background:linear-gradient(145deg,#f5f1eb,#e9e3dc);
  box-shadow:var(--shadow-soft);
}
.teacher-workspace .controls-5>.card{
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.teacher-workspace .controls-5>.card h3{margin:0 0 7px;font-size:14px}
.teacher-workspace .controls-5 select{width:100%}
.teacher-workspace .toolbar{margin-top:12px}

@media(max-width:780px){
  .teacher-workspace .controls-5{padding:12px}
  .curator-edit-table .curator-edit-name{min-width:110px;max-width:125px}
}

/* One approved checkbox language throughout the application. */
.teacher-pick input[type="checkbox"],
.assessment-checks input[type="checkbox"],
.role-checks input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  position:relative;
  display:inline-grid;
  place-items:center;
  flex:0 0 22px;
  width:22px;
  height:22px;
  min-width:22px;
  margin:0;
  padding:0;
  border:2px solid #9ba9a5;
  border-radius:6px;
  background:transparent;
  box-shadow:none;
  cursor:pointer;
}
.teacher-pick input[type="checkbox"]:before,
.assessment-checks input[type="checkbox"]:before,
.role-checks input[type="checkbox"]:before{
  content:'';
  width:7px;
  height:12px;
  border:solid var(--sage-dark);
  border-width:0 3px 3px 0;
  opacity:0;
  transform:translateY(-1px) rotate(45deg) scale(.65);
  transition:opacity .14s ease,transform .14s ease;
}
.teacher-pick input[type="checkbox"]:checked,
.assessment-checks input[type="checkbox"]:checked,
.role-checks input[type="checkbox"]:checked{border-color:transparent;background:transparent;box-shadow:none}
.teacher-pick input[type="checkbox"]:checked:before,
.assessment-checks input[type="checkbox"]:checked:before,
.role-checks input[type="checkbox"]:checked:before{opacity:1;transform:translateY(-1px) rotate(45deg) scale(1)}
.teacher-pick input[type="checkbox"]:focus-visible,
.assessment-checks input[type="checkbox"]:focus-visible,
.role-checks input[type="checkbox"]:focus-visible{outline:3px solid rgba(120,169,157,.28);outline-offset:2px}
.assessment-checks label,.role-checks label{display:flex;align-items:center;gap:8px;cursor:pointer}

/* Compact primary actions: keep them distinct without letting them dominate forms. */
.primary{
  padding:9px 13px;
  font-size:14px;
  line-height:1.25;
}
#assignmentTypes + #saveAssignmentBtn{margin-top:16px}

/* Unified warm canvas: top-level work areas no longer look like cards inside cards. */
:root{
  --page:#ebe6e0;
  --surface:#f5f1eb;
  --surface-raised:#f8f4ee;
  --surface-inset:#e9e3dc;
}
body{
  background:linear-gradient(145deg,#eeeae5 0%,#e9e4de 58%,#e5e0da 100%);
}
main>.container>.panel,
#adminContent>.panel{
  display:contents;
  padding:0;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#adminContent>.panel>.page-head{margin-top:18px}
#adminContent>.panel:not(:first-child)>:first-child{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid rgba(103,91,80,.12);
}
main>.container>.panel>.page-head{margin-top:8px}

/* Keep the useful inner pieces tactile and softly coloured. */
.stat-card,.readiness-card,.campaign-control,.assessment-status-panel,.table-wrap,
.teacher-workspace .controls-5,.section-tabs,.student-card-tabs{
  border-color:rgba(255,255,255,.8);
}
.readiness-panel .campaign-control{
  background:linear-gradient(145deg,#f4f0ea,#e9e3dc);
  box-shadow:var(--shadow-soft);
}
.readiness-panel .table-wrap{
  background:#eee9e2;
  box-shadow:var(--shadow-inset);
}

@media(max-width:700px){
  #adminContent>.panel>.page-head{margin-top:12px}
  #adminContent>.panel:not(:first-child)>:first-child{margin-top:20px;padding-top:18px}
}

/* The editable journal uses its real column widths instead of stretching №. */
.curator-edit-table{
  width:max-content!important;
  min-width:0!important;
}
.curator-edit-table th:first-child,
.curator-edit-table td:first-child{
  box-sizing:border-box;
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  padding-left:3px!important;
  padding-right:3px!important;
  text-align:center;
  white-space:nowrap;
}

/* Vector ИНСПО mark printed directly on the page, without an icon tile. */
.brand{
  min-height:66px;
  justify-content:center;
  padding-top:6px;
  padding-left:94px;
}
.brand:before{
  content:'';
  left:0;
  top:50%;
  width:82px;
  height:64px;
  transform:translateY(-50%);
  border-radius:0;
  background-color:transparent;
  background-image:url('/inspo-logo.svg?v=5');
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  box-shadow:none;
  filter:none;
}

/* Flat pastel plaques with a quiet paper-like grain instead of light gradients. */
.mode-button.mode-admin{background-color:#d6e1ec;background-image:url('/texture-grain.svg')}
.mode-button.mode-curator{background-color:#d5e5df;background-image:url('/texture-grain.svg')}
.mode-button.mode-teacher{background-color:#edd6d3;background-image:url('/texture-grain.svg')}
.stat-card:nth-child(5n+1){background-color:#d6e2ee;background-image:url('/texture-grain.svg')}
.stat-card:nth-child(5n+2){background-color:#d3e4de;background-image:url('/texture-grain.svg')}
.stat-card:nth-child(5n+3){background-color:#ecd5d2;background-image:url('/texture-grain.svg')}
.stat-card:nth-child(5n+4){background-color:#eadbbc;background-image:url('/texture-grain.svg')}
.stat-card:nth-child(5n){background-color:#ddd8e7;background-image:url('/texture-grain.svg')}
.readiness-card.accent{background-color:#d9e1f1;background-image:url('/texture-grain.svg')}
.readiness-card.ready{background-color:#d1e7da;background-image:url('/texture-grain.svg')}
.readiness-card.partial{background-color:#f0dfbc;background-image:url('/texture-grain.svg')}
.readiness-card:not(.ready):not(.partial):not(.accent){background-color:#eae5de;background-image:url('/texture-grain.svg')}
.section-tabs button.active,.student-card-tab.active{background-color:#d4e4de;background-image:url('/texture-grain.svg')}
.teacher-pick:has(input:checked){background-color:#dce9e4;background-image:url('/texture-grain.svg')}
.badge,.status-pill,.readonly-badge,.journal-sync-badge,.readiness-mini-status,.readiness-status,.readiness-report,
.nav-icon{background-image:url('/texture-grain.svg')}
.mode-button,.stat-card,.readiness-card,.section-tabs button.active,.student-card-tab.active,
.teacher-pick:has(input:checked),.badge,.status-pill,.readonly-badge,.journal-sync-badge,
.readiness-mini-status,.readiness-status,.readiness-report,.nav-icon{
  background-repeat:repeat;
  background-size:128px 128px;
}

/* Remove the remaining light-direction gradients from neutral control plaques too. */
.admin-official-reports .report-actions button{background:#f4efe8}
.admin-official-reports .report-actions button:hover{background:#f7f2ec}
.section-tabs button,.student-card-tab{background-color:#f4efe8}
.teacher-workspace .controls-5{background:#f1ece5}
.readiness-panel .campaign-control{background:#eee8e0}

@media(max-width:700px){
  .brand{min-height:52px;padding-top:4px;padding-left:72px}
  .brand:before{width:62px;height:48px;border-radius:0;box-shadow:none;filter:none}
}
