:root{--brand: #05515f;--brand-dark: #033f49;--brand-soft: #e6f0f2;--accent: #c18a2d;--ink: #173036;--muted: #5f7076;--line: #d7e2e5;--page: #eef5f3;color:var(--ink);background:var(--page);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h1{font-size:1.35rem}h2{font-size:1.5rem}h3{font-size:1rem}svg{flex:0 0 auto}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-screen{background:radial-gradient(circle at top right,#d8e9e7,transparent 38%),var(--page)}.login-panel,.panel{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 32px #05515f14}.login-panel{width:min(460px,100%);padding:34px;display:grid;gap:18px}.brand-mark{width:58px;height:58px;display:grid;place-items:center;border-radius:9px;background:var(--brand);color:#fff}.brand-mark svg{width:30px;height:30px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:20px;background:var(--brand-dark);color:#fff;display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:12px;padding:10px 8px 18px;border-bottom:1px solid rgba(255,255,255,.18)}.brand>svg{width:32px;height:32px}.brand div{display:grid}.brand span{color:#b9c6d3}.sidebar nav{display:grid;gap:8px}.nav-link,.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border-radius:8px;border:1px solid transparent;text-decoration:none;font-weight:750}.nav-link{justify-content:flex-start;padding:10px 12px;color:#d6dee8}.nav-link.active,.nav-link:hover{background:#ffffff1f;color:#fff}.nav-link svg,.button svg,.icon-button svg,.tab-button svg{width:18px;height:18px}.sidebar-action{width:100%;margin-top:auto}.button.primary{background:var(--brand);color:#fff}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.ghost{color:#e5edf5;background:transparent;border-color:#fff3}.button.danger{background:#fff;border-color:#f0c9c5;color:#a52a20}.button:disabled{cursor:wait;opacity:.55}.main-area{min-width:0}.topbar{min-height:96px;padding:22px 32px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{color:var(--brand);font-size:.76rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.user-email,.muted,.page-heading p{color:var(--muted)}.role-pill{padding:6px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-weight:800}.page{padding:28px 32px 48px}.stack{display:grid;gap:18px}.panel{padding:22px}.page-heading,.panel-header,.sheet-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.page-heading>div:first-child{display:grid;gap:5px}.summary-badges,.sync-counts{display:flex;flex-wrap:wrap;gap:8px}.summary-badges span,.sync-counts span{display:inline-flex;align-items:baseline;gap:5px;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted)}.summary-badges strong,.sync-counts strong{color:var(--brand-dark)}.search-field{position:relative;max-width:720px}.search-field svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;color:var(--muted)}input,select,textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.search-field input{padding-left:42px}textarea{min-height:88px;resize:vertical}label{display:grid;gap:6px;font-weight:700;color:#334155}.notice{padding:12px 14px;border-radius:8px;border:1px solid}.notice.warning{background:#fff8e7;border-color:#ecd394;color:#75510e}.notice.success,.success{background:#eaf8f0;border-color:#a8dec0;color:#087443}.notice.error,.error{background:#fff0ef;border-color:#efc4c0;color:#a52a20}.empty-state{min-height:260px;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #b8c9cc;border-radius:9px}.empty-state svg{width:38px;height:38px;color:var(--brand)}.section-title{display:flex;align-items:center;gap:9px}.section-title>svg{width:21px;color:var(--brand)}.section-title>span{min-width:26px;padding:3px 7px;border-radius:999px;background:var(--brand-soft);text-align:center;font-weight:800}.list-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:13px}.list-card{min-height:124px;display:grid;grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:14px;padding:16px;color:var(--ink);text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 7px 20px #05515f0b;transition:transform .15s,border-color .15s}.list-card:hover{transform:translateY(-2px);border-color:#8bb2b8}.list-kind{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;color:#fff;background:var(--brand)}.list-kind.option{background:#8a5a16}.list-kind svg{width:23px}.list-card-content{min-width:0;display:grid;gap:5px}.list-card-title{margin:0;font-size:1rem;line-height:1.25;overflow-wrap:anywhere}.list-card-subtitle{margin:0;color:var(--muted);line-height:1.35;white-space:normal;overflow-wrap:anywhere}.list-card-count{color:var(--brand);font-size:.85rem;font-weight:750}.list-card-arrow{flex:0 0 auto}.grade-page{display:grid;gap:18px}.sheet-toolbar{align-items:center}.sheet-meta{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.sheet-meta span{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.sheet-meta svg{width:16px}.print-frame{overflow-x:auto;padding:18px;background:#cdd8da;border-radius:9px}.grade-sheet{width:100%;min-width:890px;max-width:1040px;margin:0 auto;padding:9mm;background:#fff;color:#000;font-family:Calibri,Arial,sans-serif;box-shadow:0 8px 26px #00000024}.grade-sheet h1{margin:0 0 3mm;text-align:center;text-decoration:underline;font-size:14pt;font-weight:700}.grade-sheet table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:10.5pt}.grade-sheet th,.grade-sheet td{height:25pt;padding:2px 4px;border:1px solid #000;vertical-align:middle;text-align:left}.grade-sheet th{font-weight:700;background:#fff}.grade-sheet .grade-cell,.grade-sheet th:nth-last-child(-n+10){text-align:center}.grade-sheet .section-row td{height:25pt;font-weight:700}.grade-sheet .orientation-section td{text-align:center}.grade-sheet .number-col{width:4.25%}.grade-sheet .orientation-col{width:5.3%}.grade-sheet .name-col{width:21.3%}.grade-sheet .grade-col{width:5.3%}.sheet-footnote{min-height:40pt;margin-top:7mm;padding-top:2mm;font-size:10pt;font-style:italic;line-height:1.2}.tab-list{display:flex;flex-wrap:wrap;gap:8px}.tab-button{min-height:40px;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:1px solid #cbd5df;border-radius:999px;background:#fff;color:#334155;font-weight:800}.tab-button.active{background:var(--brand);border-color:var(--brand);color:#fff}.inline-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.table-wrap{overflow-x:auto}.panel table{width:100%;border-collapse:collapse;font-size:.91rem}.panel th,.panel td{padding:9px 10px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}.panel th{background:#f8fafc;color:#334155}.icon-button{width:40px;height:40px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.icon-button.danger{color:#a52a20}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.span-2{grid-column:span 2}.full-width{grid-column:1 / -1}.align-start{justify-self:start}.teacher-checks{max-height:220px;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 15px;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:8px}.check-line{display:flex;align-items:center;flex-direction:row;gap:7px;font-weight:600}.check-line input{width:17px;min-height:17px}.editor-panel{border-top:1px solid var(--line);padding-top:18px}.student-editor input{min-width:90px}.student-editor td:nth-child(2) input,.student-editor td:nth-child(3) input{min-width:70px}.compact-form{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto auto auto;gap:8px;align-items:center}.sync-result{display:grid;gap:10px}.sync-result details summary{cursor:pointer;font-weight:750}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar-action{margin-top:0}.form-grid,.teacher-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form{grid-template-columns:1fr 1fr}}@media(max-width:1240px){.list-card-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}}@media(max-width:640px){.page{padding:18px 14px 36px}.topbar{min-height:76px;padding:16px 14px}.page-heading,.panel-header,.sheet-toolbar{align-items:stretch;flex-direction:column}.list-card-grid,.form-grid,.teacher-checks,.compact-form{grid-template-columns:1fr}.list-card{min-height:0;grid-template-columns:42px minmax(0,1fr) 18px;gap:11px;padding:14px 12px;align-items:start}.list-kind{width:42px;height:42px}.list-card-title{font-size:.95rem}.list-card-subtitle{font-size:.9rem}.list-card-arrow{align-self:center}.span-2{grid-column:auto}.panel{padding:15px}}@media print{@page{size:A4 portrait;margin:9mm}:root,body{background:#fff;color:#000}.no-print,.sidebar,.topbar,.sheet-toolbar{display:none!important}.app-shell,.main-area,.grade-page,.print-frame{display:block;margin:0;padding:0;background:#fff}.grade-sheet{width:100%;min-width:0;max-width:none;margin:0;padding:0;box-shadow:none}.grade-sheet h1{margin-bottom:3mm}.grade-sheet thead{display:table-header-group}.grade-sheet tr{break-inside:avoid;page-break-inside:avoid}.grade-sheet .student-row td,.grade-sheet .section-row td{height:25pt}.sheet-footnote{break-inside:avoid}}
