:root{font-family:Segoe UI,Arial,sans-serif;color:#193649;background:#f2f5f8;font-size:16px;line-height:1.5;--nav:#12384e;--accent:#147e76;--line:#dce4ea}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:9px 14px;background:white;color:#193649;font-weight:600}button:hover{background:#eaf4f2;border-color:#8fbbb6}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.danger{color:#a12f31}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #eab450;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #b9c8d2;border-radius:6px;padding:9px 11px;background:#fff;color:#193649}input[type=checkbox]{width:auto;accent-color:var(--accent)}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:15px}label input,label select,label textarea{display:block;margin-top:6px}textarea{min-height:100px;resize:vertical}h1{font-size:2rem;line-height:1.2;margin:8px 0 12px;font-weight:650;letter-spacing:-.6px}h2{font-size:1.15rem;margin:0 0 16px}h3{font-size:1rem;margin:0 0 8px}p{margin:8px 0 16px}small,.muted{color:#627989}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:1.4px;font-weight:700;color:#547384}.layout{display:grid;grid-template-columns:235px 1fr;min-height:100vh}aside{background:var(--nav);color:#fff;padding:30px 18px;display:flex;flex-direction:column;gap:28px}.brand{font-size:1.4rem;font-weight:700;padding:0 13px}.brand span{color:#8ed4c8;font-size:.75rem;display:block;font-weight:500;letter-spacing:1px;margin-top:5px}nav{display:grid;gap:5px}nav button{text-align:left;color:#bcd0dd;background:none;border:0;padding:12px 14px;font-weight:500}nav button.active,nav button:hover{background:#245369;color:white}.aside-bottom{margin-top:auto;padding:12px;font-size:.875rem;color:#bfd0dc}.aside-bottom strong{color:#fff;display:block}.aside-bottom button{margin-top:12px;background:transparent;color:white}.content{min-width:0}header{height:69px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 32px;font-size:.875rem}.badge{display:inline-block;background:#e5f3ef;color:#16665d;border-radius:5px;padding:4px 9px;font-size:.8rem;font-weight:600}.badge.warn{background:#fff0d6;color:#835114}.badge.red{background:#fde6e4;color:#9c3830}main{max-width:1600px;margin:auto;padding:32px}.titlebar,.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.toolbar{justify-content:flex-start;margin:24px 0 20px}.toolbar input,.toolbar select{width:auto;max-width:100%}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.card,.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:22px}.card .number{font-size:2rem;font-weight:600;display:block}.split{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.lesson{display:flex;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.lesson:last-child{border:0}.lesson .period{display:flex;align-items:center;justify-content:center;width:45px;height:48px;flex-shrink:0;background:#eaf2f8;border-radius:8px;font-weight:700}.lesson .details{flex:1}.lesson p{margin:3px 0;font-size:.9rem}.login{max-width:460px;margin:9vh auto;background:white;padding:38px;border:1px solid var(--line);border-radius:12px}.login .primary{width:100%}.notice{border-left:3px solid #e3ad47;background:#fff6e5;padding:12px 16px;font-size:.9rem;margin:18px 0}.empty{color:#647b89;padding:28px;text-align:center;background:#f7f9fb;border-radius:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem;text-align:left}th{font-size:.8rem;background:#f4f7fa;color:#537182;padding:12px;font-weight:600}td{border-bottom:1px solid var(--line);padding:12px;vertical-align:top}td button{padding:5px 9px}.week{table-layout:fixed;min-width:850px}.week th:first-child{width:58px}.week td{height:84px;padding:7px}.slot{display:block;width:100%;text-align:left;background:#edf5f8;border:0;border-left:3px solid #4996a8;font-size:.82rem;margin:0 0 7px;padding:9px;font-weight:400}.slot strong{display:block}.slot small{display:block}.slot.done{border-color:#147e76;background:#eaf5ee}.slot.cancelled{opacity:.65;text-decoration:line-through}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tabs button.active{background:#153c53;color:white}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}dialog{border:0;border-radius:12px;width:min(820px,95vw);max-height:92vh;padding:28px;color:#193649;box-shadow:0 20px 80px #001b3b44}dialog::backdrop{background:#0d263b80}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.dialog-head h2{font-size:1.4rem}.attendance td{vertical-align:middle}.attendance select{min-width:150px}.attendance input{width:84px}#toast{position:fixed;right:24px;bottom:24px;background:#153c53;color:white;max-width:min(500px,90vw);padding:14px 20px;border-radius:8px;box-shadow:0 5px 25px #0002;display:none;z-index:10}#toast.visible{display:block}.checklist{display:grid;grid-template-columns:1fr 1fr;max-height:240px;overflow:auto;background:#f4f7fa;padding:14px;gap:8px}.checklist label{margin:0}.checklist input{display:inline}.error{color:#a12f31}.print-only{display:none}@media(max-width:1000px){.layout{grid-template-columns:185px 1fr}aside{padding:22px 10px}.brand{font-size:1.2rem}main{padding:24px}.split{grid-template-columns:1fr}}@media(max-width:700px){.layout{display:block}aside{padding:14px;gap:12px}.brand span{display:inline;margin-left:12px}nav{display:flex;overflow:auto}nav button{white-space:nowrap;padding:8px 12px}.aside-bottom{display:none}header{padding:10px 18px;height:auto;gap:12px}main{padding:20px 14px}.cards{gap:8px}.card{padding:12px}.card .number{font-size:1.6rem}.grid2{grid-template-columns:1fr}.checklist{grid-template-columns:1fr}h1{font-size:1.65rem}.lesson{gap:10px}dialog{padding:20px}.attendance td{padding:7px}}@media print{aside,header,.toolbar,.actions,button,.tabs{display:none!important}.layout{display:block}body{background:white}main{padding:0}.panel{border:0;padding:0}.print-only{display:block}.table-wrap{overflow:visible}table{font-size:10pt}}
:root fieldset{border:0;padding:0;margin:0;min-width:0}.section-title{margin-top:24px}.titlebar>input{width:auto}.lesson .details button{margin-top:8px}button[hidden]{display:none!important}
:root .slot.selected{outline:3px solid #d6a331;outline-offset:1px}.homework-due{background:#eaf5ef;padding:16px;border-radius:8px;margin-bottom:20px}.homework-new,.behavior-entry{border-top:1px solid var(--line);padding-top:18px;margin:20px 0}.homework-item{margin:12px 0}.homework-item p{white-space:pre-wrap;margin:4px 0}.attendance input:disabled{background:#edf1f4;color:#8b9ba5;border-color:#dce4ea}.homework-new textarea{min-height:80px}.homework-new input[type=date]{max-width:240px}
.layout{grid-template-columns:235px minmax(0,1fr);align-items:start}.layout>aside{position:sticky;top:0;height:100vh;overflow-y:auto;z-index:2}nav{width:100%}nav button{display:block;width:100%}
.main-nav{display:grid;gap:5px;width:100%;flex:1}.main-nav button{display:block;width:100%;text-align:left;color:#bcd0dd;background:transparent;border:0;padding:12px 14px;font-weight:500}.main-nav button.active,.main-nav button:hover{background:#245369;color:#fff}

.changed-value { color: #b42318 !important; font-weight: 700; }
.conflict-log{margin:20px 0}.conflict-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}.conflict-row span{flex:1;min-width:240px;color:#8f2e31;font-weight:600}.conflict-row button{font-size:.85rem}

.grade-table{min-width:1500px}.grade-table td,.grade-table th{padding:7px}.grade-table th small{display:block;max-width:130px;white-space:normal}.grade-table button{min-width:42px;padding:6px}.grade-a{background:#edf3fc}.grade-b{background:#edf9f2}.grade-better,.grade-better button{color:#087c42;font-weight:bold}.grade-worse,.grade-worse button{color:#b82121;font-weight:bold}.handed{background:#cbe2ff!important;color:#154b84!important}.calendar-event{border-left:5px solid #126c91;padding:12px 16px;margin:12px 0;background:#f5f8fb}.category-meeting{border-color:#ff0000}.category-career{border-color:#00b050}.category-exam{border-color:#0070c0}.category-holiday{border-color:#7030a0}.category-other{border-color:#526477}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap}.calendar-legend .calendar-event{display:inline-block;margin:0;padding:5px 10px}.grade-table tfoot{background:#f0f4fa}.panel+.panel{margin-top:20px}

.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{border:1px solid #dbe4eb;min-height:80px;padding:4px;overflow-wrap:anywhere}.calendar-day .calendar-event{display:block;margin:3px 0;padding:4px;font-size:12px}.month-calendar{margin:24px 0}@media(max-width:650px){.calendar-day{min-height:55px}.calendar-day .calendar-event{font-size:10px;padding:2px}}

.category-school{border-color:#ff0000}

.today-lessons,.dashboard-panel{width:100%;margin-top:22px}.dashboard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.dashboard-top label{min-width:210px}.dashboard-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:14px 0 24px}.dashboard-period{min-width:0;border:1px solid var(--line);border-radius:10px;padding:18px}.dashboard-period h3{font-size:1.03rem;font-weight:750;letter-spacing:.3px;text-transform:uppercase;border-bottom:2px solid currentColor;padding-bottom:10px;margin-bottom:14px}.dashboard-today{background:#eaf6f3;color:#0d655e}.dashboard-week{background:#edf3fc;color:#255b93}.dashboard-month{background:#fff5e8;color:#92571f}.dashboard-event{background:#fff;border-radius:7px;padding:10px 12px;margin:10px 0;color:#193649}.dashboard-event strong{display:block;font-size:.94rem}.dashboard-event small{display:block;margin-top:3px;font-size:.78rem}.dashboard-rest{border-top:1px solid var(--line);padding-top:18px}@media(max-width:1050px){.dashboard-periods{grid-template-columns:1fr}}

  .category-school{border-color:#f28c28}.category-trip{border-color:#e5ba35;background:#f5f8fb}

.week td>.notice{display:none}.planning-sections{display:grid;grid-template-columns:2fr 1.35fr 1fr;gap:16px;margin:24px 0}.planning-area{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;min-width:0}.planning-area h2{margin-bottom:4px}.planning-area p{margin:0 0 14px}.planning-controls{display:grid;gap:10px}.planning-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.planning-meta{margin-top:14px!important;padding-top:12px;border-top:1px solid var(--line);font-size:.86rem;color:#526f80}.planning-substitution{background:#f7fafc}@media(max-width:1150px){.planning-sections{grid-template-columns:1fr 1fr}.planning-sections .planning-area:first-child{grid-column:1/-1}}@media(max-width:760px){.planning-sections{grid-template-columns:1fr}.planning-sections .planning-area:first-child{grid-column:auto}.planning-actions button{width:100%}}
.week-calendar .calendar-grid{grid-template-columns:repeat(7,minmax(110px,1fr));overflow:auto}.week-calendar .calendar-day{min-height:170px;padding:10px}.week-calendar .calendar-day>strong{display:block;margin-bottom:8px}.calendar-month-list{margin-top:28px;padding-top:18px;border-top:2px solid var(--line)}.calendar-month-list>h2{text-transform:capitalize;color:#315d77}
.calendar-navigation{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;margin:0 0 20px;padding:12px 14px;background:#eaf2f8;border:1px solid var(--line);border-radius:10px}.calendar-navigation strong{text-align:center;font-size:1.05rem}@media(max-width:760px){.calendar-navigation{grid-template-columns:1fr 1fr}.calendar-navigation strong{grid-column:1/-1;grid-row:1}.calendar-navigation button{padding:8px}.calendar-navigation button:nth-of-type(2){grid-column:1/-1;grid-row:3}}

.external-grade-table{min-width:950px}.external-grade-table th small{display:block;font-weight:400}.external-grade-table td{min-width:70px}.external-grade-table td:nth-child(3),.external-grade-table td:nth-child(5){min-width:190px}.grade-work{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:2px 10px;padding:4px 0;border-bottom:1px solid var(--line)}.grade-work:last-child{border-bottom:0}.grade-work small{grid-column:1;color:#627989}.grade-work span{grid-column:2;grid-row:1 / span 2;font-weight:650}.external-grade-table tbody th{background:#fff;color:#193649}

.office-attendance-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.office-attendance-cards .card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;color:inherit}.office-attendance-cards .card small{color:#527184}.office-attendance-cards .card:hover{background:#eaf4f2;border-color:#8fbbb6;transform:translateY(-1px)}@media(max-width:1000px){.office-attendance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.office-attendance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.attendance-summary-card{display:grid;grid-template-columns:1fr auto;gap:3px 14px;text-align:left;align-content:start}.attendance-summary-card strong,.attendance-summary-card small{grid-column:1/-1}.attendance-summary-card span{font-size:.87rem}.attendance-summary-card b{font-size:1rem}.attendance-summary-card:hover{background:#eaf4f2;border-color:#8fbbb6}
