@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700&display=swap";:root{--bg-a: #f0f6ff;--bg-b: #dce9ff;--bg-c: #c8dcff;--ink: #122348;--muted: #4b5f8e;--line: rgba(76, 114, 189, .28);--surface: rgba(255, 255, 255, .82);--surface-strong: #f9fbff;--surface-soft: #edf4ff;--accent: #2f7dff;--accent-strong: #1958c7;--accent-soft: #d6e8ff;--ok: #167f5a;--danger: #bb2f44;--warn: #8f640f;--radius-lg: 22px;--radius-md: 14px;--radius-sm: 10px;--shadow-soft: 0 18px 38px rgba(16, 41, 84, .12);--shadow-strong: 0 26px 60px rgba(8, 25, 58, .22)}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0;padding:0}body{font-family:Manrope,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at 8% 5%,#fffffff2,#fff0 42%),radial-gradient(circle at 90% 10%,#7bb7ff73,#7bb7ff00 38%),linear-gradient(155deg,var(--bg-a),var(--bg-b) 52%,var(--bg-c))}h1,h2,h3,h4{margin:0;font-family:Sora,Manrope,sans-serif;letter-spacing:.01em}p{margin:0}.loading-screen{min-height:100vh;display:grid;place-items:center;gap:.45rem}.loading-screen h1{font-size:clamp(1.8rem,3vw,2.6rem)}.app-shell{min-height:100vh;display:grid;grid-template-columns:minmax(270px,315px) 1fr;gap:1rem;padding:1rem;animation:appFadeIn .38s ease}.sidebar{background:linear-gradient(165deg,#113471f5,#194fa5f2 58%,#418ce5eb);color:#eef4ff;border:1px solid rgba(173,205,255,.33);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-strong);position:sticky;top:1rem;height:calc(100vh - 2rem);overflow:auto}.brand{padding:.35rem .4rem 1rem;border-bottom:1px solid rgba(205,225,255,.22)}.brand h1{color:#fff}.brand p{margin-top:.45rem;color:#e8f2ffe6;line-height:1.45;font-size:.93rem}.nav{display:grid;gap:.42rem;margin-top:1rem}.nav-item{border:1px solid rgba(190,216,255,.26);background:#e9f4ff1c;color:#eef4ff;border-radius:var(--radius-sm);min-height:43px;display:flex;align-items:center;justify-content:space-between;padding:.52rem .72rem;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.nav-item:hover{transform:translate(2px);border-color:#dae9ff9e;background:#ebf6ff2e}.nav-item.active{border-color:#e4f1fff2;background:linear-gradient(130deg,#f1f8ffeb,#d6e8ffd6);color:#103577;font-weight:700;box-shadow:0 10px 18px #0d295833}.nav-item small{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;height:1.55rem;border-radius:999px;background:#ffffffd1;color:#184894;font-size:.75rem;font-weight:700}.content{min-width:0}.topbar{background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius-lg);padding:.9rem 1rem;display:flex;justify-content:space-between;gap:.8rem;align-items:center;box-shadow:var(--shadow-soft)}.topbar p{margin-top:.3rem;color:var(--muted);font-size:.9rem}.status-group{display:flex;gap:.42rem;flex-wrap:wrap}.pill{border-radius:999px;border:1px solid var(--line);padding:.3rem .74rem;font-size:.75rem;font-weight:700;background:#ffffffe6}.pill-ok{color:var(--ok);border-color:#1c8a5f61}.pill-warn{color:var(--warn);border-color:#b1892a6b;background:#fff8e9}.content-stack{margin-top:.9rem;display:grid;gap:.9rem}.flash{margin-top:.8rem;border-radius:var(--radius-sm);padding:.58rem .74rem;font-size:.92rem}.flash-error{border:1px solid rgba(214,83,106,.42);color:var(--danger);background:#ffeef2f2}.flash-ok{border:1px solid rgba(47,157,106,.38);color:var(--ok);background:#ecfff4f2}.panel{border:1px solid var(--line);border-radius:var(--radius-md);padding:.92rem;background:linear-gradient(165deg,#ffffffe0,#f3faffdb);box-shadow:var(--shadow-soft)}.panel-collapsible{padding:0;overflow:hidden}.panel-collapsible-summary{margin-bottom:0;padding:.92rem;list-style:none;cursor:pointer}.panel-collapsible-summary::-webkit-details-marker{display:none}.panel-collapsible-summary h3:before{content:"▸ ";color:#2f73e0}.panel-collapsible[open] .panel-collapsible-summary h3:before{content:"▾ "}.panel-collapsible-content{border-top:1px solid var(--line);padding:0 .92rem .92rem}.panel-stretch{display:flex;flex-direction:column;min-height:0}.panel-scroll{max-height:min(68vh,860px);overflow:auto;padding-right:.25rem}.panel-header{display:flex;justify-content:space-between;gap:.65rem;align-items:baseline;margin-bottom:.7rem}.panel-header span{color:var(--muted);font-size:.85rem}.grid{display:grid;gap:.68rem}.grid.metrics{grid-template-columns:repeat(5,minmax(130px,1fr))}.grid.metrics.vhs-stats-metrics{grid-template-columns:repeat(6,minmax(130px,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{border:1px solid rgba(98,141,214,.33);border-radius:var(--radius-sm);padding:.72rem;background:linear-gradient(155deg,#fff,#eaf3ff)}.metric-card span{display:block;color:var(--muted);font-size:.75rem}.metric-card strong{margin-top:.2rem;display:block;font-size:1.05rem}.input{width:100%;min-height:42px;border-radius:var(--radius-sm);border:1px solid rgba(95,132,201,.35);background:#ffffffeb;color:var(--ink);padding:.56rem .66rem;font-size:.93rem;outline:none}.input:focus{border-color:#3875e0cc;box-shadow:0 0 0 3px #3b7cee2e}.textarea{min-height:94px;resize:vertical}.actions{margin-top:.56rem;display:flex;flex-wrap:wrap;gap:.5rem}.actions.inline{margin-top:.35rem}.button{border:1px solid rgba(88,125,197,.38);border-radius:var(--radius-sm);padding:.52rem .84rem;background:#fffffff5;color:var(--ink);font-weight:700;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.button:hover{border-color:#4372cfd1;transform:translateY(-1px);box-shadow:0 10px 18px #1d42871f}.button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.button-primary{border-color:#1657c7e0;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-strong))}.list{display:grid;gap:.5rem}.list.dense{gap:.36rem}.list-item{border:1px solid rgba(112,148,214,.33);border-radius:var(--radius-sm);background:#fffffff0;padding:.56rem .66rem;display:grid;gap:.17rem;text-align:left}.list-item small{color:var(--muted)}.list-item.selectable{cursor:pointer}.list-item.selectable.active{border-color:#3072e3cc;background:linear-gradient(155deg,#f2f8ff,#dcebff);box-shadow:0 10px 20px #1e4a9b1f}.course-item{transition:border-color .16s ease,background .16s ease,transform .16s ease}.course-item:hover{transform:translateY(-1px)}.vhs-master-detail{display:grid;gap:.92rem;grid-template-columns:minmax(310px,36%) 1fr;align-items:start}.course-updated{border-color:#ffaa44a6;background:linear-gradient(160deg,#fffef9,#fff4dc)}.course-completed{border-color:#5aa67f7a;background:linear-gradient(160deg,#f4fff8,#e8f7ef)}.course-cancelled{border-color:#939db373;background:linear-gradient(160deg,#f3f6fb,#e9eef8);color:#47516a}.tag-row{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.18rem}.status-tag{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(108,141,205,.36);padding:.14rem .5rem;font-size:.68rem;font-weight:800;letter-spacing:.02em;background:#fffffffa}.status-tag-completed{border-color:#3095666b;color:#1f6b47;background:#e9fbf2}.status-tag-cancelled{border-color:#75819a70;color:#4b5673;background:#eef2f9}.status-tag-updated{border-color:#e2982c8f;color:#8b5a0d;background:#fff5e0}.import-log-item{border:1px solid rgba(112,150,218,.34);border-radius:var(--radius-sm);background:#fffffff0;overflow:hidden}.import-log-item[open]{border-color:#3f79d999}.import-log-summary{list-style:none;cursor:pointer;display:grid;gap:.2rem;padding:.58rem .66rem}.import-log-summary::-webkit-details-marker{display:none}.import-log-summary strong:before{content:"▸ ";color:#2f73e0}.import-log-item[open] .import-log-summary strong:before{content:"▾ "}.import-log-summary small{color:var(--muted)}.import-log-content{border-top:1px solid var(--line);padding:.46rem .66rem .68rem;display:grid;gap:.2rem}.import-log-content small{color:var(--muted)}.course-description{border:1px solid rgba(114,152,220,.35);border-radius:var(--radius-sm);background:linear-gradient(155deg,#f8fbff,#ebf4ff);padding:.65rem .72rem;line-height:1.45;margin-bottom:.48rem;white-space:pre-wrap}.course-focus-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;padding:1rem;background:#0a162c94;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:grid;place-items:center}.course-focus-sheet{width:min(1360px,100%);max-height:94vh;overflow:auto;border-radius:22px;border:1px solid rgba(163,195,255,.42);background:linear-gradient(150deg,#fffffff0,#edf6ffe6);box-shadow:0 38px 80px #05122c61;padding:1rem;animation:focusIn .22s ease}.course-focus-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;position:sticky;top:0;z-index:3;background:#f8fcfff5;border-bottom:1px solid rgba(128,164,228,.32);padding-bottom:.75rem;margin-bottom:.85rem}.course-focus-grid{display:grid;gap:.9rem;grid-template-columns:1.12fr 1fr 1fr}.muted{color:var(--muted)}@media(max-width:1400px){.grid.metrics.vhs-stats-metrics{grid-template-columns:repeat(3,minmax(130px,1fr))}.vhs-master-detail,.course-focus-grid{grid-template-columns:1fr}}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid.metrics,.grid.three,.grid.metrics.vhs-stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-scroll{max-height:58vh}}@media(max-width:700px){.app-shell{padding:.65rem;gap:.65rem}.grid.metrics,.grid.two,.grid.three,.grid.metrics.vhs-stats-metrics{grid-template-columns:1fr}.panel-scroll{max-height:none;overflow:visible;padding-right:0}.topbar{flex-direction:column;align-items:flex-start}.course-focus-overlay{padding:.45rem}.course-focus-sheet{max-height:96vh;padding:.72rem}.course-focus-header{flex-direction:column;align-items:stretch}}@keyframes appFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes focusIn{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
