:root{font-family:Arial,Helvetica,sans-serif;color:#17243a;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:#1756b5;text-decoration:none}a:hover{text-decoration:underline}.site-header{background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 6px #15263b08;position:sticky;top:0;z-index:5}.header-inner,.container{max-width:1250px;margin:auto;padding:0 22px}.header-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:12px;align-items:center;color:#133768;font-size:20px;font-weight:800}.brand small{display:block;color:#687b92;font-weight:400;font-size:12px;margin-top:3px}.brand-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#1369d6,#17428c)}.header-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:14px}.login-button{color:white!important;background:#1760ce;border-radius:9px;padding:12px 16px;font-weight:700}.pill-outline{border:1px solid #d7e1ee;padding:10px 13px;border-radius:9px}.container{padding-top:22px;padding-bottom:50px}.hero{text-align:center;margin:22px 0 32px}.slogan{color:#cf1717;font-weight:700;font-size:18px;margin:3px 0}.slogan.secondary{font-size:17px}.hero h1{font-size:30px;line-height:1.35;letter-spacing:.3px;color:#10458b}.hero h1 span{font-size:23px}.muted{color:#69798e}.app-grid,.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.app-card,.panel,.subpanel{border-radius:14px;background:#fff;border:1px solid #dde5ef;box-shadow:0 2px 9px #13284408}.app-card{padding:28px;min-height:210px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transition:transform .12s,box-shadow .12s}.app-card:hover{transform:translateY(-2px);text-decoration:none;box-shadow:0 5px 21px #13284418}.app-card h2{font-size:20px;color:#154783;margin:10px 0}.app-card p{margin:2px 0;color:#667b8e}.app-symbol{font-size:38px;color:#1a65ce}.card-cta{font-weight:700;margin-top:18px}.inactive{opacity:.6}.panel{padding:20px 22px;margin:16px 0 22px}.panel h3,.panel h2{margin-top:0;color:#143b75}.subpanel{padding:16px}.narrow{max-width:700px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabs a{color:#344d67;background:white;border:1px solid #d8e0ed;border-radius:9px;padding:10px 14px;font-size:14px}.tabs a.active{background:#145bd0;color:white;border-color:#145bd0}input,select,textarea,button{font-family:inherit;font-size:14px}input,select,textarea{display:block;border:1px solid #cfdae8;border-radius:9px;padding:11px 12px;max-width:100%;width:100%;background:#fff;color:#1b304b}input[type=checkbox]{width:auto;display:inline-block}label{font-weight:600;font-size:14px;display:block;margin:8px 0}.inline{font-weight:400;display:block}.inline input{vertical-align:middle;margin:0 7px 0 0}button{background:#1760ce;border:1px solid #1760ce;color:#fff;padding:11px 17px;border-radius:9px;cursor:pointer;font-weight:700;min-height:42px}button:hover{background:#0d4da8}button.outline,button.ghost{background:white;color:#1a62bb;border-color:#d4e0f1}button.danger{background:#af2828;border-color:#af2828}.small{font-size:12px;padding:6px 10px;min-height:32px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;align-items:end}.form-grid button{justify-self:start}.wide{grid-column:span 2}.filter{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.filter input,.filter select{width:auto;min-width:135px}.filter label{min-width:120px}.inlineform{display:inline-flex;vertical-align:middle;gap:8px}.tablewrap{overflow-x:auto;border:1px solid #e1e8f2;border-radius:10px;margin:12px 0}table{border-collapse:collapse;width:100%;font-size:13px;min-width:740px}td,th{padding:11px 12px;text-align:left;border-bottom:1px solid #e4ebf4;vertical-align:top}th{background:#ecf3fd;color:#174b90;font-weight:700;white-space:nowrap}tr.morning{background:#fff}tr.afternoon{background:#fffbe8}tr.makeup{background:#e8f5e9}.notice{padding:12px 16px;background:#e8f8ee;color:#176035;border:1px solid #c1e5d0;border-radius:10px;margin-bottom:20px}.error{background:#fff2f1;color:#a51b1b;border-color:#f6cccc;padding:12px}.detail{display:grid;grid-template-columns:130px 1fr;gap:14px;margin:25px 0}.pagination a{padding:8px}.subpanel p{color:#69798e}.subpanel h4{margin:0 0 12px}footer{border-top:1px solid #dce5ef;background:#fff;font-size:12px;color:#6b7c90}footer .container{padding-top:20px;padding-bottom:20px;display:flex;justify-content:space-between}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #7ab3ff;outline-offset:1px}@media(max-width:780px){.header-inner,.container{padding-left:12px;padding-right:12px}.header-inner{align-items:start;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}.header-actions{gap:9px;justify-content:space-between;width:100%;font-size:16px}.header-actions a{padding:9px 7px}.brand{font-size:21px}.brand small{font-size:14px}.hero h1{font-size:25px}.hero h1 span{font-size:21px}.hero .slogan{font-size:20px}.slogan.secondary{font-size:19px}.app-grid,.grid{grid-template-columns:1fr}.app-card{min-height:160px;padding:18px}.app-card h2{font-size:22px}.app-card p{font-size:18px}.panel{padding:14px 12px}.panel h2{font-size:24px}.panel h3{font-size:22px}body{font-size:20px;line-height:1.5}table{font-size:17px}td,th{padding:13px 11px}.tabs a{font-size:18px;padding:12px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.filter{flex-direction:column;align-items:stretch}.filter input,.filter select,.filter label{width:100%}button,input,select,textarea,label{font-size:19px}button{min-height:48px}.small{font-size:17px;min-height:44px}.muted{font-size:17px}.detail{grid-template-columns:1fr;gap:5px}}

/* RC2: cảnh báo lỗi nhập và trạng thái vô hiệu hóa trường chọn người. */
.import-alert{background:#fff3e8;border:1px solid #f1c6a1;border-radius:9px;padding:12px 14px;color:#8f3c0b;font-weight:600}
#teacher-import-field[hidden]{display:none!important}
#bang-doi-chieu{border-color:#a9c8f5;scroll-margin-top:100px}
#bang-doi-chieu h4{margin-top:20px;margin-bottom:8px;color:#163f78}
/* RC3: task management, mobile-first */
.app-card.maintenance{background:#fff8ed;border-color:#f4d7b2}.maintenance-tag{color:#9a4d11;font-weight:700;font-size:13px;margin-top:12px}
.task-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.task-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.task-stat{padding:17px;background:#fff;border:1px solid #dde5ef;border-radius:13px}.task-stat strong{display:block;font-size:27px;color:#164d87;margin-top:5px}.task-stat span{color:#687b92;font-size:13px}.task-tag{display:inline-block;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:700;background:#e9f2fb;color:#194e84;white-space:nowrap}.task-tag.late{background:#fee9e8;color:#9e2424}.task-tag.done{background:#e4f5e9;color:#136839}.task-board{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px}.task-card{border:1px solid #dfe8f2;padding:14px;border-radius:11px;background:#fff;margin:10px 0}.task-card h3{font-size:16px;margin:3px 0 8px}.task-card p{margin:5px 0}.task-progress{background:#e4ecf5;height:8px;border-radius:10px;overflow:hidden;margin:9px 0}.task-progress>div{height:100%;background:#2480bd}.task-inline{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.task-inline label{margin:0}.task-inline input[type=number]{max-width:95px}.task-note{padding:12px;border-left:3px solid #cbddeb;background:#f6faff;margin:12px 0;border-radius:5px}.task-chip-link{border:1px solid #dae4f0;padding:8px 11px;border-radius:8px;display:inline-block;background:white}.task-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.task-setting-row{display:flex;align-items:center;gap:9px;font-size:13px}.task-setting-row input{flex:none}.task-file{display:inline-block;margin:5px 10px 5px 0}.task-list-title{font-size:14px;font-weight:700}.task-config-note{color:#905317;background:#fff3e4;border:1px solid #f1dbba;padding:12px;border-radius:10px}
@media(max-width:780px){.task-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.task-board,.task-admin-grid{grid-template-columns:1fr}.task-card h3{font-size:19px}.task-tag{font-size:14px}.task-inline input[type=number]{max-width:110px}.task-stat span{font-size:16px}.task-card p{font-size:16px}}

/* RC3.1 - compact density across shared Admin, Schedule, Assets and Tasks.
   Preserve comfortable, finger-friendly controls on smaller screens. */
@media (min-width: 781px) {
 .panel { padding: 16px 20px; margin: 12px 0 16px; }
 .subpanel { padding: 12px 14px; }
 .form-grid { gap: 8px 14px; }
 .panel label { margin-top: 5px; margin-bottom: 5px; line-height: 1.35; }
 .panel input:not([type=checkbox]):not([type=radio]):not([type=file]),
 .panel select { padding: 7px 9px; min-height: 35px; }
 .panel button { padding: 7px 13px; min-height: 36px; }
 .panel button.small { padding: 4px 9px; min-height: 30px; }
 .panel textarea { padding: 8px 10px; }
 .tabs { margin: 12px 0; gap: 7px; }
 .tabs a { padding: 8px 11px; }
 .task-card { padding: 11px 12px; margin: 7px 0; }
 .task-stat { padding: 12px 14px; }
 .task-stats { margin: 12px 0; }
 .task-setting-row { margin: 3px 0 !important; padding: 3px 0; line-height: 1.35; }
}
/* Compact tables in all modules. */
.tablewrap table { line-height: 1.3; }
.tablewrap td, .tablewrap th { padding: 6px 9px; vertical-align: middle; }
.tablewrap td label { margin: 0; line-height: 1.3; }
.tablewrap td form { margin: 0; }
.tablewrap td input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.tablewrap td select { padding: 5px 8px; min-height: 32px; border-radius: 6px; }
.tablewrap td input[type=checkbox] { margin: 0; vertical-align: middle; width: 16px; height: 16px; }
.tablewrap td button { padding: 5px 9px; min-height: 32px; }
.task-setting-row { gap: 8px; }
.task-setting-row input[type=checkbox] { width: 17px; height: 17px; margin: 0; }
@media (max-width: 780px) {
 .tablewrap td, .tablewrap th { padding: 8px 9px; }
 .tablewrap td input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
 .tablewrap td select, .tablewrap td button { min-height: 40px; padding: 7px 9px; }
 .tablewrap td input[type=checkbox] { width: 20px; height: 20px; }
 .panel label.inline { margin: 5px 0; }
 .task-setting-row { margin: 5px 0 !important; padding: 4px 0; line-height: 1.4; }
}

/* RC4 header and shared compact banner */
.site-header .header-inner{min-height:82px}.school-logo{width:69px;height:69px;object-fit:contain;flex:none}.brand{gap:12px;max-width:min(750px,70%)}.school-title{display:block}.school-title strong{display:block;font-size:17px;color:#133e73;line-height:1.35;letter-spacing:.1px}.school-title small{display:block;font-size:17px;color:#c72127;font-weight:800;text-align:center;margin-top:3px}.hero{margin:4px 0 22px}.hero .slogan,.hero .slogan.secondary{color:#143d75;font-style:italic;font-weight:700;font-size:17px;margin:3px 0}.hero h1{margin-top:16px}.header-actions .home-link{border:1px solid #c9d9eb;background:#f4f9ff;padding:8px 11px;border-radius:8px;font-weight:700}.task-file-rows{display:grid;gap:9px;grid-column:1/-1}.task-file-entry{border:1px solid #e0e7f1;border-radius:9px;padding:8px 10px}.task-file-entry input{width:100%;max-width:600px}.task-type-note{color:#6a7e92;font-size:12px}.task-note-green{color:#196e42;font-weight:700}.task-note-red{color:#b33232;font-weight:700}.task-note-orange{color:#ab6411;font-weight:700}.task-group{border:1px solid #dfe8f3;border-radius:10px;padding:12px;margin-top:10px}.task-group h4{margin:3px 0 9px}.task-group .grid{row-gap:2px}.task-group .inline{margin:2px 0}.report-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.report-filters label{min-width:160px}.print-report h2{margin-bottom:10px}.header-actions{justify-content:flex-end}
@media(max-width:780px){.brand{max-width:100%}.school-logo{width:55px;height:55px}.school-title strong,.school-title small{font-size:13px}.site-header .header-inner{min-height:unset}.hero .slogan,.hero .slogan.secondary{font-size:16px}}
@media print{.site-header,nav.tabs,button,.report-filters,footer,.no-print{display:none!important}.panel{border:0;box-shadow:none}.container{max-width:100%}body{background:white;color:black}.tablewrap{overflow:visible}}

.school-title strong{ text-align:center }.site-header .header-inner{gap:15px}.hero{margin-top:0}.container{padding-top:12px}
