:root{--ink:#18283b;--muted:#617084;--line:#dce3ea;--paper:#fff;--mist:#f5f8fb;--brand:#176b79;--accent:#e6854a;--success:#216f52}*{box-sizing:border-box}body{margin:0;background:var(--mist);color:var(--ink);font-family:"Yu Gothic UI","Hiragino Sans",system-ui,sans-serif;line-height:1.7}header{min-height:68px;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 5vw;border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-weight:800;letter-spacing:.05em;text-decoration:none}nav{display:flex;gap:16px;align-items:center}a{color:#0f6675}nav a{text-decoration:none}nav form{margin:0}.inline button{border:0;background:transparent;color:#0f6675;padding:0;font:inherit;cursor:pointer}main{max-width:1160px;margin:0 auto;padding:44px 24px 64px}footer{max-width:1160px;margin:0 auto;padding:24px;color:var(--muted);font-size:.84rem}.synthetic-banner{background:#fff3db;color:#6a4510;text-align:center;padding:8px 18px;font-size:.85rem;font-weight:700;border-bottom:1px solid #efd29b}.hero{padding:48px 6%;background:linear-gradient(125deg,#e8f6f4,#fff2e7);border-radius:20px}.hero h1{font-size:clamp(2rem,4vw,3.45rem);line-height:1.3;margin:.2em 0}.hero p{max-width:620px;font-size:1.06rem}.eyebrow{font-size:.78rem;letter-spacing:.12em;color:var(--brand);font-weight:700;margin:0 0 8px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px}.cards article,.panel,.metrics article{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 4px 18px rgba(19,42,64,.04)}h1,h2,h3{line-height:1.35}h2{font-size:1.18rem}.button,button{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:700;text-decoration:none;cursor:pointer;font:inherit}.button:hover,button:hover{background:#105663}.panel{margin:20px 0}.narrow{max-width:560px;margin:32px auto}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.heading{margin-bottom:24px}.heading h1{margin:.1em 0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.metrics span{display:block;color:var(--muted);font-size:.85rem}.metrics b{font-size:2rem}.notice{padding:12px 16px;background:#e7f6ef;border-left:4px solid var(--success);border-radius:6px}.muted,.empty{color:var(--muted)}.program-card{display:flex;flex-direction:column}.program-card .button{margin-top:auto;align-self:flex-start}.status{color:var(--success);font-weight:700}.student-row{display:flex;gap:20px;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0}.student-row:first-of-type{border-top:0}.student-row h3{margin:0}.student-row h3 span{font-size:.82rem;color:var(--muted);font-weight:400}.student-row p{font-size:.88rem;color:var(--muted)}.student-row ul{padding-left:20px}.compact{min-width:250px}details{border:1px solid var(--line);border-radius:8px;padding:8px 12px}summary{cursor:pointer;font-weight:700}form{display:grid;gap:12px}label{display:grid;gap:5px;font-size:.9rem;font-weight:700}input,select,textarea{width:100%;font:inherit;padding:9px 10px;border:1px solid #bbc8d4;border-radius:7px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:3px solid #bfe3e4;border-color:var(--brand)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);font-size:.92rem}th{color:var(--muted);font-weight:700}@media(max-width:760px){header{padding:0 20px}.cards,.two-col{grid-template-columns:1fr}.metrics{grid-template-columns:1fr}.student-row{display:block}.compact{margin-top:12px}main{padding:28px 16px}.hero{padding:34px 22px}nav{gap:10px;font-size:.86rem}}
.ai-confirmation { display: flex; align-items: flex-start; gap: 10px; padding: 16px; margin-top: 18px; border: 1px solid #cbe0eb; border-radius: 12px; background: #fff; overflow-wrap: anywhere; }
.ai-confirmation > input[type="checkbox"], .inline label > input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; margin: 4px 0 0; padding: 0; }
.ai-confirmation > span { min-width: 0; }
.inline label:has(> input[type="checkbox"]) { display: flex; align-items: flex-start; gap: 10px; }
