:root{--navy:#123b73;--navy-dark:#0d2c55;--blue:#2d6cdf;--ink:#172337;--muted:#6d7a8c;--line:#e5eaf1;--bg:#f4f7fb;--white:#fff;--green:#138a58;--amber:#b7791f;--shadow:0 12px 35px rgba(20,45,80,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px}.topbar{height:76px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1160px)/2));gap:18px}.brand{display:flex;align-items:center;gap:12px}.brand-mark,.login-symbol{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#174b8c,#347ee6);display:grid;place-items:center;color:white;font-family:Arial,Helvetica,sans-serif;font-weight:800;letter-spacing:-1px}.brand strong{display:block;font-family:Arial,Helvetica,sans-serif;font-size:14px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.account{display:flex;align-items:center;gap:16px;color:#536176;font-size:13px}.account form{margin:0}.container{max-width:1160px;margin:0 auto;padding:34px 24px 50px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px;color:#4778bc;margin:0 0 8px}.page-heading h1,.login-card h1{font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.2;margin:0 0 7px;letter-spacing:-.8px}.muted{color:var(--muted);font-size:13px;margin:0}.date-chip{background:#eaf1fb;color:var(--navy);padding:9px 13px;border-radius:9px;font-weight:700;font-size:12px;white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.stats-grid-two{grid-template-columns:repeat(2,1fr)}.stat-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:var(--shadow)}.stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:22px;font-weight:700}.stat-icon.blue{background:#eaf1ff;color:#2d6cdf}.stat-icon.green{background:#e7f7ef;color:#168454}.stat-icon.amber{background:#fff4df;color:#bd7a15}.stat-card p{color:var(--muted);font-size:12px;margin:0 0 5px}.stat-card strong{font-family:Arial,Helvetica,sans-serif;font-size:25px;letter-spacing:-.8px}.panel{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:18px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.panel h2{font-family:Arial,Helvetica,sans-serif;font-size:16px;margin:0 0 5px}.attendance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.attendance-grid>div{border:1px solid var(--line);border-radius:11px;padding:16px;background:#fbfcfe}.attendance-grid strong{font-family:Arial,Helvetica,sans-serif;font-size:23px;display:block;margin-bottom:5px}.attendance-grid span{font-size:11px;color:var(--muted)}.small-note{font-size:11px;color:var(--muted);margin:16px 0 0;line-height:1.6}.notice-panel{background:#f9fbff;border-color:#dce8f8}.notice-panel p{font-size:13px;color:#536176;line-height:1.7;margin:8px 0 0}.btn{border:0;border-radius:9px;padding:10px 15px;font-weight:700;font-family:inherit;font-size:12px;cursor:pointer}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-dark)}.btn-outline{background:#fff;border:1px solid var(--line);color:#40516a}.btn-block{width:100%;padding:13px}.login-page{min-height:100vh;background:linear-gradient(145deg,#eef4fc,#f7f9fc)}.login-wrap{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:24px}.login-card{width:min(100%,420px);background:white;padding:35px;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px rgba(18,59,115,.11)}.login-symbol{width:52px;height:52px;border-radius:15px;margin-bottom:23px}.login-brand-logo{display:block;object-fit:contain;background:#fff;border:1px solid var(--line);padding:3px;color:transparent}.login-card h1{font-size:25px}.login-card .muted{margin-bottom:24px}.form-stack{display:grid;gap:16px}.form-stack label{font-size:12px;font-weight:700;color:#42516a}.form-stack input{display:block;width:100%;margin-top:7px;border:1px solid #dce3ed;border-radius:9px;padding:12px 13px;font:inherit;font-size:14px;outline:none}.form-stack input:focus{border-color:#5d91df;box-shadow:0 0 0 3px #eaf1ff}.login-note{font-size:11px;color:var(--muted);margin:18px 0 0;text-align:center}.alert{padding:12px 14px;border-radius:9px;font-size:12px;margin:14px 0}.alert-error{background:#fff0f0;color:#a52d2d;border:1px solid #f5d0d0}.alert-warn{background:#fff8e8;color:#8b641d;border:1px solid #f4e1b7}.empty-state{padding:22px;border:1px dashed #d7e0ec;border-radius:10px;display:grid;gap:6px}.empty-state span{font-size:12px;color:var(--muted)}.footer{text-align:center;color:#96a1af;font-size:10px;padding:20px}.teacher-attendance{grid-template-columns:repeat(4,1fr)}
@media(max-width:720px){.topbar{height:auto;min-height:70px;padding:13px 16px;align-items:flex-start;flex-direction:column}.account{width:100%;justify-content:space-between}.container{padding:24px 15px 35px}.page-heading{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:1fr}.stats-grid-two{grid-template-columns:1fr 1fr}.attendance-grid,.teacher-attendance{grid-template-columns:repeat(2,1fr)}.panel{padding:17px}.login-card{padding:26px 22px}.brand strong{font-size:13px}}

/* Master data modules */
.main-nav{background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.nav-inner{max-width:1160px;margin:0 auto;padding:0 24px;display:flex;gap:5px;white-space:nowrap}.nav-inner a{display:inline-block;padding:13px 12px;color:#526177;text-decoration:none;font-size:12px;font-weight:700;border-bottom:2px solid transparent}.nav-inner a:hover{color:var(--navy);border-bottom-color:var(--blue)}.alert-success{background:#eaf8f0;color:#17653f;border:1px solid #ccebd9}.toolbar-search{display:flex;align-items:center;gap:8px;margin-bottom:18px;flex-wrap:wrap}.toolbar-search input{min-width:220px;max-width:360px;flex:1;border:1px solid #dce3ed;border-radius:9px;padding:10px 12px;font:inherit;font-size:13px}.count-label{margin-left:auto;font-size:11px}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px;min-width:700px}.data-table th{text-align:left;background:#f7f9fc;color:#66758a;font-size:10px;text-transform:uppercase;letter-spacing:.6px;padding:12px 11px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:13px 11px;border-bottom:1px solid #edf0f5;vertical-align:middle}.data-table tbody tr:hover{background:#fbfcff}.table-empty{text-align:center;color:var(--muted);padding:35px!important}.action-col{text-align:right}.actions-cell{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}.actions-cell form{margin:0}.btn-small{padding:7px 9px;font-size:10px}.btn-activate{background:#e9f7ef;color:#167447}.btn-deactivate{background:#fff1f0;color:#a43c34}.status{display:inline-block;border-radius:20px;padding:4px 8px;font-size:10px;font-weight:700}.status.active{background:#e8f7ee;color:#187448}.status.inactive{background:#f0f2f5;color:#697586}.role-pill{display:inline-block;padding:4px 7px;border-radius:6px;background:#edf3fc;color:#315c91;font-size:10px;font-weight:700}.subcell{display:block;color:var(--muted);font-size:10px;margin-top:3px}.form-panel{max-width:850px}.admin-form{display:grid;gap:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-field{display:grid;gap:7px}.form-field label,.check-row{font-size:12px;font-weight:700;color:#42516a}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;border:1px solid #dce3ed;border-radius:9px;padding:11px 12px;font:inherit;font-size:13px;background:#fff;color:var(--ink);outline:none}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#5d91df;box-shadow:0 0 0 3px #eaf1ff}.form-field small{font-size:10px;color:var(--muted);line-height:1.5}.field-wide{grid-column:1/-1}.check-row{display:flex;align-items:center;gap:9px}.check-row input{width:16px;height:16px;accent-color:var(--navy)}.form-actions{display:flex;gap:9px;padding-top:5px;border-top:1px solid var(--line)}
@media(max-width:720px){.nav-inner{padding:0 10px}.nav-inner a{padding:12px 9px;font-size:11px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.count-label{width:100%;margin-left:0}.toolbar-search input{max-width:none}.actions-cell{justify-content:flex-start}}

/* Teaching assignment module */
.assignment-table{min-width:900px}.assignment-table td strong{font-size:12px}.assignment-table .actions-cell{min-width:145px}.assignment-table .actions-cell form{display:inline-block}.form-field select option[hidden]{display:none}

/* Attendance module */
.btn:disabled{opacity:.45;cursor:not-allowed}.status.warning{background:#fff4df;color:#986313}.attendance-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.attendance-table{min-width:1050px}.attendance-table td{vertical-align:top}.attendance-self-panel{max-width:980px}.policy-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}.policy-strip>div{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:12px}.policy-strip span,.attendance-card-label{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.policy-strip strong{font-size:15px}.self-attendance-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.self-attendance-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff;display:grid;gap:7px}.self-attendance-card>strong{font-size:20px;letter-spacing:-.4px}.self-attendance-card .muted{font-size:11px}.attendance-actions{display:flex;gap:10px;margin-top:18px}.attendance-actions form{margin:0}.attendance-adjust-cell details{min-width:115px}.attendance-adjust-cell summary{list-style:none;display:inline-block;text-align:center}.attendance-adjust-cell summary::-webkit-details-marker{display:none}.inline-adjust-form{display:grid;gap:7px;min-width:190px;margin-top:9px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe}.inline-adjust-form label{font-size:10px;font-weight:700;color:#536176}.inline-adjust-form input,.inline-adjust-form select,.inline-adjust-form textarea,.review-form input{width:100%;border:1px solid #dce3ed;border-radius:7px;padding:8px;font:inherit;font-size:11px;background:#fff}.workday-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.workday-choice{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:9px;font-size:12px;font-weight:700;color:#42516a}.workday-choice input{accent-color:var(--navy);width:16px;height:16px}.request-table{min-width:950px}.review-cell{min-width:190px}.review-form{display:grid;gap:7px}.review-buttons{display:flex;gap:6px}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.attendance-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.attendance-stats{grid-template-columns:repeat(2,1fr)}.policy-strip,.self-attendance-cards{grid-template-columns:1fr}.workday-grid{grid-template-columns:repeat(2,1fr)}.attendance-actions{flex-wrap:wrap}.attendance-actions form,.attendance-actions button{width:100%}}

/* Gradebook and academic assessment module */
.grade-assignment-table{min-width:1080px}.grade-activity-table{min-width:900px}.grade-final-table{min-width:650px}.grade-entry-table{min-width:760px}.grade-assignment-table .actions-cell{min-width:130px}.grade-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.grade-status-value{font-size:17px!important;line-height:1.3}.weight-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.weight-card{background:#f7f9fc;border:1px solid var(--line);border-radius:11px;padding:14px;display:grid;gap:8px}.weight-card span{font-size:11px;color:var(--muted)}.weight-card strong{font-size:23px;color:var(--navy)}.weight-edit-list{display:grid;gap:10px}.weight-edit-row{display:grid;grid-template-columns:1fr 150px 105px;align-items:center;gap:14px;border:1px solid var(--line);border-radius:10px;padding:13px}.weight-edit-row>div:first-child strong,.weight-edit-row>div:first-child small{display:block}.weight-edit-row>div:first-child strong{font-size:13px}.weight-edit-row>div:first-child small{font-size:10px;color:var(--muted);margin-top:3px}.weight-input-wrap{display:flex;align-items:center;gap:7px}.weight-input-wrap input{width:100%;border:1px solid #dce3ed;border-radius:8px;padding:10px;font:inherit;font-size:13px}.weight-input-wrap span{color:var(--muted);font-size:12px}.weight-total-chip{background:#fff4df;color:#94620f;border:1px solid #f2dfb2;border-radius:20px;padding:7px 11px;font-weight:700;font-size:11px;white-space:nowrap}.weight-total-chip.valid{background:#eaf8f0;border-color:#ccebd9;color:#17653f}.assessment-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.assessment-info-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfd}.assessment-info-grid span,.assessment-info-grid strong{display:block}.assessment-info-grid span{font-size:10px;color:var(--muted);margin-bottom:6px}.assessment-info-grid strong{font-size:13px}.grade-entry-table .score-input{width:120px;max-width:100%;padding:9px 10px;border:1px solid #dce3ed;border-radius:8px;font:inherit;font-size:13px}.grade-entry-table .score-input:focus{outline:none;border-color:#5d91df;box-shadow:0 0 0 3px #eaf1ff}.grade-entry-actions{align-items:center;margin-top:17px}.publish-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:15px;border-top:1px solid var(--line)}.publish-form .small-note{margin:0}.grade-action-form{display:grid;gap:6px;min-width:155px}.grade-action-form input,.grade-final-actions input{width:100%;border:1px solid #dce3ed;border-radius:7px;padding:7px;font:inherit;font-size:10px}.grade-final-actions{margin:0 0 14px;display:flex;justify-content:flex-end}.grade-final-actions form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.grade-final-actions input{min-width:190px}.grade-assignment-table .status{white-space:nowrap}
@media(max-width:900px){.weight-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:720px){.weight-edit-row{grid-template-columns:1fr 110px}.weight-edit-row .check-row{grid-column:1/-1}.weight-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-info-grid{grid-template-columns:1fr 1fr}.grade-stats{grid-template-columns:1fr}.grade-final-actions form{width:100%}.grade-final-actions input{min-width:0;flex:1}.publish-form{align-items:flex-start}.grade-assignment-table{min-width:1000px}}


/* Reports module */
.report-filter-panel{margin-top:0}.report-filter-form{display:grid;gap:16px}.report-filter-form .form-actions{border-top:0;padding-top:0}.report-sheet{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;margin-top:20px;box-shadow:var(--shadow)}.report-letterhead{display:flex;align-items:center;gap:13px;padding-bottom:15px;border-bottom:2px solid var(--navy)}.report-letterhead-mark{width:45px;height:45px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px}.report-letterhead h2{font-size:17px;margin:0 0 4px;color:var(--navy)}.report-letterhead p{font-size:10px;color:var(--muted);margin:0}.report-title-block{text-align:center;padding:17px 0 18px}.report-title-block h2{font-size:16px;letter-spacing:1px;margin:0 0 6px}.report-title-block p{font-size:11px;color:#536176;margin:0}.report-data-table{min-width:760px;font-size:11px}.report-data-table th{font-size:9px;padding:10px 8px}.report-data-table td{padding:10px 8px}.report-wide-table{min-width:100%;}.report-wide-table th{white-space:normal;min-width:76px;max-width:150px}.report-wide-table th:nth-child(1){min-width:36px}.report-wide-table th:nth-child(2){min-width:85px}.report-wide-table th:nth-child(3){min-width:150px}.report-subhead{display:block;font-size:8px;color:#8792a2;font-weight:400;text-transform:none;letter-spacing:0;margin-top:4px}.student-name-cell{font-weight:700;white-space:nowrap}.score-cell{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.report-note{font-size:9px;color:var(--muted);line-height:1.6;margin:12px 0 0}.report-student-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:0 0 15px}.report-student-meta>div{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fafbfd}.report-student-meta span,.report-student-meta strong{display:block}.report-student-meta span{font-size:9px;color:var(--muted);margin-bottom:5px}.report-student-meta strong{font-size:11px}.report-average{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;margin-top:14px;background:#f2f6fc;border:1px solid #e0e9f6;border-radius:9px}.report-average span{font-size:11px;color:#536176}.report-average strong{font-size:21px;color:var(--navy)}.report-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:17px}.report-summary-grid>div{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fafbfd}.report-summary-grid span,.report-summary-grid strong{display:block}.report-summary-grid span{font-size:9px;color:var(--muted);margin-bottom:5px}.report-summary-grid strong{font-size:18px;color:var(--navy)}.report-section-title{font-size:12px;margin:18px 0 9px;color:#34445c}.report-signatures{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin:34px 20px 10px;text-align:center}.report-signatures div{display:grid;gap:5px;font-size:10px}.report-signatures span{color:#536176}.report-signatures strong{margin-top:3px}.report-signatures i{font-style:normal;margin-top:32px;color:#536176}.report-generated{text-align:right;border-top:1px solid var(--line);padding-top:9px;color:#8993a1;font-size:8px}.report-toolbar{display:flex;justify-content:flex-end;gap:9px;margin-top:13px}.report-placeholder{margin-top:18px}.report-placeholder .empty-state{border:0;text-align:center;padding:32px}.report-placeholder p{font-size:12px;color:var(--muted);margin:0}
.status-locked{background:#e8eef8;color:#315c91}.status-published{background:#eaf8f0;color:#17653f}.status-draft{background:#fff4df;color:#94620f}
@media(max-width:850px){.report-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-student-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.report-sheet{padding:16px}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-signatures{gap:15px;margin-left:0;margin-right:0}.report-toolbar{flex-direction:column}.report-toolbar>*{width:100%;text-align:center}.report-wide-table{min-width:900px}}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff!important;font-size:10px!important;color:#111!important}.topbar,.main-nav,.footer,.no-print{display:none!important}.container{max-width:none!important;padding:0!important;margin:0!important}.report-sheet{display:block!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}.report-letterhead{padding-bottom:8px}.report-letterhead-mark{-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-title-block{padding:10px 0 12px}.report-data-table{min-width:0!important;width:100%!important;font-size:8px!important;page-break-inside:auto}.report-data-table th,.report-data-table td{padding:5px 4px!important;border:1px solid #cbd2dc!important}.report-data-table th{background:#eef2f7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-wide-table th{min-width:0!important;max-width:none!important}.report-wide-table .report-subhead{font-size:6px}.report-summary-grid{grid-template-columns:repeat(5,1fr)}.report-student-meta{grid-template-columns:repeat(4,1fr)}.report-average{background:#f2f6fc!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-signatures{margin-top:24px}.report-generated{margin-top:6px}thead{display:table-header-group}tr{page-break-inside:avoid}a{color:#111!important;text-decoration:none!important}.table-wrap{overflow:visible!important}
}

/* v1.6: dashboard insights, school identity and maintenance */
.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:9px;background:#fff;border:1px solid var(--line);padding:3px}.level-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.level-stat{display:grid;gap:5px;background:#f8fafd;border:1px solid var(--line);border-radius:11px;padding:15px}.level-stat span{font-size:11px;color:var(--muted);font-weight:700}.level-stat strong{font-size:26px;color:var(--navy)}.level-stat small{font-size:10px;color:var(--muted)}.weekly-chart{height:190px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:end;padding:6px 4px 0}.weekly-chart-day{height:100%;display:grid;grid-template-rows:18px 1fr 31px;gap:5px;text-align:center;min-width:0}.weekly-chart-value{font-size:10px;color:var(--muted);font-weight:700}.weekly-chart-track{height:100%;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(to top,#f4f7fb 1px,transparent 1px);background-size:100% 25%;border-bottom:1px solid #dfe6ef}.weekly-chart-stack{width:min(34px,80%);max-height:100%;display:flex;flex-direction:column-reverse;align-self:end;border-radius:5px 5px 0 0;overflow:hidden;background:#edf1f6}.weekly-chart-stack span{min-height:0}.bar-present{background:#27996b}.bar-late{background:#e1a33e}.bar-excused{background:#7fa2d8}.weekly-chart-day small{font-size:9px;line-height:1.5;color:var(--muted)}.chart-legend{display:flex;gap:17px;flex-wrap:wrap;margin-top:12px}.chart-legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-present{background:#27996b}.legend-late{background:#e1a33e}.legend-excused{background:#7fa2d8}.dashboard-notifications{display:grid;gap:9px}.dashboard-notice{display:grid;gap:4px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none}.dashboard-notice:hover{border-color:#adc3e5;box-shadow:0 3px 12px rgba(20,45,80,.05)}.dashboard-notice strong{font-size:12px}.dashboard-notice span{font-size:11px;color:var(--muted);line-height:1.5}.notice-warning{background:#fffaf0;border-color:#f1e2bd}.notice-info{background:#f3f7ff;border-color:#dce8f8}.notice-neutral{background:#fafbfd}.profile-preview{max-width:180px;max-height:120px;object-fit:contain;object-position:left center;border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff}.signature-preview{max-width:240px;max-height:100px}.report-letterhead-logo{width:56px;height:56px;object-fit:contain;flex:0 0 auto}.report-signature-image{display:block;max-width:150px;max-height:65px;object-fit:contain;justify-self:center;margin:3px auto}.command-block{padding:13px 15px;border-radius:9px;background:#f3f6fb;border:1px solid var(--line);color:#1f3658;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 Consolas,monospace;margin:14px 0 0}.form-field textarea{display:block;width:100%;border:1px solid #dce3ed;border-radius:9px;padding:11px 12px;font:inherit;font-size:13px;background:#fff;color:var(--ink);outline:none;resize:vertical}.form-field textarea:focus{border-color:#5d91df;box-shadow:0 0 0 3px #eaf1ff}
@media(max-width:720px){.weekly-chart{gap:5px}.chart-legend{gap:10px}.level-stat-grid{grid-template-columns:1fr 1fr}.report-letterhead-logo{width:44px;height:44px}}
@media print{.report-letterhead-logo{width:50px;height:50px}.report-signature-image{max-width:130px;max-height:55px}}

/* Header notification bell */
.account-name{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-notification{position:relative;display:flex;align-items:center;flex:0 0 auto}
.notification-bell{position:relative;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
.notification-bell:hover,.notification-bell[aria-expanded="true"]{background:#f0f5fd;border-color:#c9d9f0;box-shadow:0 3px 12px rgba(18,59,115,.08)}
.notification-bell:focus-visible{outline:3px solid rgba(45,108,223,.28);outline-offset:2px}
.notification-bell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:999px;background:#dc3545;color:#fff;font-size:10px;font-weight:800;line-height:1}
.notification-menu{position:absolute;z-index:1000;top:calc(100% + 12px);right:0;width:min(380px,calc(100vw - 28px));max-height:min(520px,calc(100vh - 110px));overflow:hidden;border:1px solid #dfe6ef;border-radius:15px;background:#fff;box-shadow:0 18px 48px rgba(18,37,65,.18);color:var(--ink);text-align:left}
.notification-menu[hidden]{display:none}
.notification-menu-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 18px;border-bottom:1px solid var(--line)}
.notification-menu-heading strong{display:block;font-size:14px}
.notification-menu-heading small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:400}
.notification-total{min-width:27px;height:27px;padding:0 7px;display:grid;place-items:center;border-radius:9px;background:#edf3fc;color:var(--navy);font-size:12px;font-weight:800}
.notification-menu-list{max-height:390px;overflow:auto}
.notification-item{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;border-bottom:1px solid #eef1f5;color:inherit;text-decoration:none;transition:background .15s ease}
.notification-item:last-child{border-bottom:0}
.notification-item:hover{background:#f7f9fc}
.notification-item-dot{width:9px;height:9px;flex:0 0 9px;margin-top:5px;border-radius:50%;background:#4b83cf}
.notification-warning .notification-item-dot{background:#d69a35}
.notification-neutral .notification-item-dot{background:#9aa6b5}
.notification-item-copy{min-width:0;flex:1}
.notification-item-copy strong{display:block;color:#26364c;font-size:12px;line-height:1.4}
.notification-item-copy small{display:block;margin-top:4px;color:#748195;font-size:11px;font-weight:400;line-height:1.5;white-space:normal}
.notification-item-count{min-width:23px;height:23px;padding:0 5px;display:grid;place-items:center;border-radius:7px;background:#f0f3f7;color:#42516a;font-size:10px;font-weight:800}
.notification-warning .notification-item-count{background:#fff4df;color:#9b6819}
.notification-empty{min-height:150px;padding:25px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px}
.notification-empty-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#f1f5fa;color:#55739d}
.notification-empty-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-empty strong{font-size:12px}
.notification-empty small{max-width:230px;color:var(--muted);font-size:11px;line-height:1.5}
.notification-menu-footer{padding:10px 15px;border-top:1px solid var(--line);background:#fafbfd;color:#8a96a6;font-size:10px;line-height:1.4}
@media(max-width:720px){.account{align-items:center;gap:10px}.account-name{flex:1;min-width:0;font-size:11px}.notification-menu{right:-60px;top:calc(100% + 9px)}.notification-bell{width:39px;height:39px}}


/* Excel bulk import actions (v1.8) */
.master-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.master-page-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;text-decoration:none;cursor:pointer}
.master-page-actions .btn svg{width:18px;height:18px;flex:0 0 auto}
.excel-import-form{display:inline-flex;align-items:center;margin:0}
.excel-import-form input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.excel-import-form input[type=file]:focus-visible+label{outline:3px solid rgba(22,132,84,.25);outline-offset:2px}
.btn-excel{background:#168454;color:#fff;border:1px solid #168454}
.btn-excel:hover{background:#116b43;border-color:#116b43;color:#fff}
.btn-template{background:#f4c542;color:#513b08;border:1px solid #e5b72f}
.btn-template:hover{background:#e9b92e;border-color:#dba91d;color:#3e2d07}
.import-help-note{margin-top:-12px;margin-bottom:12px;line-height:1.6}
.import-result-panel{margin-bottom:18px}
.import-result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 15px}
.import-result-stats>div{display:grid;gap:4px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:12px}
.import-result-stats strong{font-size:22px;color:var(--navy)}
.import-result-stats span{font-size:10px;color:var(--muted)}
.import-result-stats .import-success-number{color:#168454}
.import-result-stats .import-skipped-number{color:#a36a11}
.import-error-table{min-width:420px}
@media(max-width:720px){.master-page-actions{width:100%;justify-content:flex-start}.master-page-actions .btn{flex:1}.excel-import-form{flex:1}.excel-import-form .btn{width:100%}.import-result-stats{grid-template-columns:1fr 1fr 1fr}}
.login-note a{color:#245da8;font-weight:700;text-decoration:none}.login-note a:hover{text-decoration:underline}
