:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182230;background:#f4f7f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(145deg,#edf8f4 0,#f5f7fa 46%,#eef2f7 100%)}button,input,select{font:inherit}.shell{width:min(1050px,calc(100% - 28px));margin:auto;padding:34px 0 64px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:.73rem;letter-spacing:.14em;color:#16805f;font-weight:800}.topbar h1{font-size:clamp(1.7rem,4vw,2.5rem);margin:.25rem 0 0}.card{background:#fff;border:1px solid #dfe6eb;border-radius:18px;box-shadow:0 10px 35px rgba(31,52,66,.07)}.login-card{max-width:430px;margin:5vh auto;padding:28px}.login-card h2{margin:0 0 6px}.login-card p{margin:0 0 23px;color:#667381}.login-card form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:.86rem;font-weight:700;color:#44515d}input,select{width:100%;padding:12px 13px;border:1px solid #cfd8df;border-radius:10px;background:#fff;color:#182230;outline:none}input:focus,select:focus{border-color:#16805f;box-shadow:0 0 0 3px rgba(22,128,95,.13)}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;font-weight:500}.check input{width:17px;height:17px}.primary,.approve,.reject,.text-btn{border:0;border-radius:10px;cursor:pointer;font-weight:750}.primary{padding:12px 17px;background:#13795b;color:white}.primary:hover{background:#0e644a}.text-btn{padding:9px 12px;background:transparent;color:#5d6873}.filters{display:grid;grid-template-columns:1fr 1.3fr auto;gap:14px;align-items:end;padding:18px}.message{margin:16px 0 0;padding:12px 14px;border-radius:10px;background:#eaf8f2;color:#176449}.message.error{background:#fff0f0;color:#a33131}.loading,.empty{text-align:center;color:#687582;padding:30px;margin-top:18px}.list{display:grid;gap:12px;margin-top:18px}.student-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:19px 20px}.student-name{margin:0 0 7px;font-size:1.05rem}.meta{color:#5e6a76;font-size:.83rem}.course{margin:8px 0 0;color:#394854;font-size:.88rem}.actions{display:flex;gap:8px}.approve,.reject{padding:10px 14px}.approve{background:#dff5ec;color:#12674d}.reject{background:#fde8e8;color:#a22d2d}.approve:hover{background:#c9eddf}.reject:hover{background:#f9d2d2}button:disabled{cursor:wait;opacity:.6}.hidden{display:none!important}@media(max-width:680px){.shell{width:min(100% - 20px,1050px);padding-top:22px}.filters{grid-template-columns:1fr}.student-row{grid-template-columns:1fr}.actions button{flex:1}.actions{width:100%}.topbar{align-items:flex-start}.student-name{font-size:1rem}}

.filters{grid-template-columns:1fr 1fr 1.3fr auto}.bulkbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:22px 0 0;color:#44515d}.bulkbar>div{display:flex;gap:8px}#progress{font-size:.9rem;color:#536471}dialog{max-width:490px;border:1px solid #dfe6eb;border-radius:18px;padding:26px;color:#182230}dialog::backdrop{background:rgba(15,30,40,.45)}dialog h2{margin-top:0}dialog p{line-height:1.5}.student-row button:focus-visible,button:focus-visible{outline:3px solid #82cdb6;outline-offset:3px}@media(max-width:680px){.filters{grid-template-columns:1fr 1fr}.filters label:nth-child(3),.filters>.primary{grid-column:1/-1}.bulkbar{align-items:flex-start;flex-direction:column}}

.workspace-tabs{display:flex;gap:8px;margin:0 0 20px;border-bottom:1px solid #d9e3e7;padding-bottom:12px}.workspace-tabs button{padding:11px 18px;border:0;border-radius:10px;background:transparent;color:#586874;font-weight:700;cursor:pointer}.workspace-tabs button.active{background:#13795b;color:#fff}.teaching-filters{display:flex;align-items:end;gap:16px;padding:18px}.teaching-filters label{flex:1}.teaching-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;margin-top:18px;align-items:start}.student-sidebar{padding:18px;display:grid;gap:12px}.student-sidebar label{font-size:.78rem}.student-detail{padding:26px}.muted{color:#647582;line-height:1.5}.small,small{font-size:.8rem;font-weight:400;color:#657780}.student-choice{width:100%;display:grid;gap:5px;text-align:left;border:1px solid transparent;border-radius:10px;padding:12px;background:#fff;cursor:pointer;color:#1c3441;margin:0 0 4px}.student-choice.active{background:#e8f6f0;border-color:#93c9b5}.student-choice:hover{background:#f0f5f6}.student-choice small{font-size:.73rem}.student-detail h2{margin:.5rem 0}.student-detail header{padding-bottom:12px;border-bottom:1px solid #e3e9ed}#lessonForm{display:grid;gap:14px;padding-bottom:22px;border-bottom:1px solid #e3e9ed}.lesson-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}textarea{font:inherit;width:100%;resize:vertical;min-height:120px;border:1px solid #cfd8df;border-radius:10px;padding:13px;line-height:1.6}.lesson-actions,.history-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.history-heading{margin-top:18px}.history-heading input{max-width:210px}.timeline-entry{border-left:3px solid #b8d8cb;padding:3px 0 16px 16px;margin:18px 0}.timeline-entry h4{margin:6px 0}.timeline-entry p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;margin:8px 0}.badge{display:inline-block;font-size:.72rem;padding:4px 7px;border-radius:6px;background:#e6f5ec;color:#176449}.badge.uncertain{background:#fff2d7;color:#77560e}details{border-top:1px solid #e1e7eb;margin-top:22px;padding:18px 0}summary{font-weight:700;cursor:pointer}.attendance-item{display:flex;gap:10px;justify-content:space-between;border-bottom:1px solid #edf1f3;padding:10px 0;font-size:.85rem}#studentsList{max-height:65vh;overflow:auto}#saveStatus{font-size:.85rem;line-height:1.5}#draftStatus{font-size:.75rem}.empty-students{font-size:.9rem;line-height:1.6;color:#647582;padding:16px 0}@media(max-width:800px){.teaching-grid{grid-template-columns:1fr}.student-sidebar{padding:14px}#studentsList{max-height:240px}.student-detail{padding:18px}.teaching-filters{flex-wrap:wrap}.teaching-filters label{min-width:140px}.lesson-fields{grid-template-columns:1fr}.history-heading{align-items:stretch;flex-direction:column}.history-heading input{max-width:none}.workspace-tabs button{padding:10px 13px}}

.book-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.book-heading h2{margin:5px 0}.book-scroll{overflow:auto;max-height:72vh;border-radius:12px}.book-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.84rem}.book-table th{position:sticky;top:0;background:#e8f2ee;color:#34554a;text-align:left;padding:13px 10px;z-index:2;white-space:nowrap}.book-table td{padding:8px;border-top:1px solid #dce6e0;border-right:1px solid #e4eae6;vertical-align:top;background:#fff}.book-table td:nth-child(2){position:sticky;left:0;z-index:1;min-width:190px;box-shadow:3px 0 5px #1838290a}.book-table td:nth-child(3){min-width:160px;max-width:180px;font-size:.75rem;color:#627268}.book-table small{display:block;line-height:1.5;margin-top:6px}.book-table input,.book-table select,.book-table textarea{font-size:.84rem;border-radius:4px;padding:8px;min-width:150px}.book-table td:nth-child(5) select{width:180px}.book-table input{min-width:230px}.book-table textarea{min-width:300px;min-height:90px;line-height:1.5}.book-table select[multiple]{width:190px}.book-table textarea:focus{outline:2px solid #16805f}.book-table .book-dirty td{background:#fffbea}.book-table .book-row-status{min-width:130px;max-width:200px;overflow-wrap:anywhere}.book-table button{padding:9px 14px}.workspace-tabs{flex-wrap:wrap}body:has(#historyBookPane:not(.hidden)) .shell{width:min(1700px,calc(100% - 28px))}@media(max-width:680px){.book-heading{align-items:flex-start}.book-heading .primary{font-size:.85rem}.book-scroll{max-height:65vh}.book-table td:nth-child(2){min-width:145px;max-width:145px}}
.book-table th:nth-child(2){left:0;z-index:3;box-shadow:3px 0 5px #1838290a}
