:root{--ink:#17313d;--muted:#74848f;--teal:#177c8c;--teal-light:#e8f3f5;--nav:#173640;--line:#e0e7eb;--bg:#f3f6f8;--white:#fff;font-family:Inter,Arial,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid #cddae1;background:white;color:var(--ink);padding:10px 16px;border-radius:6px;cursor:pointer;font-weight:600;white-space:nowrap;line-height:1.3}button:hover,.button:hover{background:#eef5f7;text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.button.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{filter:brightness(.95)}button.quiet{border:0;background:transparent;padding:6px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid #cdd8df;border-radius:5px;padding:10px 11px;background:white;color:var(--ink);height:40px}input:focus,select:focus,textarea:focus{outline:2px solid #4aafbd;outline-offset:1px}textarea{height:85px;resize:vertical}input[type=color]{padding:4px}input[type=file]{height:auto;padding:8px}input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--teal)}label{display:block;font-size:13px;font-weight:600;line-height:1.7;margin-bottom:15px}label input,label select,label textarea{display:block;margin-top:5px;font-weight:400}.sidebar{position:fixed;top:0;left:0;bottom:0;width:250px;background:var(--nav);color:#d7e4e8;overflow-y:auto;z-index:30;padding-bottom:80px}.brand{height:90px;display:flex;gap:12px;align-items:center;padding:22px 20px;color:white;font-size:12px;font-weight:700;letter-spacing:.7px;border-bottom:1px solid #ffffff14}.brand:hover{text-decoration:none}.brandmark{height:43px;width:43px;display:inline-flex;align-items:center;justify-content:center;color:white;background:#238d9c;border:1px solid #ffffff40;border-radius:10px;font-family:Georgia,serif;font-size:21px;letter-spacing:-2px;flex-shrink:0}.brand small{display:block;font-size:11px;letter-spacing:1px;color:#99b9c3;font-weight:400;margin-top:6px}.navcaption{padding:24px 22px 12px;font-size:9px;color:#8eafb9;letter-spacing:1.8px}.sidebar nav{padding:0 12px}.sidebar nav>a,.sidebar summary{display:flex;align-items:center;padding:12px 10px;color:#d8e4e8;font-size:12px;cursor:pointer;border-radius:5px;font-weight:600}.sidebar details summary{list-style:none}.sidebar summary::after{content:'⌄';margin-left:auto;color:#7d9fa8}.sidebar details>a{display:block;margin-left:25px;padding:9px 12px;border-left:1px solid #ffffff20;color:#abc7d0;font-size:11.5px}.sidebar a:hover,.sidebar summary:hover{background:#ffffff0a;text-decoration:none;color:white}.sidebar .selected{background:#2e6673;color:white}.navicon{width:26px;font-size:18px;color:#85b8c5;font-weight:400}.sidebarfoot{padding:20px 22px;color:#7e9da7;font-size:9px;letter-spacing:1px;margin-top:30px}.sidebarfoot small{display:block;margin-top:6px;font-size:9px;letter-spacing:0}.workspace{margin-left:250px;min-height:100vh}.topbar{height:73px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.toplabel{font-size:12px;color:#7d8c96}.toplabel span{margin:0 12px;color:#c5ced3}.user{display:flex;align-items:center;gap:10px;font-size:12px}.avatar{height:34px;width:34px;border-radius:50%;background:#edf4f5;display:flex;align-items:center;justify-content:center;color:var(--teal);font-weight:bold}.user small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.user form{margin-left:14px}.user button{font-size:11px}.menu-button{display:none}main{padding:30px 34px 45px;max-width:1800px;margin:auto}.pageheading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:var(--teal);font-weight:700;margin:0 0 8px}h1{font-size:27px;font-weight:650;letter-spacing:-.8px;margin:0 0 9px}h2{font-size:15px;font-weight:650;margin:0}h3{font-size:14px;margin:22px 0 12px}.subtitle{color:var(--muted);line-height:1.6;font-size:12px;margin:0}.statsgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:23px}.statcard{background:white;border:1px solid var(--line);border-radius:8px;padding:23px;position:relative;overflow:hidden}.statlabel{color:#6c7e88;font-size:11px}.statcard strong{display:block;font-size:32px;font-weight:650;letter-spacing:-1px;margin-top:17px}.statcard strong small{font-size:15px;font-weight:400;color:var(--muted);margin-left:5px}.statline{position:absolute;width:32px;height:3px;background:#4aabbb;bottom:0;left:23px}.two-panel{display:grid;grid-template-columns:1fr 1fr;gap:23px}.card{background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:23px;overflow:hidden}.cardhead{padding:19px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.cardhead>a{font-size:11px}.cardbody{padding:23px}.compact{padding:15px 22px}.cardbody>label:last-of-type{margin-bottom:18px}.progressnumber{font-size:40px;font-weight:650;margin:0 0 17px;letter-spacing:-1.6px}.progressnumber small{font-size:19px;margin-left:5px;color:#82929b}progress{display:block;width:100%;height:7px;border:0;border-radius:20px;background:#e8eff1;overflow:hidden}progress::-webkit-progress-bar{background:#e8eff1}progress::-webkit-progress-value{background:var(--teal);border-radius:20px}.muted{font-size:11px;color:var(--muted);font-weight:400;line-height:1.7}.quicklinks>a{display:block;position:relative;border-bottom:1px solid #edf1f4;padding:18px 24px}.quicklinks>a:last-child{border:0}.quicklinks span{display:block;font-size:12px;color:var(--ink);font-weight:600}.quicklinks small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.quicklinks b{position:absolute;right:23px;top:25px;font-weight:400}.tablewrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:10px;color:#7c8d98;background:#f8fafb;font-weight:600;border-bottom:1px solid var(--line);padding:14px 20px;white-space:nowrap}td{padding:15px 20px;border-bottom:1px solid #edf1f4;line-height:1.6;vertical-align:middle}tbody tr:last-child>td{border-bottom:0}tr:hover>td{background:#fafcfd}.numeric{font-variant-numeric:tabular-nums;font-weight:600}.empty{text-align:center;padding:45px 28px;color:var(--muted);font-size:12px;line-height:1.8}.tag{display:inline-block;padding:5px 9px;font-size:9px;background:#eef3f6;color:#697f8e;border-radius:5px;font-weight:600;white-space:nowrap}.tag.good{background:#edf7f0;color:#388760}.tag.warn{background:#fff4df;color:#9c742e}.notice{padding:16px 20px;border:1px solid #d9e5ea;background:#edf5f7;border-radius:6px;margin-bottom:22px;font-size:12px;line-height:1.7}.notice.success{color:#2b7650;background:#eff8f1;border-color:#d5e8db}.notice.error{color:#aa3d44;background:#fff0f0;border-color:#f2d4d5}.notice.warning{background:#fff8e9;border-color:#f4e4c1;color:#9d7938}.notice ul{margin:7px 0 0;padding-left:19px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.formactions{display:flex;align-items:center;gap:18px;margin-top:15px;flex-wrap:wrap}.required{color:#ba6165;margin-left:4px}.searchform{display:flex;gap:8px}.searchform input{height:33px;width:200px;font-size:11px}.searchform button{font-size:10px;padding:6px 11px}.pagination{padding:15px 22px;display:flex;gap:24px;justify-content:center;font-size:11px;color:var(--muted)}.rowactions{white-space:nowrap}.rowactions a{display:block;font-size:11px;margin:3px 0}.gradegrid select{min-width:130px}.gradegrid input[type=number]{width:110px;font-weight:600;font-size:15px}.gradegrid small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.gradegrid td:first-child{min-width:240px}.gradegrid td:last-child input{min-width:200px}.check{display:flex;align-items:center;gap:9px;font-weight:400;margin-bottom:12px}.check input{margin:0}.checkgrid{display:grid;grid-template-columns:1fr 1fr}.inlineform{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.inlineform label{margin:0;min-width:190px}.observationrow td{padding:2px 20px 8px;background:#fbfcfd}.observationrow summary{font-size:10px;color:#7a8e99;cursor:pointer}.observationform{display:grid;grid-template-columns:100px 130px 1fr 1fr auto;align-items:end;gap:12px;padding:14px 0}.observationform label{margin:0;font-size:10px}.observationform input{font-size:11px}.templatelist{padding:0 22px}.templatelist article{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--line);font-size:12px}.templatelist article:last-child{border:0}.templatelist article>div{flex:1}.templatelist small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.template-icon{background:#eaf3f5;padding:12px;border-radius:5px;font-size:22px;color:var(--teal)}.editor{display:grid;grid-template-columns:minmax(350px,440px) minmax(0,1fr);gap:23px}.previewcard{position:sticky;top:15px;align-self:start}iframe{border:0;width:100%;height:830px;background:#edf1f5}.editor label{font-size:11px}.reorder{padding:0;list-style:none}.reorder li{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);padding:9px 10px;margin-bottom:6px;border-radius:5px;font-size:11px;gap:6px;background:white}.reorder label{margin:0;font-size:11px}.reorder button{padding:2px 7px;font-weight:400}.reorder li.dragging{opacity:.5}.mentionrow{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:15px}.detailsgrid{display:grid;grid-template-columns:140px 1fr;gap:14px;font-size:13px}.detailsgrid dt{color:var(--muted)}.detailsgrid dd{margin:0}pre{font-size:10px;white-space:pre-wrap;max-width:650px;overflow-wrap:anywhere}.pagefoot{border-top:1px solid var(--line);padding:19px 34px;color:#92a0a8;font-size:10px}.pagefoot span{float:right}.authpage{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(125deg,#153640 0%,#153640 44%,#1d5160 100%)}.authbrand{display:flex;align-items:center;gap:13px;color:white;font-weight:600;letter-spacing:1px;font-size:13px;margin:45px 0 25px}.authcard{width:min(440px,90%);padding:40px;background:white;border-radius:10px;margin:0;box-shadow:0 20px 70px #08212d33}.authcard .subtitle{margin:5px 0 25px}.authcard h1{margin-top:10px}.authcard .full{width:100%;margin-top:8px}.authcard>.muted{text-align:center;margin:22px 0 0;font-size:10px}.authfoot{color:#91adb6;font-size:10px;margin:25px}.full{width:100%}summary{cursor:pointer}
@media(min-width:1650px){main{padding:35px 45px}.cardhead{padding:20px 25px}}@media(max-width:1200px){.sidebar{width:220px}.workspace{margin-left:220px}.topbar{padding:0 24px}main{padding:25px 24px}.statsgrid{gap:12px}.statcard{padding:19px}.statcard strong{font-size:28px}.two-panel{gap:18px}.editor{grid-template-columns:1fr}.previewcard{position:static}.observationform{grid-template-columns:1fr 1fr}.toplabel{display:none}}@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:250px}.workspace{margin-left:0}.menu-button{display:inline-flex}.menu-open .sidebar{transform:translateX(0)}.menu-open .workspace{margin-left:250px;width:100%;position:fixed}.statsgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-panel{grid-template-columns:1fr;gap:0}.cardhead{flex-wrap:wrap}.topbar{height:65px;padding:0 20px}.topbar .user small{display:none}.user form{margin-left:0}.pageheading{align-items:flex-start}h1{font-size:23px}.formgrid{gap:0 15px}}@media(max-width:520px){main{padding:24px 16px}.formgrid{grid-template-columns:1fr}.cardbody{padding:20px}.statsgrid{gap:10px}.statcard{padding:17px}.statlabel{font-size:10px}.statcard strong{font-size:28px}.pageheading{display:block}.pageheading>.button{margin-top:15px}.editor{display:block}.checkgrid{grid-template-columns:1fr}.mentionrow{grid-template-columns:1fr 1fr}.authcard{padding:30px}.user>span:not(.avatar){max-width:100px;overflow:hidden;white-space:nowrap}.searchform{width:100%}.searchform input{width:100%}}

.trenditem{display:grid;grid-template-columns:150px 1fr 55px;gap:18px;align-items:center;margin:20px 0;font-size:12px}.trendtrack{height:16px;background:#eff4f6;border-radius:3px;overflow:hidden}.trendtrack div{height:100%;background:#348d9e}.trenditem strong{text-align:right;font-variant-numeric:tabular-nums}

/* School workspace */
.sidebar { background:#176576; color:#f1fbfc; border-right:1px solid #104e5c; }
.sidebar .brand, .sidebar nav a, .sidebar summary { color:#f1fbfc; }
.sidebar .navcaption, .sidebarfoot, .sidebar .brand small, .sidebarfoot small { color:#d1e9ec; }
.sidebar nav details { margin:.2rem 0; border-radius:7px; overflow:hidden; }
.sidebar nav details[open] { background:#104c5a; }
.sidebar nav details a { margin:0; padding:.7rem .75rem .7rem 2.55rem; border:0; }
.sidebar nav a:hover, .sidebar summary:hover { background:#0e5261; color:#fff; }
.sidebar nav a[aria-current=page], .sidebar nav a.selected { background:#0a3e49; color:#fff; font-weight:700; box-shadow:inset 3px 0 #9be1e4; }
.sidebar summary { font-weight:650; }
.sidebar .navicon, .sidebar summary::after { color:#bfe9ee; }
.sidebar details[open] summary::after { transform:rotate(180deg); }
.brand-logo { width:43px; height:43px; flex-shrink:0; object-fit:contain; border-radius:8px; background:white; padding:3px; }
.profile-link { white-space:nowrap; }
[data-bulk] { background:#f5fafb; border-block:1px solid var(--line); }
[data-sidebar-toggle] { margin-inline-end:.5rem; }
.compact-sidebar .sidebar { transform:translateX(-100%); }
.compact-sidebar .workspace { margin-left:0; }
.record-card { max-width:980px; }
.form-advanced { margin-top:1.2rem; }
.form-advanced summary, .row-menu summary { cursor:pointer; font-weight:650; }
.form-advanced .formgrid { margin-top:.8rem; }
.row-menu form { margin-top:.3rem; }
.marks-entry th:first-child { width:4rem; }
.marks-entry th:last-child { width:11rem; }
.marks-entry input[data-note] { width:9rem; min-width:5rem; }
.school-confirm { width:min(480px,calc(100% - 2rem)); border:0; border-radius:16px; padding:1.6rem; color:#203d4a; box-shadow:0 22px 70px #17354144; }
.school-confirm::backdrop { background:#1d343b80; }
.school-confirm h2 { margin:0 0 .8rem; }
.school-confirm .formactions { justify-content:flex-end; }
button.danger, .primary.danger { background:#a22e35; border-color:#a22e35; color:#fff; }
@media(max-width:800px) {
    [data-sidebar-toggle] { display:none; }
    .compact-sidebar.menu-open .sidebar { transform:none; }
}

@media print {
    .sidebar,.topbar,.pagefoot,.formactions,main>section:first-of-type { display:none; }
    .workspace { margin:0; }
    .tablewrap { overflow:visible; }
    tr { break-inside:avoid; }
}

.appreciation-rule { padding:1rem; margin:.7rem 0; border:1px solid #dce5e9; border-radius:10px; }

.list-limit { display:flex; align-items:end; gap:.65rem; padding:.8rem 1rem; }
.list-limit label { margin:0; min-width:9rem; }
.list-limit select { min-width:6rem; }
.sort-link, button.sort-link { color:inherit; font-weight:inherit; font-size:inherit; border:0; background:transparent; padding:0; }
.sort-link span { margin-left:.25rem; color:#176576; }
tr[hidden] { display:none !important; }
@media print { .list-limit,.pagination { display:none !important; } .tablewrap tr[hidden] { display:table-row !important; } }

.layout-options { padding: 1rem 0; border-top: 1px solid var(--border, #d8e2e7); }
.layout-options summary { cursor: pointer; font-weight: 700; margin-bottom: .6rem; }
.report-zone { border: 1px solid #d8e2e7; border-radius: .5rem; margin: .7rem 0; padding: .8rem; }
.report-zone legend { padding: 0 .3rem; font-weight: 600; }
