@font-face{font-family:Golos;src:url('assets/fonts/GolosText-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Golos;src:url('assets/fonts/GolosText-SemiBold.woff2') format('woff2');font-weight:600 800;font-display:swap}
:root{--nav:#172126;--nav-deep:#10181c;--canvas:#edf0f1;--surface:#fff;--surface-soft:#f6f8f8;--ink:#182125;--muted:#667379;--line:#dce2e3;--accent:#0b8f81;--accent-strong:#08786e;--accent-soft:#e2f3f0;--warn:#a76a13;--warn-soft:#fff5dd;--danger:#b5473d;--danger-soft:#faece9;--ok:#16765d;--shadow:0 18px 45px rgba(29,45,50,.10)}
*{box-sizing:border-box;min-width:0}
html,body{margin:0;min-width:1160px;min-height:100%;font-family:Golos,Arial,sans-serif;color:var(--ink);background:var(--canvas);font-size:14px}
button,input{font:inherit;color:inherit}
button,a{transition:background .16s,border-color .16s,color .16s,transform .16s}
button{cursor:pointer}
.prototype-note{height:26px;display:flex;align-items:center;justify-content:center;color:#425056;background:#dfe5e6;border-bottom:1px solid #cad3d5;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 26px)}
.sidebar{position:fixed;top:26px;bottom:0;left:0;width:248px;display:flex;flex-direction:column;padding:22px 14px 16px;color:#d6dedf;background:radial-gradient(circle at 18% 4%,rgba(20,158,143,.19),transparent 26%),linear-gradient(180deg,var(--nav),var(--nav-deep));box-shadow:12px 0 32px rgba(16,24,28,.10);z-index:5}
.brand{display:flex;align-items:center;gap:12px;padding:0 10px 22px;color:white;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08)}
.brand img{width:36px;height:36px;object-fit:contain;background:#fff;border-radius:50%}
.brand span{display:grid;gap:2px}.brand strong{font-size:17px;letter-spacing:.04em}.brand small{color:#91a3a8;font-size:11px}
.nav{display:grid;gap:4px;padding-top:20px}.nav-label{margin:0 12px 8px;color:#70858a;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.nav a{position:relative;display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;color:#bdc9cc;text-decoration:none;border-radius:7px;font-weight:600}
.nav a:hover{color:#fff;background:rgba(255,255,255,.06)}.nav .is-active{color:#fff;background:rgba(255,255,255,.07)}
.nav-icon{width:20px;text-align:center;color:#8fa1a5}.chevron{margin-left:auto}.nav-children{display:grid;margin:4px 0 7px 31px;padding-left:14px;border-left:1px solid rgba(255,255,255,.12)}
.nav-children a{min-height:35px;padding:0 10px;font-size:13px;font-weight:400}.nav-children .is-current{color:#fff;background:rgba(11,143,129,.18)}.nav-children .is-current:before{position:absolute;left:-15px;width:2px;height:22px;background:#44c1b2;content:""}
.sidebar-foot{margin-top:auto;padding:14px 10px 4px;border-top:1px solid rgba(255,255,255,.08)}.pulse{display:flex;align-items:center;gap:8px;color:#e7f7f4;font-size:12px}.pulse span{width:7px;height:7px;border-radius:50%;background:#48c4a4;box-shadow:0 0 0 4px rgba(72,196,164,.12)}.sidebar-foot p{margin:6px 0 12px;color:#71878c;font-size:11px}.sidebar-foot button{padding:0;border:0;color:#a9b9bd;background:none;font-size:12px}
.workspace{grid-column:2;min-width:0}.topbar{height:56px;display:grid;grid-template-columns:minmax(230px,1fr) minmax(360px,580px) auto;align-items:center;gap:24px;padding:0 28px;background:rgba(255,255,255,.86);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.breadcrumbs{color:#445258;font-size:12px}.breadcrumbs span{padding:0 8px;color:#9aa5a9}.global-search{height:36px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 10px;color:#7b888d;background:#f3f5f5;border:1px solid #e0e5e6;border-radius:7px}.global-search input{border:0;outline:0;background:transparent}.global-search kbd{padding:2px 6px;color:#7b888d;background:white;border:1px solid #d9dfe0;border-radius:4px;font:11px Golos}
.profile{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent}.profile>span:first-child{width:30px;height:30px;display:grid;place-items:center;color:white;background:#3a4a50;border-radius:50%;font-size:11px}.profile>span:nth-child(2){display:grid;text-align:left}.profile strong{font-size:12px}.profile small{color:var(--muted);font-size:10px}.profile b{color:#8a9599}
.content{width:min(100%,1740px);margin:0 auto;padding:25px 28px 36px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.eyebrow{margin:0 0 5px;color:#78858a;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.page-head h1{margin:0;font-size:28px;line-height:34px;letter-spacing:-.02em}.lead{margin:5px 0 0;color:var(--muted);font-size:13px}.head-actions{display:flex;gap:8px}
.button{min-height:36px;padding:0 14px;border-radius:7px;border:1px solid transparent;font-weight:600;font-size:12px}.button.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.button.primary:hover{background:var(--accent-strong)}.button.secondary{background:#fff;border-color:#cfd7d9}.button.secondary:hover{background:#f6f8f8}
.freshness{height:38px;display:flex;align-items:center;gap:10px;padding:0 14px;margin-bottom:12px;background:#edf7f5;border:1px solid #cce8e3;border-left:3px solid var(--accent);color:#47605f;font-size:12px}.freshness strong{color:#214b47}.freshness-pulse{width:7px;height:7px;border-radius:50%;background:#20a98c}.freshness time{margin-left:auto;color:#5d6d70}.readonly{padding:3px 7px;background:#fff;border:1px solid #d2e5e2;border-radius:999px;color:#526568;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.metric-strip{display:grid;grid-template-columns:.8fr 1.25fr 1.15fr 1.15fr 1fr;margin-bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 1px rgba(20,32,36,.03);overflow:hidden}.metric-strip article{position:relative;display:grid;gap:2px;padding:15px 18px;border-right:1px solid var(--line)}.metric-strip article:last-child{border:0}.metric-strip article:first-child:before{position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent);content:""}.metric-strip span{color:var(--muted);font-size:11px}.metric-strip strong{font-size:21px;line-height:27px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.metric-strip small{color:#8a969a;font-size:10px}.positive{color:var(--ok)}.warm{color:var(--warn)}.negative{color:var(--danger)}
.filters{display:grid;grid-template-columns:1.35fr .95fr 1fr 1fr 1fr auto auto;align-items:end;gap:8px;padding:13px;margin-bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.field{display:grid;gap:5px}.field>span{color:#68767b;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.field input,.field button{width:100%;height:36px;padding:0 10px;text-align:left;background:#fff;border:1px solid #ccd5d7;border-radius:7px;font-size:12px}.field button{display:flex;align-items:center;justify-content:space-between}.field input:focus,.field button:focus{outline:3px solid rgba(11,143,129,.12);border-color:var(--accent)}.apply{height:36px}.reset{height:36px;padding:0 8px;border:0;background:transparent;color:#6c7a7f;font-size:12px}
.orders-panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(29,45,50,.04)}.panel-head{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 18px;border-bottom:1px solid var(--line)}.panel-head .eyebrow{margin-bottom:1px}.panel-head h2{margin:0;font-size:17px}.panel-tools{display:flex;align-items:center;gap:8px}.panel-tools span,.panel-tools button{height:30px;display:flex;align-items:center;padding:0 10px;color:#58676c;background:var(--surface-soft);border:1px solid #e2e7e8;border-radius:6px;font-size:11px}.panel-tools button{background:#fff}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;table-layout:fixed}th{padding:10px 12px;text-align:left;color:#758287;background:#f4f6f6;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.04em;text-transform:uppercase}th:nth-child(1){width:12%}th:nth-child(2){width:17%}th:nth-child(3){width:18%}th:nth-child(4){width:16%}th:nth-child(5){width:17%}th:nth-child(6){width:14%}th:last-child{width:42px}td{position:relative;padding:12px;border-bottom:1px solid #e7ebec;vertical-align:middle;font-size:12px}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fbfa}tbody tr.is-selected{background:#f4faf9}tbody tr.is-selected td:first-child:before{position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--accent);content:""}td strong,td small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}td strong{font-weight:600}td small{margin-top:3px;color:#829095;font-size:10px}.status{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid;border-radius:999px;font-size:10px;font-weight:600}.status.ok{color:var(--ok);background:#e9f6f1;border-color:#c6e6da}.status.warn{color:var(--warn);background:var(--warn-soft);border-color:#eed7a8}.status.danger{color:var(--danger);background:var(--danger-soft);border-color:#efc8c2}.row-action{width:27px;height:27px;border:1px solid #d5ddde;background:#fff;border-radius:6px;color:#526166}.row-action:hover{color:white;background:var(--accent);border-color:var(--accent)}
.table-foot{height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#768388;font-size:11px}.table-foot div{display:flex;gap:4px}.table-foot button{width:28px;height:28px;border:1px solid #dce2e3;background:#fff;border-radius:6px;color:#657278}.table-foot button.current{color:white;background:#2c3c42;border-color:#2c3c42}
.drawer{position:fixed;z-index:20;top:26px;right:0;bottom:0;width:430px;display:flex;flex-direction:column;padding:22px;background:#fff;box-shadow:-20px 0 50px rgba(19,32,37,.18);transform:translateX(110%);transition:transform .22s ease}.drawer.is-open{transform:translateX(0)}.drawer header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--line)}.drawer h2{margin:0;font-size:22px}.drawer-close{border:0;background:none;font-size:24px;color:#66757a}.drawer-status{display:flex;align-items:center;justify-content:space-between;padding:12px 0;color:var(--muted);font-size:11px}.drawer section{padding:17px 0;border-top:1px solid var(--line)}.drawer section h3{margin:0 0 12px;font-size:14px}.drawer section p{color:#354449;line-height:1.55}.drawer section p span{color:var(--muted);font-size:11px}.drawer dl{margin:0;display:grid;gap:9px}.drawer dl div{display:flex;justify-content:space-between}.drawer dt{color:var(--muted)}.drawer dd{margin:0;font-weight:600}.drawer dl .total{padding-top:10px;border-top:1px solid var(--line)}.timeline{margin:0;padding:0;list-style:none;display:grid;gap:14px}.timeline li{position:relative;display:grid;gap:2px;padding-left:18px}.timeline li:before{position:absolute;left:0;top:6px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);content:""}.timeline span{color:var(--muted);font-size:11px}.drawer footer{display:flex;gap:8px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.scrim{position:fixed;inset:26px 0 0 248px;z-index:15;background:rgba(20,30,34,.22);opacity:0;pointer-events:none;transition:opacity .2s}.scrim.is-open{opacity:1;pointer-events:auto}
@media(max-width:1280px){.topbar{grid-template-columns:minmax(200px,1fr) minmax(320px,440px) auto}.content{padding-inline:20px}.metric-strip article{padding-inline:13px}.filters{grid-template-columns:1.3fr .9fr 1fr 1fr;}.filters .field:nth-child(5){display:none}.apply,.reset{grid-row:2}.orders-panel{font-size:12px}}

/* Quiet CRM motion: informative, quick, and removable by the OS setting. */
.content{animation:workspace-in .32s cubic-bezier(.2,.8,.2,1) both}
.pulse span,.freshness-pulse{animation:signal-pulse 2.8s ease-in-out infinite}
.metric-strip article{animation:metric-in .34s cubic-bezier(.2,.8,.2,1) both}
.metric-strip article:nth-child(2){animation-delay:.035s}.metric-strip article:nth-child(3){animation-delay:.07s}.metric-strip article:nth-child(4){animation-delay:.105s}.metric-strip article:nth-child(5){animation-delay:.14s}
.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0) scale(.985)}.button.primary:hover{box-shadow:0 6px 16px rgba(11,143,129,.18)}
tbody tr{transition:background .16s ease,box-shadow .16s ease}tbody tr:hover{box-shadow:inset 3px 0 0 rgba(11,143,129,.42)}.row-action:hover{transform:translateX(2px)}
@keyframes workspace-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes metric-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes signal-pulse{0%,100%{box-shadow:0 0 0 3px rgba(32,169,140,.12)}50%{box-shadow:0 0 0 7px rgba(32,169,140,0)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Live API candidate states and denser production data contract. */
#app{min-height:100vh}
.nav>.nav-disabled{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;color:#819398;border-radius:7px;font-weight:600;cursor:not-allowed}.nav-child-disabled{display:flex;align-items:center;min-height:35px;padding:0 10px;color:#63777c;font-size:13px;cursor:not-allowed}
.live-metrics{grid-template-columns:.72fr 1.12fr 1.08fr 1.05fr 1.1fr 1fr}
.live-filters{grid-template-columns:minmax(175px,1.35fr) minmax(112px,.72fr) minmax(112px,.72fr) repeat(4,minmax(128px,1fr)) auto auto}
.field select{width:100%;height:36px;padding:0 28px 0 10px;text-align:left;color:var(--ink);background:#fff;border:1px solid #ccd5d7;border-radius:7px;font-size:12px}
.field select:focus{outline:3px solid rgba(11,143,129,.12);border-color:var(--accent)}
.state-page{display:grid;place-items:center;min-height:calc(100vh - 82px)}
.state-card{width:min(520px,100%);padding:28px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
.state-card h1{margin:0 0 8px;font-size:26px}.state-card>p:not(.eyebrow){margin:0 0 20px;color:var(--muted);line-height:1.55}
.pin-card form{display:flex;align-items:end;gap:8px}.pin-card label{display:grid;flex:1;gap:6px;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase}.pin-card input{height:40px;padding:0 12px;border:1px solid #ccd5d7;border-radius:7px}.pin-error{margin:14px 0 0!important;color:var(--danger)!important}
.empty-state{display:grid;gap:4px;padding:32px;text-align:center}.empty-state span,.empty-inline{color:var(--muted);font-size:12px}
.drawer>[data-detail]{display:flex;flex-direction:column;min-height:100%}.drawer>[data-detail]>footer{margin-top:auto}
.drawer-note,.student-note{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.drawer-alert{margin:0 0 8px;padding:11px 12px;color:#7b3a32;background:var(--danger-soft);border:1px solid #efc8c2;border-radius:7px;font-size:11px;line-height:1.45}
.drawer-loading{display:grid;place-items:center;align-content:center;gap:7px;min-height:320px;text-align:center}.drawer-loading span{width:28px;height:28px;border:3px solid #cde6e2;border-top-color:var(--accent);border-radius:50%;animation:spinner .72s linear infinite}.drawer-loading small{color:var(--muted)}
@keyframes spinner{to{transform:rotate(360deg)}}
@media(max-width:1500px){.live-filters{grid-template-columns:minmax(180px,1.35fr) repeat(4,minmax(120px,1fr)) auto auto}.live-filters .field:nth-child(2),.live-filters .field:nth-child(3){display:none}.live-metrics article{padding-inline:12px}}
@media(max-width:1280px){.live-filters{grid-template-columns:1.35fr 1fr 1fr auto auto}.live-filters .field:nth-child(6),.live-filters .field:nth-child(7){display:none}.live-metrics strong{font-size:18px}}

/* Keep order columns readable; scroll only the register, not the entire workspace. */
.table-scroll-control{display:flex;align-items:center;gap:12px;padding:7px 16px;color:#6d7b80;background:#f9fbfb;border-bottom:1px solid var(--line);font-size:11px;font-weight:600}
.table-scroll-control[hidden]{display:none}
.table-scroll-control input{flex:1;min-width:0;height:16px;margin:0;appearance:none;background:transparent;cursor:ew-resize}
.table-scroll-control input::-webkit-slider-runnable-track{height:6px;background:#d8e3e5;border-radius:999px}
.table-scroll-control input::-webkit-slider-thumb{appearance:none;width:52px;height:16px;margin-top:-5px;background:#73999f;border:2px solid #f9fbfb;border-radius:999px;box-shadow:0 0 0 1px #91a9ad}
.table-scroll-control input::-moz-range-track{height:6px;background:#d8e3e5;border-radius:999px}
.table-scroll-control input::-moz-range-thumb{width:48px;height:12px;background:#73999f;border:2px solid #f9fbfb;border-radius:999px}
.table-scroll-control input:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
@media(min-width:1100px){
  .orders-panel table{min-width:1320px}
  .orders-panel .table-wrap{overflow-x:auto;scrollbar-color:#91a9ad #e8eef0}
  .orders-panel thead th{position:sticky;top:0;z-index:1}
  .orders-panel .table-wrap::-webkit-scrollbar{width:10px;height:12px}
  .orders-panel .table-wrap::-webkit-scrollbar-track{background:#e8eef0}
  .orders-panel .table-wrap::-webkit-scrollbar-thumb{background:#91a9ad;border:2px solid #e8eef0;border-radius:8px}
}

/* Long GetCourse product names must stay inside the order drawer. */
.drawer section:nth-of-type(3) dl div{align-items:flex-start;gap:12px}
.drawer section:nth-of-type(3) dl dt{flex:0 0 110px;line-height:1.4}
.drawer section:nth-of-type(3) dl dd{flex:1;min-width:0;overflow-wrap:anywhere;text-align:right;line-height:1.4}
@media(min-width:1100px) and (max-width:1650px){
  .orders-panel .table-wrap{max-height:clamp(260px,calc(100vh - 560px),520px);overflow-y:auto}
}

/* Full production desktop register: sixteen source-backed fields plus action. */
@media(min-width:1100px){
  .orders-panel table{width:2800px;min-width:2800px}
  .orders-panel th,.orders-panel td{padding:10px 11px}
  .orders-panel th:nth-child(1){width:120px}.orders-panel th:nth-child(2){width:155px}
  .orders-panel th:nth-child(3){width:245px}.orders-panel th:nth-child(4){width:170px}
  .orders-panel th:nth-child(5){width:180px}.orders-panel th:nth-child(6){width:145px}
  .orders-panel th:nth-child(7){width:205px}.orders-panel th:nth-child(8){width:235px}
  .orders-panel th:nth-child(9){width:145px}.orders-panel th:nth-child(10){width:160px}
  .orders-panel th:nth-child(11){width:120px}.orders-panel th:nth-child(12){width:130px}
  .orders-panel th:nth-child(13){width:130px}.orders-panel th:nth-child(14){width:145px}
  .orders-panel th:nth-child(15){width:195px}.orders-panel th:nth-child(16){width:155px}
  .orders-panel th:nth-child(17){width:52px}
  .orders-panel th:nth-child(1),.orders-panel td:nth-child(1){position:sticky;left:0;z-index:2;background:#fff}
  .orders-panel th:nth-child(2),.orders-panel td:nth-child(2){position:sticky;left:120px;z-index:2;background:#fff}
  .orders-panel th:nth-child(3),.orders-panel td:nth-child(3){position:sticky;left:275px;z-index:2;background:#fff;box-shadow:8px 0 12px -12px #283b3e}
  .orders-panel thead th:nth-child(-n+3){z-index:4;background:#f4f6f6}
  .orders-panel tbody tr:hover td:nth-child(-n+3){background:#f8fbfa}
  .orders-panel tbody tr.is-selected td:nth-child(-n+3){background:#f4faf9}
  .orders-panel td.money-cell{font-variant-numeric:tabular-nums;white-space:nowrap;background:#f8faf9}
  .orders-panel td.money-cell strong{font-weight:700}
  .orders-panel td.money-cell small{white-space:normal;line-height:1.3}
  .orders-panel td:nth-child(8) small+small{color:#346d69;font-weight:600}
  .orders-panel td:nth-child(17){text-align:center}
}

/* Keep provenance available in the existing card without adding row warnings. */
.drawer{overflow-y:auto}
.provenance{margin-top:12px;padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:#f8faf9;color:var(--muted);font-size:11px;line-height:1.5}
.provenance summary{cursor:pointer;color:#47635e;font-weight:600}
.provenance p{margin:8px 0 0;overflow-wrap:anywhere}
