:root{--bg: #f4f7fa;--surface: #ffffff;--surface-2: #f8fafc;--border: #e4eaf1;--border-strong: #d5dee8;--text: #0f172a;--text-2: #334155;--muted: #64748b;--muted-2: #94a3b8;--primary: #0f766e;--primary-dark: #115e59;--primary-soft: #e6f5f2;--blue: #2563eb;--amber: #d97706;--red: #dc2626;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 8px rgba(15, 23, 42, .035);--shadow-md: 0 4px 16px rgba(15, 23, 42, .07);--radius: 12px;--font: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}table{border-collapse:collapse;width:100%}svg.ic,.chart-svg,.donut-svg{display:block}.muted{color:var(--muted)!important}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.small{font-size:12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;flex:0 0 238px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}.brand{display:flex;align-items:center;gap:11px;padding:20px 18px 18px;border-bottom:1px solid var(--border)}.brand-mark{flex:0 0 auto}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-text strong{font-size:16px;letter-spacing:.3px;color:var(--primary-dark)}.brand-text span{font-size:11.5px;color:var(--muted);letter-spacing:.5px}.nav{flex:1;overflow-y:auto;padding:12px 10px 20px}.nav-group{margin-bottom:16px}.nav-label{font-size:10.5px;font-weight:700;letter-spacing:1.2px;color:var(--muted-2);padding:6px 12px 8px;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;color:var(--text-2);font-size:13.5px;font-weight:500;margin-bottom:2px;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface-2);color:var(--primary-dark)}.nav-item.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:700}.ni-icon{width:18px;height:18px;display:inline-flex;color:inherit;opacity:.85}.nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#f59e0b;color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.sidebar-foot{padding:14px;border-top:1px solid var(--border)}.role-box{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 11px}.role-label{font-size:10.5px;color:var(--muted-2);font-weight:700;letter-spacing:.6px;display:block;margin-bottom:5px}.role-select{width:100%;border:0;background:#fff;color:var(--text-2);font-size:12.5px;font-weight:600;padding:6px 8px;border-radius:6px;border:1px solid var(--border);outline:none}.role-hint{display:block;font-size:10.5px;color:var(--muted);margin-top:6px}.side-meta{font-size:10.5px;color:var(--muted-2);text-align:center;margin-top:10px}.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:62px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 26px;position:sticky;top:0;z-index:30}.crumb{font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center}.crumb strong{color:var(--text);font-weight:600}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.global-search{position:relative;display:flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:0 10px;height:34px;color:var(--muted-2);width:220px}.global-search input{border:0;background:transparent;outline:none;width:100%;color:var(--text);font-size:12.5px}.search-pop{display:none;position:absolute;top:40px;left:0;width:320px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:6px;z-index:60}.search-pop.open{display:block}.search-item{display:flex;gap:10px;align-items:center;padding:8px;border-radius:7px}.search-item:hover{background:var(--surface-2)}.search-item div{display:flex;flex-direction:column;line-height:1.35}.search-item strong{font-size:13px}.search-item span{font-size:11px;color:var(--muted)}.search-none{padding:14px;color:var(--muted);font-size:12px;text-align:center}.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.view{flex:1;padding:26px 30px 40px;max-width:1600px;width:100%;margin:0 auto}.page-foot{display:flex;justify-content:space-between;gap:20px;padding:14px 30px 20px;font-size:11px;color:var(--muted-2);border-top:1px solid var(--border)}.menu-toggle{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;border:1px solid var(--border-strong);background:#fff;color:var(--text-2);font-size:13px;font-weight:600;padding:8px 14px;transition:all .15s;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary-dark);background:var(--primary-soft)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.btn-white{background:#fff;border-color:#fff;color:var(--primary-dark)}.btn-white:hover:not(:disabled){background:#f0fdfa;color:var(--primary-dark);border-color:#fff}.btn-ghost-white{background:#ffffff1f;border-color:#fff6;color:#fff}.btn-ghost-white:hover:not(:disabled){background:#ffffff38;color:#fff;border-color:#fff}.btn-danger-ghost{color:var(--red);border-color:#fecaca}.btn-danger-ghost:hover:not(:disabled){background:#fef2f2;color:var(--red);border-color:#fca5a5}.btn-sm{padding:6px 10px;font-size:12px}.btn.full{width:100%}.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;border-radius:8px;color:var(--muted)}.icon-btn:hover{background:var(--surface-2);color:var(--primary)}.icon-btn.sm{width:28px;height:28px}.icon-btn.danger:hover{background:#fef2f2;color:var(--red)}.link-btn{color:var(--primary);font-size:12.5px;font-weight:600;background:none;border:0;padding:0;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.link-btn:hover{color:var(--primary-dark);text-decoration:underline}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap;line-height:1.6}.b-green{background:#e7f7ef;color:#047857}.b-blue{background:#eaf1ff;color:#1d4ed8}.b-amber{background:#fff4e3;color:#b45309}.b-red{background:#feecec;color:#b91c1c}.b-gray{background:#eef2f6;color:#475569}.b-purple{background:#f2ecff;color:#6d28d9}.b-teal{background:#e0f5f1;color:#0f766e}.input,.select{width:100%;border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;background:#fff;color:var(--text);outline:none;font-size:13px;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1a}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}.select.wide{min-width:220px}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.toolbar .select{width:auto;min-width:150px}.inline-label{font-size:12.5px;color:var(--muted);font-weight:600}.toolbar-count{font-size:12px;color:var(--muted);margin-left:auto}.search-inline{display:flex;align-items:center;gap:8px;border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:0 11px;height:36px;width:290px;color:var(--muted-2)}.search-inline input{border:0;outline:none;background:transparent;width:100%;font-size:13px;color:var(--text)}.progress{height:6px;background:#eef2f6;border-radius:6px;overflow:hidden;width:100%}.progress-bar{height:100%;border-radius:6px;transition:width .4s ease}.sp-label{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-bottom:5px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:700;letter-spacing:-.2px}.page-head p{color:var(--muted);font-size:12.5px;margin-top:5px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);margin-bottom:12px}.back-link:hover{color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:18px;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px 12px;border-bottom:1px solid var(--border)}.card-head h3{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:7px}.card-head p{font-size:11.5px;color:var(--muted);margin-top:3px}.card-body{padding:16px 18px}.tiny-note{font-size:11px;color:var(--muted-2)}.section-title{font-size:15px;font-weight:700;margin:24px 0 12px;padding-left:10px;border-left:3px solid var(--primary)}.two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px}.col-main>.card,.col-side>.card{margin-bottom:18px}.notice{display:flex;gap:9px;align-items:flex-start;padding:11px 13px;border-radius:9px;font-size:12.5px;line-height:1.65;margin-bottom:16px}.notice svg{flex:0 0 auto;margin-top:2px}.notice-amber{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.notice-blue{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:42px 20px;color:var(--muted-2)}.empty-state p{font-size:13px}.table-scroll{overflow-x:auto}.tbl{font-size:12.5px}.tbl th{text-align:left;font-weight:600;color:var(--muted);background:var(--surface-2);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;font-size:11.5px}.tbl td{padding:11px 12px;border-bottom:1px solid #f0f3f7;vertical-align:middle;color:var(--text-2)}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover{background:#fbfdfe}.tbl.compact th,.tbl.compact td{padding:7px 10px}.tbl .small-td{font-size:11.5px;line-height:1.55}.cell-user{display:flex;align-items:center;gap:9px}.cell-user div{display:flex;flex-direction:column;line-height:1.35}.cell-user strong{color:var(--text)}.cell-user span{font-size:11px;color:var(--muted)}.cell-prog{display:flex;align-items:center;gap:8px;min-width:110px}.cell-prog .progress{flex:1}.cell-prog span{font-size:11px;color:var(--muted)}.cell-actions{display:flex;gap:2px;align-items:center}.score-pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;border:1px solid;white-space:nowrap}.dom-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}.dom-dot.lg{width:12px;height:12px}.welcome{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(120deg,#0f766e,#0e7490 58%,#1d4ed8 120%);color:#fff;padding:26px 30px;margin-bottom:18px;box-shadow:0 8px 24px #0f766e29}.welcome-in{position:relative;z-index:2;max-width:640px}.welcome-tag{display:inline-block;font-size:11px;letter-spacing:.6px;background:#ffffff29;border:1px solid rgba(255,255,255,.22);padding:3px 10px;border-radius:20px;margin-bottom:10px}.welcome h2{font-size:23px;font-weight:700;margin-bottom:6px}.welcome p{font-size:13px;opacity:.9;line-height:1.7}.welcome-actions{display:flex;gap:9px;margin-top:16px}.welcome-deco{position:absolute;right:-40px;top:-80px;width:360px;height:300px;opacity:.5}.deco-ring{position:absolute;border:1px solid rgba(255,255,255,.28);border-radius:50%}.r1{width:340px;height:340px;right:-30px;top:-40px}.r2{width:250px;height:250px;right:15px;top:5px}.r3{width:160px;height:160px;right:60px;top:50px;background:#ffffff0d}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;gap:13px;align-items:flex-start;box-shadow:var(--shadow-sm)}.stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.tone-teal{background:#e0f5f1;color:#0f766e}.tone-blue{background:#eaf1ff;color:#2563eb}.tone-purple{background:#f2ecff;color:#7c3aed}.tone-amber{background:#fff4e3;color:#d97706}.stat-main{display:flex;flex-direction:column;min-width:0}.stat-label{font-size:11.5px;color:var(--muted)}.stat-value{font-size:22px;font-weight:700;line-height:1.35;letter-spacing:-.3px}.stat-sub{font-size:11px;color:var(--muted-2)}.todo-list{display:flex;flex-direction:column;gap:9px}.todo-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;font-size:12.5px;border:1px solid transparent}.todo-item .link-btn{margin-left:auto}.todo-ic{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:#ffffffb3}.t-amber{background:#fffbeb;border-color:#fde68a;color:#92400e}.t-purple{background:#faf5ff;border-color:#e9d5ff;color:#6b21a8}.t-red{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.t-green{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.donut-center{display:flex;justify-content:center;padding:4px 0 10px}.donut-desc p{font-size:12.5px;line-height:1.7;color:var(--text-2);margin-bottom:8px}.donut-desc p.muted{font-size:11.5px}.risk-list{display:flex;flex-direction:column}.risk-item{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid #f0f3f7}.risk-item:last-child{border-bottom:0}.risk-item:hover .risk-name strong{color:var(--primary)}.risk-name{display:flex;flex-direction:column;line-height:1.4;flex:1;min-width:0}.risk-name strong{font-size:13px}.risk-name span{font-size:11px;color:var(--muted)}.risk-val{font-size:14px;font-weight:700;color:var(--amber)}.avatar-stu{border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex:0 0 auto}.timeline{display:flex;flex-direction:column}.tl-item{display:flex;gap:14px;align-items:flex-start;padding:13px 4px;border-bottom:1px solid #f0f3f7;position:relative}.tl-item:last-child{border-bottom:0}.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex:0 0 auto;margin-top:6px;box-shadow:0 0 0 4px #e6f5f2}.tl-body{flex:1;min-width:0}.tl-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.tl-top strong{font-size:13px}.tl-top .muted{font-size:12px}.tl-date{font-size:11.5px;color:var(--muted-2);margin-left:auto}.tl-body p{font-size:12.5px;color:var(--text-2);margin-top:4px}.tl-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:7px;font-size:11px;color:var(--muted)}.tl-meta span{display:inline-flex;align-items:center;gap:4px}.tl-score{text-align:right;min-width:58px}.tl-score strong{font-size:17px;font-weight:700;color:var(--amber);display:block}.tl-score.ok strong{color:#10b981}.tl-score span{font-size:10.5px;color:var(--muted-2)}.timeline.compact .tl-item{padding:9px 2px}.timeline.compact .tl-body p{font-size:12px}.stu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.stu-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);transition:transform .16s,box-shadow .16s}.stu-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stu-card-top{display:flex;align-items:center;gap:11px}.stu-card-id{display:flex;flex-direction:column;line-height:1.4;flex:1;min-width:0}.stu-card-id strong{font-size:15px}.stu-card-id span{font-size:11px;color:var(--muted)}.stu-score{font-size:19px;font-weight:700}.stu-tags{display:flex;align-items:center;gap:8px;margin:13px 0;font-size:11.5px;color:var(--muted);min-width:0}.stu-progress{font-size:11.5px;color:var(--muted)}.stu-card-foot{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);margin-top:14px;padding-top:11px;font-size:11.5px;color:var(--muted)}.stu-card-foot>span{display:inline-flex;align-items:center;gap:4px}.stu-card-foot .link-btn{margin-left:auto}.detail-cols{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px 18px}.info-field{display:flex;flex-direction:column;line-height:1.5;min-width:0}.info-field span{font-size:11px;color:var(--muted)}.info-field strong{font-size:13px;font-weight:600;word-break:break-word}.note-block{padding:11px 13px;background:var(--surface-2);border-radius:9px;margin-bottom:10px;border-left:3px solid var(--primary)}.note-block:last-child{margin-bottom:0}.note-label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--primary-dark);margin-bottom:5px}.note-block p{font-size:12.5px;line-height:1.75;color:var(--text-2)}.note-warn{background:#fffbeb;border-left-color:#f59e0b}.note-warn .note-label{color:#b45309}.asm-tl-item{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #f0f3f7}.asm-tl-item:last-child{border-bottom:0}.asm-tl-date{width:92px;flex:0 0 auto;display:flex;flex-direction:column}.asm-tl-date strong{font-size:12px}.asm-tl-date span{font-size:10.5px;color:var(--muted)}.asm-tl-line{width:12px;display:flex;justify-content:center}.asm-tl-dot{width:9px;height:9px;border-radius:50%}.asm-tl-main{flex:1;min-width:0}.asm-tl-main>div{display:flex;align-items:center;gap:8px}.asm-tl-main strong{font-size:12.5px}.asm-tl-main p{font-size:11px;color:var(--muted);margin-top:2px}.mini-iep{display:block;padding:11px 0;border-bottom:1px solid #f0f3f7}.mini-iep:last-of-type{border-bottom:0}.mini-iep>div{display:flex;align-items:center;gap:8px}.mini-iep strong{font-size:12.5px}.mini-iep p{font-size:11.5px;color:var(--muted);margin:4px 0 9px}.mini-kv{display:flex;justify-content:space-between;font-size:12.5px;padding:8px 0;border-bottom:1px dashed var(--border)}.mini-kv span{color:var(--muted)}.mini-kv+.link-btn{margin-top:12px}.scale-hero{display:flex;background:linear-gradient(115deg,#0f766e,#155e75);border-radius:14px;color:#fff;overflow:hidden;margin-bottom:18px}.scale-hero-l{flex:1;padding:24px 28px}.scale-ver{font-size:11px;letter-spacing:.5px;background:#ffffff26;padding:3px 10px;border-radius:20px}.scale-hero h2{font-size:21px;margin:12px 0 8px}.scale-hero p{font-size:12.5px;opacity:.9;line-height:1.8;max-width:700px}.scale-metrics{display:flex;gap:28px;margin-top:18px}.scale-metrics div{display:flex;flex-direction:column}.scale-metrics strong{font-size:20px}.scale-metrics span{font-size:10.5px;opacity:.8}.scale-hero-r{width:280px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:#ffffff0d}.scale-hero-r .chart-wrap{color:#fff}.scale-hero-r .chart-svg text{fill:#ffffffd9}.scale-hero-r .chart-svg polygon[stroke]{stroke:#ffffff40}.scale-hero-r .chart-svg line{stroke:#fff3}.level-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.level-chip{background:var(--surface-2);border:1px solid var(--border);border-top:3px solid;border-radius:9px;padding:11px}.level-chip strong{font-size:12.5px;display:block}.level-chip span{font-size:11px;color:var(--muted)}.level-chip p{font-size:11px;color:var(--text-2);line-height:1.6;margin-top:6px}.domain-acc{display:flex;flex-direction:column;gap:9px}.domain-details{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.domain-details summary{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;list-style:none;background:var(--surface-2);font-size:13px}.domain-details summary::-webkit-details-marker{display:none}.domain-details summary:after{content:"+";margin-left:auto;color:var(--muted);font-size:16px}.domain-details[open] summary:after{content:"−"}.domain-details summary .muted{font-size:11.5px}.dom-count{margin-left:auto;margin-right:10px;font-size:11.5px;color:var(--muted)}.dom-items{padding:0}.dom-items .tbl th{background:#fff}.run-head{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:15px 18px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:16px;box-shadow:var(--shadow-sm)}.run-info{display:flex;align-items:center;gap:11px}.run-info div{display:flex;flex-direction:column;line-height:1.4}.run-info strong{font-size:15px}.run-info span{font-size:11.5px;color:var(--muted)}.run-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:11.5px;color:var(--muted)}.run-meta span{display:inline-flex;align-items:center;gap:5px}.run-stat{margin-left:auto;min-width:220px;display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--muted)}.run-stat strong{color:var(--text)}.run-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:16px;align-items:start}.run-nav{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:12px;position:sticky;top:78px;box-shadow:var(--shadow-sm)}.run-nav-title{font-size:11px;font-weight:700;letter-spacing:.6px;color:var(--muted-2);padding:3px 8px 9px}.run-nav-item{width:100%;display:flex;align-items:center;gap:8px;border:1px solid transparent;background:transparent;border-radius:8px;padding:8px 9px;margin-bottom:3px;font-size:12.5px;color:var(--text-2);text-align:left}.run-nav-item:hover:not(:disabled){background:var(--surface-2)}.run-nav-item.active{background:var(--primary-soft);border-color:#b7e4dc;color:var(--primary-dark);font-weight:700}.run-nav-item:disabled{opacity:.55;cursor:not-allowed}.rni-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.rni-name{flex:1;display:flex;flex-direction:column;line-height:1.3}.rni-name small{font-size:10px;color:var(--muted);font-weight:400}.rni-pct{font-size:11.5px;font-weight:700;color:var(--muted)}.run-nav-tip{display:flex;gap:7px;margin-top:12px;padding:10px;background:#fffbeb;border-radius:8px;font-size:10.5px;color:#92400e;line-height:1.6}.run-nav-tip svg{flex:0 0 auto}.run-main{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.run-domain-head{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,#f8fafc,#fff)}.run-domain-head>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.run-domain-head h2{font-size:16px}.run-domain-head p{font-size:11.5px;color:var(--muted);width:100%;padding-left:21px;margin-top:2px}.run-domain-score{display:flex;flex-direction:column;align-items:flex-end;line-height:1.3}.run-domain-score span{font-size:10.5px;color:var(--muted)}.run-domain-score strong{font-size:22px}.run-domain-score small{font-size:10.5px;color:var(--muted)}.score-legend{display:flex;gap:14px;flex-wrap:wrap;padding:10px 20px;background:#fbfdfe;border-bottom:1px solid var(--border);font-size:10.5px;color:var(--muted)}.score-legend span{display:inline-flex;align-items:center;gap:5px}.score-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.item-list{padding:4px 0}.item-row{display:flex;align-items:center;gap:16px;padding:13px 20px;border-bottom:1px solid #f0f3f7}.item-row:last-child{border-bottom:0}.item-row:hover{background:#fcfdfe}.item-main{flex:1;display:flex;gap:12px;align-items:flex-start;min-width:0}.item-code{font-family:SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--primary);background:var(--primary-soft);border-radius:5px;padding:2px 6px;flex:0 0 auto;margin-top:1px}.item-main p{font-size:13px;color:var(--text);line-height:1.55}.item-main small{font-size:10.5px;color:var(--muted-2)}.score-btns{display:flex;gap:6px;flex:0 0 auto}.score-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border-strong);background:#fff;color:var(--muted);font-size:13px;font-weight:700;transition:all .13s}.score-btn:hover:not(:disabled){border-color:var(--sc);color:var(--sc);background:color-mix(in srgb,var(--sc) 8%,#fff)}.score-btn.selected{background:var(--sc);border-color:var(--sc);color:#fff;box-shadow:0 2px 6px color-mix(in srgb,var(--sc) 35%,transparent)}.score-btn:disabled{opacity:.5;cursor:not-allowed}.run-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface-2);font-size:12px;color:var(--muted)}.report-sheet{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px 28px 30px;box-shadow:var(--shadow-sm)}.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:2px solid var(--primary);padding-bottom:14px;margin-bottom:18px;flex-wrap:wrap}.report-school{font-size:11.5px;color:var(--primary);font-weight:600;letter-spacing:.5px}.report-head h2{font-size:20px;margin-top:4px}.report-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted);text-align:right}.report-id-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 18px;background:var(--surface-2);border-radius:10px;padding:15px 18px;margin-bottom:18px}.report-summary{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;padding:6px 0 20px;border-bottom:1px dashed var(--border);margin-bottom:18px}.report-donut{display:flex;flex-direction:column;align-items:center}.report-level{font-size:12.5px;font-weight:700;margin-top:4px}.report-conclusion h3{font-size:14px;display:flex;align-items:center;gap:7px;margin-bottom:9px}.report-conclusion p{font-size:13px;line-height:1.9;color:var(--text-2)}.concl-tags{display:flex;flex-direction:column;gap:8px;margin-top:14px}.concl-tags>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.concl-tags span{font-size:11.5px;color:var(--muted);width:62px;flex:0 0 auto}.report-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-charts .card{margin-bottom:18px}.report-advice{margin:8px 0 20px}.report-advice h3{font-size:14px;display:flex;align-items:center;gap:7px;margin-bottom:12px}.advice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.advice-card{min-width:0;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:9px;padding:12px 14px;overflow:hidden}.advice-card>div{display:flex;align-items:center;gap:8px;margin-bottom:6px;min-width:0}.advice-head{font-size:13px;font-weight:700;color:var(--text)}.advice-card strong{font-size:13px}.advice-focus{font-size:11.5px;line-height:1.6;color:#0f766e;background:#e0f5f1;border-radius:6px;padding:5px 8px;margin:2px 0 8px!important;overflow-wrap:anywhere}.advice-card p{font-size:11.5px;line-height:1.7;color:var(--text-2);margin-bottom:4px;overflow-wrap:anywhere}.sign-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 24px;margin-top:16px;font-size:12px;color:var(--text-2)}.analysis-narr{font-size:12.5px;line-height:1.9;color:var(--text-2)}.chart-wrap{width:100%}.chart-svg{width:100%;height:auto}.chart-legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:6px}.chart-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.chart-legend-item i{width:10px;height:10px;border-radius:3px;display:inline-block}.dist-bars{display:flex;gap:6px;height:46px;align-items:flex-end;min-width:96px}.dist-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;height:100%}.dist-track{flex:1;width:100%;background:#f1f5f9;border-radius:3px;display:flex;align-items:flex-end;overflow:hidden}.dist-fill{width:100%;border-radius:3px;min-height:2px}.dist-num{font-size:9px;color:var(--muted);line-height:1.1}.dist-lb{font-size:9px;color:var(--muted-2);line-height:1.1}.heat-wrap{overflow-x:auto}.heat-tbl{min-width:620px;font-size:12px}.heat-tbl th{text-align:center;font-size:11px;color:var(--muted);font-weight:600;padding:8px 6px;border-bottom:1px solid var(--border)}.heat-tbl th:first-child{text-align:left}.heat-tbl td{padding:4px;text-align:center;border-bottom:1px solid #f4f6f9}.heat-name{text-align:left!important;font-weight:600;padding-left:8px!important;white-space:nowrap}.heat-cell{height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#0f172a}.heat-legend{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--muted)}.heat-legend i{width:14px;height:10px;border-radius:2px;display:inline-block}.filter-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.filter-tab{border:1px solid var(--border-strong);background:#fff;border-radius:20px;padding:5px 15px;font-size:12.5px;color:var(--muted)}.filter-tab:hover{border-color:var(--primary);color:var(--primary)}.filter-tab.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.iep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:15px}.iep-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.iep-card-head{display:flex;align-items:center;gap:10px}.iep-card-head>div{display:flex;flex-direction:column;flex:1;line-height:1.4;min-width:0}.iep-card-head strong{font-size:15px}.iep-card-head span{font-size:11px;color:var(--muted)}.iep-period{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);margin:13px 0;flex-wrap:wrap}.consent-ok,.consent-no{display:inline-flex;align-items:center;gap:3px;margin-left:auto;font-size:10.5px}.consent-ok{color:#047857}.consent-no{color:#b45309}.iep-metrics{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface-2);border-radius:9px;padding:11px 6px;text-align:center}.iep-metrics div{display:flex;flex-direction:column}.iep-metrics strong{font-size:17px}.iep-metrics span{font-size:10.5px;color:var(--muted)}.iep-goals{margin:13px 0}.iep-goal-line{display:flex;align-items:center;font-size:11.5px;color:var(--text-2);padding:4px 0}.iep-card-foot{border-top:1px solid var(--border);padding-top:12px}.iep-card-foot .btn{margin-top:11px}.flow-bar{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 20px;margin-bottom:18px}.flow-step{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted-2);flex:1;position:relative}.flow-step:not(:last-child):after{content:"";position:absolute;left:calc(50% + 22px);right:-8px;top:12px;height:1px;background:var(--border)}.flow-dot{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:#fff;flex:0 0 auto}.flow-step.done{color:var(--primary);font-weight:600}.flow-step.done .flow-dot{background:var(--primary);border-color:var(--primary);color:#fff}.flow-step.current{color:var(--primary-dark);font-weight:700}.flow-step.current .flow-dot{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.iep-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 20px}.iep-summary-item{background:var(--primary-soft);border-radius:9px;padding:12px;display:flex;flex-direction:column;align-items:center}.iep-summary-item span{font-size:11px;color:var(--primary-dark)}.iep-summary-item strong{font-size:20px;color:var(--primary-dark)}.lg-block{border:1px solid var(--border);border-radius:10px;margin-bottom:16px;overflow:hidden}.lg-head{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;background:var(--surface-2);border-bottom:1px solid var(--border)}.lg-index{width:24px;height:24px;border-radius:7px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:0 0 auto}.lg-head>div{flex:1;min-width:0}.lg-tags{display:flex;gap:6px;margin-bottom:6px}.lg-head p{font-size:12.5px;line-height:1.7}.lg-head small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.goal-tbl td{font-size:11.5px;line-height:1.65}.goal-tbl td p{margin-bottom:3px}.derive-note{display:block;color:var(--primary);font-size:10.5px;margin-top:4px}.ach-cell{min-width:74px}.ach-cell .progress{margin-top:4px}.iep-two{margin-top:10px}.compare-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.compare-kpi{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.compare-kpi span{font-size:11.5px;color:var(--muted)}.compare-kpi strong{display:block;font-size:23px;margin:4px 0}.compare-kpi p{font-size:11.5px;color:var(--muted)}.pipeline{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.pipe-step{border:1px solid var(--border);border-radius:9px;padding:12px;background:var(--surface-2);position:relative}.pipe-step>span{width:22px;height:22px;border-radius:6px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-bottom:8px}.pipe-step strong{font-size:13px}.pipe-step p{font-size:11px;color:var(--muted);line-height:1.6;margin-top:4px}.rule-note{margin-top:12px;padding:11px 13px;background:#f8fafc;border-radius:8px}.rule-note p{font-size:11.5px;color:var(--text-2);line-height:1.8}.rule-list{margin:0;padding-left:18px}.rule-list li{font-size:11.5px;color:var(--text-2);line-height:1.8;margin-bottom:4px}.stack-btns{display:flex;flex-direction:column;gap:8px;margin-top:12px}.storage-status{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;line-height:1.6;padding:9px 11px;border-radius:8px;margin-top:11px}.storage-status svg{flex:0 0 auto;margin-top:2px}.storage-status.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.storage-status.warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:none}.modal-root.open{display:block}.modal-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:hidden;background:#fff;border-radius:14px;box-shadow:0 24px 60px #0f172a3d;display:flex;flex-direction:column;animation:modalIn .18s ease-out}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-47%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px 14px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:16px}.modal-head p{font-size:11.5px;color:var(--muted);margin-top:3px}.modal-form{display:flex;flex-direction:column;min-height:0;flex:1}.modal-body{padding:18px 22px;overflow-y:auto;flex:1}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:13px 22px;border-top:1px solid var(--border);background:var(--surface-2)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px}.form-field{display:flex;flex-direction:column;gap:5px;min-width:0}.form-field.wide{grid-column:1 / -1}.form-field>span{font-size:11.5px;font-weight:600;color:var(--text-2)}.form-field i{color:var(--red);font-style:normal}.form-field small{font-size:10.5px;color:var(--muted-2)}.form-field textarea{resize:vertical;line-height:1.6}.confirm-body{display:flex;align-items:flex-start;gap:14px;padding:8px 0;color:#b45309}.confirm-body p{font-size:13px;line-height:1.8;color:var(--text-2)}.toast-root{position:fixed;top:74px;right:24px;z-index:200;display:flex;flex-direction:column;gap:9px}.toast{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #b7e4dc;border-left:3px solid var(--primary);border-radius:9px;padding:11px 15px;font-size:12.5px;color:var(--text-2);box-shadow:var(--shadow-md);max-width:380px;animation:toastIn .2s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.toast.out{opacity:0;transform:translate(16px);transition:all .3s}.toast-warn{border-color:#fde68a;border-left-color:#f59e0b}.toast-error{border-color:#fecaca;border-left-color:var(--red)}@media (max-width: 1280px){.two-col{grid-template-columns:1fr}.col-side{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}.col-side>.card{margin-bottom:0}.report-charts{grid-template-columns:1fr}}@media (max-width: 1050px){.sidebar{position:fixed;left:0;transform:translate(-100%);transition:transform .22s;box-shadow:var(--shadow-md)}.sidebar.open{transform:none}.menu-toggle{display:inline-flex}.topbar{padding:0 16px}.view{padding:20px 18px 32px}.stat-grid{grid-template-columns:repeat(2,1fr)}.run-layout{grid-template-columns:1fr}.run-nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.run-nav-title,.run-nav-tip{width:100%}.run-nav-item{width:auto;flex:1;min-width:105px}.report-id-grid,.info-grid{grid-template-columns:repeat(2,1fr)}.report-summary{grid-template-columns:1fr}.global-search{width:170px}}@media (max-width: 700px){.col-side{grid-template-columns:1fr}.stat-grid,.compare-hero,.iep-summary,.pipeline,.level-strip{grid-template-columns:1fr 1fr}.form-grid,.sign-grid{grid-template-columns:1fr}.item-row{flex-direction:column;align-items:stretch;gap:10px}.score-btns{justify-content:flex-end}.page-head h1{font-size:19px}.global-search{display:none}.flow-bar{flex-wrap:wrap;gap:8px}.flow-step{flex:0 0 45%}.flow-step:after{display:none}}@media print{@page{size:A4;margin:14mm 12mm}body{background:#fff;font-size:11pt}.sidebar,.topbar,.page-foot,.menu-toggle,.page-actions,.back-link,.flow-bar,.btn,.icon-btn,.link-btn,.modal-root,.toast-root{display:none!important}.notice{-webkit-print-color-adjust:exact;print-color-adjust:exact}.main-wrap,.view{padding:0;margin:0;max-width:none}.report-sheet{border:0;box-shadow:none;padding:0}.card{border:1px solid #d5dee8;box-shadow:none;break-inside:avoid;margin-bottom:12px}.report-head{break-after:avoid}.lg-block,.advice-card,.iep-summary{break-inside:avoid}.domain-details:not([open]) .dom-items{display:block}details>summary{list-style:none}.tbl th{background:#f1f5f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.heat-cell,.progress-bar,.score-btn.selected{-webkit-print-color-adjust:exact;print-color-adjust:exact}a[href]:after{content:""}}.term-chip{font-size:11.5px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);padding:5px 11px;border-radius:20px}.role-static{display:flex;align-items:baseline;gap:7px;background:#fff;border:1px solid var(--border);border-radius:7px;padding:6px 9px}.role-static strong{font-size:12.5px}.role-static span{font-size:10.5px;color:var(--muted)}.crumb a{color:var(--muted)}.crumb a:hover{color:var(--primary)}.boot-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.boot-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:30px 34px;max-width:620px;box-shadow:var(--shadow-md)}.boot-card h2{font-size:18px;margin-bottom:10px}.boot-card p{font-size:13px;color:var(--text-2);line-height:1.8;margin-bottom:8px}.boot-guide{background:var(--surface-2);border-radius:9px;padding:14px;margin:14px 0 18px}.boot-guide pre{font-family:Consolas,monospace;font-size:11.5px;color:var(--primary-dark);background:#fff;border:1px solid var(--border);border-radius:7px;padding:11px;overflow-x:auto;line-height:1.7;margin:8px 0}.toast{display:flex;align-items:center;gap:8px}.readonly-bar{margin-bottom:16px}.chart-wrap .chart-wrap{width:100%}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-hero{background:linear-gradient(135deg,#0f766e,#0e7490 55%,#1d4ed8 120%);color:#fff;display:flex;align-items:center;padding:50px 60px;position:relative;overflow:hidden}.login-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-180px;top:-160px;box-shadow:0 0 0 70px #ffffff0a,0 0 0 150px #ffffff08}.login-hero-in{position:relative;z-index:2;max-width:520px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:48px}.login-mark{width:38px;height:38px;border-radius:10px;background:#ffffff29;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.5px}.login-brand strong{font-size:17px;letter-spacing:.3px}.login-hero h1{font-size:38px;line-height:1.35;font-weight:700;letter-spacing:1px}.login-hero>.login-hero-in>p{font-size:13.5px;line-height:1.9;opacity:.9;margin-top:20px;max-width:440px}.login-flow{display:flex;flex-wrap:wrap;gap:9px;margin-top:44px}.login-flow-step{display:flex;align-items:center;gap:7px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 12px;font-size:12.5px}.login-flow-step span{font-size:10px;opacity:.75;font-family:Consolas,monospace}.login-hero-foot{margin-top:60px;font-size:11px;letter-spacing:.5px;opacity:.7}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px 32px;background:var(--surface-2)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:var(--shadow-md)}.login-card h2{font-size:21px;font-weight:700}.login-sub{font-size:12px;color:var(--muted);line-height:1.7;margin:7px 0 22px}.login-sub code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;color:var(--primary-dark)}.login-error{display:flex;align-items:center;gap:7px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:9px 11px;font-size:12px;margin-bottom:14px}.login-field{margin-bottom:15px}.login-field label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:6px}.login-input{display:flex;align-items:center;gap:9px;border:1px solid var(--border-strong);border-radius:9px;padding:0 12px;height:42px;color:var(--muted-2)}.login-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e1a}.login-input input{border:0;outline:0;flex:1;font-size:13.5px;color:var(--text);background:transparent}.login-submit{width:100%;height:42px;margin-top:6px}.login-demo-title{font-size:11px;font-weight:700;letter-spacing:.6px;color:var(--muted-2);margin:26px 0 10px;padding-top:18px;border-top:1px solid var(--border)}.login-demo-list{display:flex;flex-direction:column;gap:6px}.login-demo-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:8px 10px;text-align:left;transition:all .15s}.login-demo-item:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.login-demo-item:disabled{opacity:.55}.login-demo-avatar{width:28px;height:28px;border-radius:8px;background:var(--primary-soft);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:0 0 auto}.login-demo-text{display:flex;flex-direction:column;line-height:1.35;flex:1;min-width:0}.login-demo-text strong{font-size:12px;color:var(--text)}.login-demo-text small{font-size:10.5px;color:var(--muted)}.login-demo-code{font-family:Consolas,monospace;font-size:10.5px;color:var(--muted-2)}.login-note{font-size:10.5px;color:var(--muted-2);line-height:1.6;margin-top:16px}@media (max-width: 900px){.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-panel{min-height:100vh}}.goal-filter{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:14px}.goal-filter label{display:flex;flex-direction:column;gap:5px;font-size:11.5px;font-weight:600;color:var(--muted)}.goal-filter select,.goal-filter input{border:1px solid var(--border-strong);border-radius:8px;padding:7px 10px;font-size:12.5px;background:#fff;color:var(--text);min-width:180px}.goal-filter select:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed;opacity:.7}.goal-filter>span{font-size:11.5px;margin-left:auto}.goal-filter+.table-scroll{max-height:460px;overflow:auto}.subdomain-block{margin-bottom:18px}.subdomain-block h4{font-size:12.5px;margin:0 0 8px;padding:7px 10px;background:var(--surface-2);border-left:3px solid var(--primary);border-radius:6px}.subdomain-block h4 .muted{font-weight:400;margin-left:8px;font-size:11px}.anchor-tbl td{vertical-align:top}.anchor-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.anchor-cell{display:flex;gap:6px;align-items:flex-start;font-size:11.5px;line-height:1.5;color:var(--text-2)}.anchor-cell .score-pill{flex:0 0 auto;padding:1px 5px;font-size:10px}.anchor-note{font-size:10.5px;color:var(--muted);margin-top:6px;line-height:1.5}.run-subdomain{margin-bottom:16px}.run-subdomain-head{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;padding:8px 12px;background:var(--surface-2);border-left:3px solid var(--primary);border-radius:7px;margin-bottom:8px}.run-subdomain-head .muted{margin-left:auto;font-weight:400;font-size:11px}.item-row.anchor-row{align-items:flex-start}.item-row.anchor-row .item-main>div{min-width:0}.run-anchors{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin-top:7px}.run-anchor{display:flex;gap:6px;align-items:flex-start;font-size:11px;line-height:1.45;color:var(--muted);padding:3px 6px;border-radius:6px;border:1px solid transparent}.run-anchor b{flex:0 0 auto;width:15px;height:15px;border-radius:4px;background:var(--sc);color:#fff;font-size:10px;display:inline-flex;align-items:center;justify-content:center}.run-anchor.on{background:var(--surface-2);border-color:var(--sc);color:var(--text);font-weight:600}.goal-picker{width:100%}.goal-picker-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px}.goal-picker-bar .input{flex:1}.goal-picker-bar .muted{font-size:11px;white-space:nowrap}.goal-picker-list{max-height:180px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:#fff}.goal-picker-item{display:flex;gap:9px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;padding:7px 10px;font-size:11.5px;color:var(--text-2);line-height:1.5;cursor:pointer}.goal-picker-item:last-child{border-bottom:0}.goal-picker-item:hover{background:var(--primary-soft)}.goal-picker-item .mono{flex:0 0 auto;color:var(--primary-dark);font-size:10.5px}.goal-source{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--primary-dark);background:var(--primary-soft);border-radius:5px;padding:3px 7px;margin:3px 0 6px}.goal-code{font-size:10.5px;color:var(--muted);margin-top:4px}@media (max-width: 1000px){.anchor-grid,.run-anchors{grid-template-columns:1fr}}
