:root{--fg-red:#c8102e;--fg-red-dark:#9e0c24;--ink:#1a1a1a;--muted:#6b6b6b;--line:#e3e3e3;--bg:#f6f6f4;--card:#fff;--ok:#1f8a4c;--ok-bg:#e8f5ee;--warn:#b25e00;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:var(--fg-red)}.topbar{background:var(--fg-red);color:#fff;align-items:center;gap:16px;padding:12px 24px;display:flex}.topbar h1{letter-spacing:.3px;margin:0;font-size:18px;font-weight:700}.topbar .spacer{flex:1}.topbar nav a{color:#fff;opacity:.9;margin-right:18px;font-weight:600;text-decoration:none}.topbar nav a:hover{opacity:1;text-decoration:underline}.topbar nav a.active{opacity:1;text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}.backend-tag{opacity:.9;margin-right:14px;font-size:12px;font-weight:700}.userswitch{align-items:center;gap:8px;margin-right:14px;font-size:13px;display:flex}.userswitch select{border:none;border-radius:6px;padding:5px 8px;font-size:13px}.whoami{align-items:center;gap:10px;font-size:13px;display:flex}.userswitch input{border:none;border-radius:6px;padding:5px 8px;font-size:13px}.impersonation-bar{color:var(--warn);text-align:center;background:#fff4e5;border-bottom:1px solid #f0d9b5;padding:8px 24px;font-size:14px;font-weight:600}.role-chip{background:#ffffff38;border-radius:99px;padding:1px 8px;font-size:11px;font-weight:700}.signout{color:#fff;background:#ffffff29;padding:5px 12px;font-size:13px}.signout:hover{background:#ffffff47}.pub-wrap{min-height:100vh;padding:28px 16px}.pub-inner{max-width:760px;margin:0 auto}.pub-card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:16px;padding:22px 24px}.pub-card h2{margin:0 0 4px;font-size:20px}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;width:100%;max-width:380px;padding:36px 32px;box-shadow:0 10px 40px #0000000f}.login-brand{color:var(--fg-red);letter-spacing:.3px;font-size:22px;font-weight:800}.login-card h2{margin:2px 0 18px;font-size:18px;font-weight:600}.login-error{color:var(--fg-red);margin:0 0 12px;font-size:13px}.login-divider{text-align:center;color:var(--muted);align-items:center;margin:14px 0 4px;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";border-bottom:1px solid var(--line);flex:1}.login-divider span{padding:0 10px}.linklike{color:var(--fg-red);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.sign-notice{color:#6b4e1f;background:#fff4e5;border:1px solid #f0c98a;border-radius:8px;margin:0 0 14px;padding:12px 14px;font-size:14px;line-height:1.5}@media print{.topbar,.impersonation-bar,.tabs,.userswitch,.no-print,button{display:none!important}body,.container{background:#fff!important}.container{max-width:none!important;padding:0!important}.card{break-inside:avoid;border:1px solid #ccc;box-shadow:none!important}textarea{resize:none;border:1px solid #ddd!important}a[href]:after{content:""}}.group-row td{background:var(--bg);color:var(--muted);padding-top:14px;font-size:13px;font-weight:600}.login-sent p{line-height:1.5}.login-dev{border-top:1px dashed var(--line);flex-direction:column;gap:6px;margin-top:22px;padding-top:16px;display:flex}.login-dev select{border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:13px}.chain{color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:8px;font-size:14px;display:flex}.chain strong{color:var(--ink)}.needs-tag{color:var(--warn);vertical-align:middle;background:#fff4e5;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.addgrid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:8px;display:grid}.tree{border:1px solid var(--line);border-radius:8px;overflow:hidden}.tree-row{border-top:1px solid var(--line);align-items:center;gap:8px;padding:7px 12px;font-size:14px;display:flex}.tree-row:first-child{border-top:none}.tree-row:hover{background:#faf7f7}.tree-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;width:18px;height:18px;padding:0;font-size:12px}.tree-toggle:hover{color:var(--ink);background:#eee}.tree-toggle-spacer{width:18px;display:inline-block}.tree-name{font-weight:600}.tree-title{font-size:12px}.tree-count{background:#f0f0f0;border-radius:99px;padding:1px 7px;font-size:11px}.tree-status{text-decoration:none}.tree-edit{border-top:1px dashed var(--line);background:#faf7f7;padding:12px}.combo{position:relative}.combo-list{z-index:20;border:1px solid var(--line);background:#fff;border-radius:7px;max-height:240px;margin-top:2px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001a}.combo-item{cursor:pointer;border-bottom:1px solid #f0f0f0;padding:8px 10px;font-size:14px}.combo-item:last-child{border-bottom:none}.combo-item:hover{background:#faf0f1}.container{max-width:920px;margin:28px auto;padding:0 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:18px;padding:22px 24px}.card h2{margin:0 0 4px;font-size:20px}.form-title{color:var(--fg-red);letter-spacing:.3px;font-size:22px;font-weight:800}.form-subtitle{margin:2px 0 8px;font-size:16px;font-weight:600}.card h3{margin:18px 0 6px;font-size:16px}.muted{color:var(--muted)}.instructions{color:var(--muted);margin:6px 0 16px;font-size:14px;line-height:1.5}.competency{border-top:1px solid var(--line);padding:16px 0}.competency:first-of-type{border-top:none}.competency .desc{color:#444;margin:4px 0 10px;font-size:14px;line-height:1.5}.competency .sup-tag{color:var(--fg-red);border:1px solid var(--fg-red);vertical-align:middle;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}label{margin-bottom:4px;font-size:13px;font-weight:600;display:block}.field{margin-bottom:14px}.field .prompt{color:var(--muted);font-size:12px;font-weight:400}textarea,input[type=text],input[type=date],select{border:1px solid var(--line);background:#fff;border-radius:7px;width:100%;padding:9px 10px;font-family:inherit;font-size:14px}textarea{resize:vertical;min-height:70px}.goalgrid{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=680px){.goalgrid{grid-template-columns:1fr}}button{background:var(--fg-red);color:#fff;cursor:pointer;border:none;border-radius:7px;padding:9px 16px;font-size:14px;font-weight:600}button:hover{background:var(--fg-red-dark)}button.secondary{color:var(--ink);border:1px solid var(--line);background:#fff}button.secondary:hover{background:#f0f0f0}button:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.locked-banner{background:var(--ok-bg);color:var(--ok);border:1px solid #bfe6cd;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:14px;font-weight:600}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px;font-size:14px}th{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-size:12px}.scroll-head th{background:var(--card);z-index:1;position:sticky;top:0}.badge{border-radius:99px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.badge.level_setting{color:#3b46c4;background:#eef2ff}.badge.mid_year{color:var(--warn);background:#fff4e5}.badge.annual{color:var(--fg-red);background:#fde8ec}.badge.complete{background:var(--ok-bg);color:var(--ok)}.checkrow{align-items:center;gap:10px;padding:10px 0;display:flex}.checkrow input{width:18px;height:18px}.tabs{border-bottom:2px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-2px;padding:10px 16px;font-size:14px;font-weight:600}.tab:hover{color:var(--ink);background:#f0f0f0}.tab.active{color:var(--fg-red);border-bottom-color:var(--fg-red);background:0 0}.steps{flex-wrap:wrap;gap:8px;margin:8px 0 20px;display:flex}.step{color:var(--muted);background:#efefef;border-radius:99px;padding:5px 12px;font-size:12px;font-weight:600}.step.active{background:var(--fg-red);color:#fff}.step.done{background:var(--ok-bg);color:var(--ok)}
