:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#0b1b3a;--ink:#0f172a;--muted:#64748b;--line:#dbe3ef;--card:#fff;--accent:#3b9cff}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(1200px 500px at 85% -10%,#dfe9fb 0%,#0000 60%),#f1f5fb;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:1.45}.top{color:#fff;background:linear-gradient(100deg,#07142e 0%,#0d2c63 55%,#1767c9 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:14px 28px;display:flex}.brand{align-items:center;gap:14px;display:flex}.logo{background:#fff;border-radius:8px;width:auto;height:46px;padding:3px}h1{align-items:center;gap:10px;margin:0;font-size:21px;font-weight:700;display:flex}.sub{color:#cfe0f7;margin:2px 0 0;font-style:italic}.filters{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.filter{color:#cfe0f7;gap:3px;font-size:11px;display:grid}.filter select{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:0;border-radius:8px;min-width:128px;max-width:170px;padding:7px 8px;font-size:12px}.reset{font:inherit;color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #fff6;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600}.reset:hover{background:#ffffff42}.status{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#eef3fbeb;position:sticky;top:0}.status .bar{height:3px}.status.busy .bar{background:linear-gradient(90deg, transparent, var(--accent), transparent);background-repeat:no-repeat;background-size:40% 100%;animation:1.1s linear infinite slide}@keyframes slide{0%{background-position:-40% 0}to{background-position:140% 0}}.status-row{color:#334155;flex-wrap:wrap;align-items:center;gap:10px;padding:7px 28px;font-size:12px;display:flex}.working{color:#1d6fdc;font-weight:600}.chip{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #b9c7dc;border-radius:999px;padding:2px 10px;font-size:11.5px}.chip:hover{border-color:var(--accent);background:#eaf3ff}.hint{color:var(--muted)}.banner{border:1px solid var(--line);background:#fff;border-radius:10px;margin:12px 28px 0;padding:10px 14px}.banner.error{color:#7f1d1d;border-color:#fb7185}main{gap:14px;padding:16px 28px 40px;display:grid}main.stale{opacity:.7;transition:opacity .2s}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;min-width:0;padding:16px 18px;box-shadow:0 6px 18px #0f172a0d}h2{margin:0 0 2px;font-size:15px;font-weight:700}.cap{color:var(--muted);margin:0 0 10px;font-size:11.5px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.note{color:var(--muted);margin:12px 0 0;font-size:11.5px}.empty{text-align:center;color:var(--muted);margin:0;padding:40px 0}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--tone);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex;box-shadow:0 4px 12px #0f172a0a}.ico{width:34px;height:34px;color:var(--tone);background:color-mix(in srgb, var(--tone) 14%, #fff);border-radius:10px;flex:none;place-items:center;font-size:17px;display:grid}.k-label{color:#334155;font-size:11.5px;font-weight:600;line-height:1.25;display:block}.k-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.2;display:block}.k-sub{color:var(--muted);font-size:10.5px;line-height:1.3;display:block}.hero{color:#e2e8f0;background:radial-gradient(900px 420px at 15% 0,#14264d 0%,#0000 70%),linear-gradient(160deg,#0a1428 0%,#0d1a35 100%);border-color:#1b2c52;padding:18px 20px}.hero h2{color:#f8fafc;font-size:17px}.hero .cap,.hero .note{color:#94a3b8}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seg{background:#0c1730;border:1px solid #2b3d66;border-radius:10px;display:inline-flex;overflow:hidden}.seg button{font:inherit;color:#b6c4de;cursor:pointer;background:0 0;border:0;padding:6px 12px;font-size:12px;transition:background .2s,color .2s}.seg button+button{border-left:1px solid #2b3d66}.seg button.on{background:var(--accent);color:#04122b;font-weight:700}.ghost{font:inherit;color:#b6c4de;cursor:pointer;background:0 0;border:1px solid #2b3d66;border-radius:10px;padding:6px 12px;font-size:12px;transition:border-color .2s,color .2s}.ghost:hover,.seg button:hover:not(.on){color:#fff;border-color:var(--accent)}button:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #7cc0ff}.stage-area{grid-template-columns:minmax(0,1fr) 280px;align-items:stretch;gap:16px;margin-top:6px;display:grid}.canvas{min-width:0}.canvas.placeholder{min-height:420px}.sankey{width:100%;height:auto;display:block;overflow:visible}.stage{letter-spacing:.1em;fill:#cbd5e1;font-size:11.5px;font-weight:700}.stage-sub{fill:#7c8ba5;font-size:10.5px}.ribbon{cursor:pointer;transition:opacity .25s}.node{cursor:pointer;outline:none;transition:filter .2s}.node:hover,.node:focus-visible{stroke:#fff;stroke-width:2px}.node.pinned{stroke:#fff;stroke-width:2.5px}.label rect{fill:#081022d1}.label .name{fill:#f1f5f9;font-size:12px;font-weight:600}.label .value{fill:#a9b8d1;font-variant-numeric:tabular-nums;font-size:11.5px}.leader{stroke:#3a4c73;stroke-width:1px}.insight{background:#ffffff0d;border:1px solid #25375f;border-radius:12px;align-self:start;padding:14px}.insight h3{color:#f8fafc;align-items:center;gap:8px;margin:0 0 4px;font-size:14px;display:flex}.insight h4{letter-spacing:.08em;text-transform:uppercase;color:#8aa0c6;margin:14px 0 6px;font-size:11px}.insight p{color:#cbd5e1;margin:4px 0}.insight .lead{color:#fff;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.insight .muted{color:#8aa0c6;font-size:11.5px}.insight .end{color:#fde68a;background:#fbbf241f;border-radius:8px;margin-top:12px;padding:8px 10px}.insight .clear{font:inherit;color:#cfe0ff;cursor:pointer;background:0 0;border:1px solid #36507f;border-radius:8px;margin-top:12px;padding:5px 10px;font-size:12px}.insight .clear:hover{border-color:var(--accent);color:#fff}.dot{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.bars{gap:10px;margin:0;padding:0;list-style:none;display:grid}.bars .row{color:#e2e8f0;align-items:center;gap:6px;display:flex}.bars .nm{overflow-wrap:anywhere;flex:1;min-width:0}.bars .track{background:#16264a;border-radius:4px;height:7px;margin:4px 0 2px;display:block;overflow:hidden}.bars .fill{border-radius:4px;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.bars .cap{color:#8aa0c6;font-size:11px}.pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.courses{gap:8px;margin:0;padding:0;list-style:none;display:grid}.courses li{grid-template-columns:110px 1fr auto 54px;align-items:center;gap:8px;display:grid}.courses .nm{color:#334155;text-align:right;overflow-wrap:anywhere;font-size:12px}.courses .track{background:#eef2f8;border-radius:4px;height:14px;overflow:hidden}.courses .fill{border-radius:0 4px 4px 0;height:100%;transition:width .8s cubic-bezier(.22,1,.36,1);display:block}.courses b{font-variant-numeric:tabular-nums}.courses small{color:var(--muted);font-size:11px}.summary{border-collapse:collapse;width:100%;font-size:12px}.summary td{color:#334155;border-bottom:1px solid #eef1f6;padding:3px 0}.summary td:last-child{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.summary .sec th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:#1d6fdc;padding:10px 0 3px;font-size:11px}.summary .sec:first-child th{padding-top:0}.skeleton{gap:14px;padding:16px 28px;display:grid}.skeleton span{background:linear-gradient(90deg,#e4ebf5 25%,#f4f7fb 50%,#e4ebf5 75%) 0 0/200% 100%;border-radius:12px;height:70px;animation:1.4s infinite shimmer;display:block}.skeleton span+span{height:520px}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=980px){.stage-area,.pair{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.top,.status-row,main,.skeleton{padding-left:16px;padding-right:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.courses.scroll{max-height:440px;padding-right:6px;overflow-y:auto}.courses.scroll li{grid-template-columns:minmax(150px,260px) 1fr 64px}.fresh{color:#475569;background:#e7eef9;border-radius:999px;padding:2px 8px;font-size:11.5px}.fresh.warn{color:#7a5a00;background:#fff4d6}
