:root{
  --navy:#10263d;--navy2:#173a55;--teal:#0e8273;--green:#198754;--amber:#d68a00;
  --red:#c4453c;--purple:#7048aa;--muted:#667788;--line:#dce4e9;--paper:#fff;--bg:#f3f6f8;
}
*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',system-ui,sans-serif;color:var(--navy);background:var(--bg)}
button,select,input,textarea{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:'Fraunces',Georgia,serif;margin:0;letter-spacing:-.025em}
h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:1.45rem}.copy{color:var(--muted);line-height:1.55}
.eyebrow{margin:20px 0 7px;color:var(--teal);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:
radial-gradient(circle at 15% 20%,rgba(14,130,115,.18),transparent 33%),
radial-gradient(circle at 85% 80%,rgba(61,104,145,.2),transparent 32%),var(--navy)}
.login-card{width:min(560px,100%);background:#fff;border-radius:28px;padding:40px;box-shadow:0 30px 80px rgba(0,0,0,.28)}
.brand-mark{width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#17a390,#0d6f65);color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.5rem}
.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}
.role-button{border:1px solid var(--line);background:#fff;color:var(--navy);padding:16px 10px;border-radius:14px;font-weight:700}
.role-button:hover{border-color:var(--teal);background:#ecf8f6}.small{font-size:.8rem;color:#8a98a6;text-align:center}
.app-shell{display:grid;grid-template-columns:238px 1fr;grid-template-rows:72px minmax(calc(100vh - 72px),auto);min-height:100vh}
.topbar{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand-inline,.account{display:flex;align-items:center;gap:12px}.brand-inline strong,.account strong{display:block}.brand-inline span,.account span{font-size:.78rem;color:var(--muted)}
.brand-small{width:40px;height:40px;border-radius:12px;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:700}
.icon-btn{border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px}.sidebar{background:var(--navy);color:#fff;padding:24px 14px;display:flex;flex-direction:column;gap:8px}
.nav-item{padding:12px 14px;border-radius:11px;color:#cad6e0;font-weight:600;border:0;background:transparent;text-align:left}.nav-item.active,.nav-item:hover{background:rgba(255,255,255,.11);color:#fff}
.sidebar .spacer{flex:1}.sidebar-note{padding:15px;border-radius:15px;background:rgba(255,255,255,.08);color:#d9f6f1;font-size:.82rem;line-height:1.45}
.content{padding:36px;max-width:1550px;width:100%;margin:0 auto}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:26px}
.page-heading .eyebrow{margin-top:0}.page-heading p{margin-bottom:0;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}
.primary,.secondary,.danger-btn{border-radius:11px;padding:11px 14px;font-weight:700}.primary{border:0;background:var(--navy);color:#fff}.secondary{border:1px solid var(--line);background:#fff;color:var(--navy)}
.danger-btn{border:1px solid #efc4bf;background:#fff6f4;color:var(--red)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.kpi span,.kpi small{color:var(--muted)}.kpi strong{display:block;font-family:'Fraunces',serif;font-size:2rem;margin:5px 0}
.grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.chip{padding:7px 10px;border-radius:999px;background:#eef3f6;color:var(--muted);font-size:.78rem;font-weight:700}
.list{display:grid}.row{display:flex;align-items:center;gap:12px;padding:14px 4px;border-top:1px solid var(--line)}.row:first-child{border-top:0}
.row-button{width:100%;border:0;background:#fff;text-align:left}.row-button:hover{background:#f8fbfc}.avatar{width:40px;height:40px;border-radius:12px;background:var(--navy2);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.78rem}
.grow{flex:1;min-width:0}.grow strong,.grow span{display:block}.grow span{color:var(--muted);font-size:.84rem;margin-top:3px}
.score{min-width:44px;text-align:center;padding:7px;border-radius:10px;font-weight:700}.red{background:#fde7e4;color:var(--red)}.yellow{background:#fff1d5;color:#936000}.green{background:#dff4e8;color:var(--green)}.purple{background:#eee6fa;color:var(--purple)}.neutral{background:#edf1f4;color:#647382}
select,input,textarea{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;color:var(--navy)}textarea{width:100%;min-height:96px;resize:vertical}
.score-entry{display:grid;grid-template-columns:1fr auto;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.hero{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:30px;border-radius:24px;color:#fff;background:
radial-gradient(circle at 85% 10%,rgba(32,184,164,.35),transparent 35%),linear-gradient(135deg,var(--navy),#1b4a67);margin-bottom:20px}
.hero p{color:#c9d7e2}.orbit{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#173a55 55%,transparent 57%),conic-gradient(#31c3ae 0 var(--pct),rgba(255,255,255,.12) var(--pct))}
.orbit strong{font-family:'Fraunces',serif;font-size:2rem}.mastery-row{display:grid;grid-template-columns:auto 1fr 220px;gap:14px;padding:18px 4px;border-top:1px solid var(--line)}
.dot{width:11px;height:11px;border-radius:50%;margin-top:7px;background:#c5cfd6}.dot.red{background:var(--red)}.dot.yellow{background:var(--amber)}.dot.green{background:var(--green)}.dot.purple{background:var(--purple)}
.pill{display:inline-flex;border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:700}.note{margin-top:9px;color:#8a610f;font-size:.84rem}.evidence{padding-left:14px;border-left:1px solid var(--line);font-size:.84rem}.evidence span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase}
.activity-item{padding:12px 0;border-top:1px solid var(--line)}.activity-item:first-child{border-top:0}.activity-item small{color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(7,20,32,.62);display:grid;place-items:center;padding:20px;z-index:20}.modal{width:min(880px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:20px}.close{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 11px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:700;font-size:.82rem}
.checkbox-line{display:flex;align-items:center;gap:9px}.preset-row{display:flex;gap:8px;flex-wrap:wrap}.preset{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:.82rem}.preset:hover{border-color:var(--teal);background:#ecf8f6}
.history{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.history-entry{padding:10px 0;border-top:1px dashed var(--line)}.history-entry:first-child{border-top:0}
.assignment-table-wrap{overflow:auto}.assignment-table{width:100%;border-collapse:collapse;min-width:900px}.assignment-table th,.assignment-table td{border-bottom:1px solid var(--line);padding:11px 9px;text-align:left;vertical-align:top}
.assignment-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f8fafb;position:sticky;top:0}.assignment-table textarea{min-height:58px;width:220px}
.policy-box{padding:14px;border-radius:14px;background:#f0f6fa;border:1px solid #d5e4ef;margin-bottom:16px}.policy-box strong{display:block;margin-bottom:4px}
.tabs{display:flex;gap:8px;margin-bottom:18px}.tab{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:10px;font-weight:700}.tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.toast{position:fixed;right:20px;bottom:20px;background:var(--navy);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.2);z-index:30}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.content{padding:24px}.kpis{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}
@media(max-width:650px){.login-card{padding:26px 20px}.role-grid{grid-template-columns:1fr}.content{padding:18px 14px}.page-heading{align-items:flex-start;flex-direction:column}.kpis{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.orbit{margin:auto}.mastery-row{grid-template-columns:auto 1fr}.evidence{grid-column:2;border-left:0;padding-left:0}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}

.standard-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:0 0 18px}.standard-choice{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px;color:var(--navy)}.standard-choice:hover{border-color:var(--teal);background:#f4fbf9}.standard-choice.selected{border-color:var(--teal);background:#e8f7f4;box-shadow:inset 0 0 0 1px var(--teal)}.standard-choice>span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#edf2f5;font-weight:700}.standard-choice.selected>span{background:var(--teal);color:#fff}.standard-choice div{display:flex;flex-direction:column}.standard-choice small{color:var(--muted);margin-top:2px}.assignment-table td .pill{margin:2px 3px 2px 0}

.standard-editor{padding:20px 0;border-top:1px solid var(--line)}.standard-editor:first-of-type{border-top:0}.standard-editor-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px}.standard-editor-head div{display:flex;flex-direction:column;gap:3px}.standard-editor-head span{color:var(--muted);font-size:.86rem}.standard-editor input,.standard-editor textarea{width:100%}
