/* Orion commercial dashboard v1 - tokens and layout from the approved mockup (dashboard/mockup.html).
   Fonts: Marcellus / Mulish are not bundled in v1; system fallbacks are used (no third-party CDNs). */
:root{
  color-scheme:light;
  --page:#FAF8F3;--surface:#FFFFFF;--surface-2:#F3EFE6;--ink:#0B1626;--ink-2:#46505F;--muted:#5F6672;--line:#E4DFD3;
  --navy:#0B1626;--gold:#B08D3C;--gold-ink:#7E5F17;
  --s-booked:#2F5D9A;--s-fcst:#A57F2C;--s-stly:#77746D;--s-comp:#6250d6;--s-cap:#9A958A;--s-tent:#7A9CC6;--s-own:#0B1626;
  --warn:#fab219;--warn-bg:#FDF3DA;--warn-ink:#6E4A00;--crit:#d03b3b;--crit-bg:#FBE4E4;--crit-ink:#8E1F1F;
  --good:#0ca30c;--good-bg:#E3F4E3;--good-ink:#006300;--info-bg:#E6EEF8;--info-ink:#1D4374;
  --h0:#EEF2F7;--h1:#cde2fb;--h2:#9ec5f4;--h3:#5598e7;--h4:#256abf;--h5:#104281;--h-ink-lo:#0B1626;--h-ink-hi:#FFFFFF;
  --shadow:0 1px 2px rgba(11,22,38,.06),0 2px 8px rgba(11,22,38,.04);
  --serif:Marcellus,"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:Mulish,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --page:#0B1626;--surface:#121F35;--surface-2:#1A2A45;--ink:#F3EFE6;--ink-2:#CFC9BB;--muted:#A9A498;--line:#2A3A55;
    --gold:#D4B26A;--gold-ink:#E2C482;
    --s-booked:#6DA7EC;--s-fcst:#D9B867;--s-stly:#A8A49A;--s-comp:#9085e9;--s-cap:#6F7A8C;--s-tent:#4C6E99;--s-own:#F3EFE6;
    --warn-bg:#3A2F12;--warn-ink:#FAD27A;--crit-bg:#3E1A1F;--crit-ink:#F4A3A3;--good-bg:#12331C;--good-ink:#5FD35F;--info-bg:#1A2E4D;--info-ink:#A9C8EE;
    --h0:#16243B;--h1:#1c3a63;--h2:#1c5cab;--h3:#2a78d6;--h4:#5598e7;--h5:#9ec5f4;--h-ink-lo:#F3EFE6;--h-ink-hi:#0B1626;
    --shadow:none;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --page:#0B1626;--surface:#121F35;--surface-2:#1A2A45;--ink:#F3EFE6;--ink-2:#CFC9BB;--muted:#A9A498;--line:#2A3A55;
  --gold:#D4B26A;--gold-ink:#E2C482;
  --s-booked:#6DA7EC;--s-fcst:#D9B867;--s-stly:#A8A49A;--s-comp:#9085e9;--s-cap:#6F7A8C;--s-tent:#4C6E99;--s-own:#F3EFE6;
  --warn-bg:#3A2F12;--warn-ink:#FAD27A;--crit-bg:#3E1A1F;--crit-ink:#F4A3A3;--good-bg:#12331C;--good-ink:#5FD35F;--info-bg:#1A2E4D;--info-ink:#A9C8EE;
  --h0:#16243B;--h1:#1c3a63;--h2:#1c5cab;--h3:#2a78d6;--h4:#5598e7;--h5:#9ec5f4;--h-ink-lo:#F3EFE6;--h-ink-hi:#0B1626;
  --shadow:none;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font:15px/1.5 var(--sans)}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}
h1{font-size:28px;line-height:1.2}
h2{font-size:20px}
h3{font-size:16px}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:8px 12px;z-index:10}
.skip:focus{left:8px;top:8px}
.previewflag{background:var(--gold);color:#0B1626;text-align:center;font-size:13px;padding:6px 16px;line-height:1.35}

.top{background:#0B1626;color:#F3EFE6;border-bottom:1px solid #22314B}
.top-in{max-width:1360px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand{display:flex;flex-direction:column;line-height:1;margin-right:8px}
.brand b{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.18em}
.brand span{font-size:9px;letter-spacing:.42em;color:#D4B26A;margin-top:4px}
.top label{font-size:12px;color:#B9C1CE;display:flex;align-items:center;gap:8px}
.top select{font:inherit;font-size:14px;color:#F3EFE6;background:#14233B;border:1px solid #33456A;border-radius:6px;padding:7px 10px;min-height:38px;max-width:78vw}
.spacer{flex:1}
.iconbtn{font:inherit;font-size:13px;background:transparent;color:#C9D0DB;border:1px solid #33456A;border-radius:6px;padding:7px 10px;min-height:38px;cursor:pointer}
a.iconbtn{display:inline-flex;align-items:center;text-decoration:none}
[hidden]{display:none !important}
.who{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.who-email{font-size:13px;color:#B9C1CE;overflow-wrap:anywhere}
/* sign-in + user admin pages */
.authpage{max-width:520px;margin:10vh auto;padding:0 20px}
.authpage .card{padding:28px}
.authpage h1{font-family:var(--serif);font-weight:400;margin:0 0 8px}
.gbtn{display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:700;font-size:15px;background:#0B1626;color:#F3EFE6;border-radius:8px;padding:12px 18px;text-decoration:none;margin-top:14px}
.adminpage{max-width:1360px;margin:24px auto;padding:0 24px}
.adminpage form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--ink-2)}
.adminpage input[type=email],.adminpage input[type=text],.adminpage select{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 10px;min-height:38px}
.adminpage .row{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:8px 0}
.adminpage .perms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 16px;margin:8px 0}
.adminpage .perms label{flex-direction:row;align-items:center;font-weight:400}
.adminpage td .smallbtn{margin-right:6px}

.wrap{max-width:1360px;margin:0 auto;padding:0 24px}
.release{max-width:1360px;margin:0 auto;padding:12px 24px 0}
.release-bar{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px;box-shadow:var(--shadow)}
.rs{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.agebanner{margin-top:10px}

.nav{max-width:1360px;margin:0 auto;padding:14px 24px 0;border-bottom:1px solid var(--line);overflow-x:auto}
.tablist{display:flex;gap:2px}
.tablist [role="tab"]{font:inherit;font-size:14px;font-weight:600;color:var(--ink-2);background:none;border:0;border-bottom:3px solid transparent;padding:10px 12px;cursor:pointer;white-space:nowrap;min-height:44px}
.tablist [role="tab"][aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold)}

main{max-width:1360px;margin:0 auto;padding:20px 24px 48px;outline:none}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.pagehead p{margin:4px 0 0;color:var(--ink-2)}
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);font-weight:700}
.section-divider{display:flex;align-items:center;gap:12px;margin:28px 0 14px;color:var(--gold-ink);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.section-divider::before,.section-divider::after{content:"";flex:1;border-top:2px dashed var(--line)}

.grid{display:grid;gap:16px}
.g-tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.g-2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.g-2b{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.mt{margin-top:16px}
@media (max-width:980px){.g-2,.g-2b{grid-template-columns:minmax(0,1fr)}}

.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);min-width:0}
.card-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.card-h p{margin:2px 0 0;color:var(--muted);font-size:13px}
.src{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.note{font-size:13px;color:var(--ink-2);margin:6px 0}

.tile .lab{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tile .val{font-size:30px;font-weight:700;letter-spacing:-.01em;margin:6px 0 2px;line-height:1.1;font-variant-numeric:tabular-nums}
.tile .sub{font-size:13px;color:var(--ink-2)}
.tile .delta{font-size:13px;font-weight:700}
.up{color:var(--good-ink)}.down{color:var(--crit-ink)}.flat{color:var(--ink-2)}
.tile .foot{font-size:12px;color:var(--muted);margin-top:8px}

.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.03em;border-radius:999px;padding:2px 8px;white-space:nowrap;text-transform:none;vertical-align:middle}
.chip.review{background:var(--warn-bg);color:var(--warn-ink)}
.chip.prov{background:var(--surface-2);color:var(--ink-2);border:1px dashed var(--muted)}
.chip.good{background:var(--good-bg);color:var(--good-ink)}
.chip.crit{background:var(--crit-bg);color:var(--crit-ink)}
.chip.info{background:var(--info-bg);color:var(--info-ink)}
.chip.stale{background:var(--surface-2);color:var(--ink-2)}
.chip.owner{background:transparent;color:var(--gold-ink);border:1px solid var(--gold)}

.inbox{list-style:none;margin:0;padding:0}
.inbox li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}
.inbox li:first-child{border-top:0}
.inbox .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:700}
.ic.action{background:var(--info-bg);color:var(--info-ink)}
.ic.review{background:var(--warn-bg);color:var(--warn-ink)}
.ic.info,.ic.stale{background:var(--surface-2);color:var(--ink-2)}
.inbox .t{font-weight:700}
.inbox .d{font-size:13px;color:var(--ink-2)}
.linkbtn{font:inherit;font-size:13px;font-weight:700;background:none;border:0;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 0;min-height:24px;white-space:nowrap}

.filters{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:end;margin:0 0 16px}
.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--ink-2)}
.filters select,.filters input[type=search]{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 10px;min-height:38px}
.filters .chk{flex-direction:row;align-items:center;gap:8px;min-height:38px}
.filters input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold)}
.vseg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface)}
.vseg button{font:inherit;font-size:13px;color:var(--ink-2);background:none;border:0;padding:8px 12px;min-height:38px;cursor:pointer}
.vseg button[aria-pressed="true"]{background:var(--navy);color:#F3EFE6;font-weight:700}
:root[data-theme="dark"] .vseg button[aria-pressed="true"]{background:var(--gold);color:#0B1626}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .vseg button[aria-pressed="true"]{background:var(--gold);color:#0B1626}}

.chart{position:relative;width:100%;height:320px}
.chart.short{height:240px}
.chart.tall{height:380px}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink-2);margin:6px 0 4px}
.legend i{display:inline-block;vertical-align:middle;margin-right:6px}
.sw-bar{width:12px;height:12px;border-radius:2px}
.sw-line{width:18px;height:0;border-top:2px solid}
.sw-dash{width:18px;height:0;border-top:2px dashed}
.sw-hatch{width:12px;height:12px;border-radius:2px;border:1.5px solid var(--s-booked);background:repeating-linear-gradient(45deg,var(--s-booked) 0 1.5px,transparent 1.5px 4px)}
details.tbl{margin-top:8px}
details.tbl summary,details.more summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--ink-2);padding:6px 0;min-height:24px}

.tw{overflow:auto;border:1px solid var(--line);border-radius:8px;max-height:560px}
table{border-collapse:collapse;width:100%;font-size:13px}
caption{text-align:left;font-size:12px;color:var(--muted);padding:6px 10px;caption-side:bottom}
th,td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
th:first-child,td:first-child{text-align:left}
th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);background:var(--surface-2);font-weight:700;position:sticky;top:0;z-index:1}
tbody tr:last-child td{border-bottom:0}
td.l,th.l{text-align:left;white-space:normal;min-width:120px}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--surface-2)}
.miss{color:var(--muted)}
.mbar{display:inline-block;height:8px;border-radius:2px;vertical-align:middle}
.tblbar{display:flex;justify-content:flex-end;gap:8px;margin:6px 0}
.smallbtn{font:inherit;font-size:12px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px 10px;min-height:30px;cursor:pointer}

.cal-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.cal h3{margin-bottom:8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.cal-dow{font-size:11px;color:var(--muted);text-align:center;font-weight:700;padding-bottom:2px}
.cell{position:relative;font:inherit;border:0;border-radius:6px;min-height:54px;padding:4px 5px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;color:var(--h-ink-lo);background:var(--h0)}
.cell.blank{background:transparent;cursor:default}
.cell .dn{font-size:11px;font-weight:700;opacity:.9}
.cell .rm{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.cell .pu{font-size:10px;font-variant-numeric:tabular-nums;opacity:.95}
.cell.b1{background:var(--h1)}.cell.b2{background:var(--h2)}.cell.b3{background:var(--h3);color:var(--h-ink-hi)}.cell.b4{background:var(--h4);color:var(--h-ink-hi)}.cell.b5{background:var(--h5);color:var(--h-ink-hi)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cell.b1,:root:not([data-theme="light"]) .cell.b2,:root:not([data-theme="light"]) .cell.b3{color:#F3EFE6}}
:root[data-theme="dark"] .cell.b1,:root[data-theme="dark"] .cell.b2,:root[data-theme="dark"] .cell.b3{color:#F3EFE6}
.cell.prov{outline:1.5px dashed currentColor;outline-offset:-4px}
.cell .mk{position:absolute;top:3px;right:4px;font-size:10px;line-height:1;display:flex;gap:2px}
.cell .mk span{background:var(--surface);color:var(--ink);border-radius:3px;padding:1px 2px}
.cell:hover{filter:brightness(1.06)}
.heat-legend{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.heat-legend i{width:26px;height:12px;border-radius:2px;display:inline-block}

.kv{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:13px;margin:0}
.kv dt{color:var(--ink-2)}.kv dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.status4{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.st{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--surface)}
.st .k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.st .v{margin:6px 0 4px}
.st .m{font-size:12px;color:var(--muted)}
.rev-group{margin-top:14px}
.rev-group h3{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.rev-list{list-style:none;margin:0;padding:0}
.rev-list li{padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.rev-list li:first-child{border-top:0}
.barlist{display:grid;gap:8px}
.barlist .row{display:grid;grid-template-columns:minmax(120px,240px) 1fr 56px;gap:10px;align-items:center;font-size:13px}
.barlist .trk{height:10px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.barlist .fill{height:100%;background:var(--s-booked);border-radius:0 3px 3px 0}
.barlist .n{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}

.banner{display:flex;gap:12px;align-items:flex-start;border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:14px}
.banner b{display:block}
.banner.review{background:var(--warn-bg);color:var(--warn-ink)}
.banner.info{background:var(--info-bg);color:var(--info-ink)}
.banner.stale{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.banner.crit{background:var(--crit-bg);color:var(--crit-ink)}
.empty{display:grid;place-items:center;text-align:center;min-height:140px;padding:20px;color:var(--ink-2);background:var(--surface-2);border-radius:10px;font-size:14px}
.empty b{display:block;color:var(--ink);margin-bottom:4px}
.skel{background:linear-gradient(90deg,var(--surface-2),var(--surface),var(--surface-2));background-size:200% 100%;animation:sk 1.4s infinite;border-radius:10px;min-height:120px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

dialog{border:0;border-radius:14px 0 0 14px;padding:0;margin:0 0 0 auto;height:100%;max-height:100%;width:min(460px,100%);background:var(--surface);color:var(--ink);box-shadow:-8px 0 30px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(11,22,38,.45)}
.dr-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface)}
.dr-b{padding:16px 20px 28px;display:grid;gap:16px}
.close{font:inherit;font-size:20px;line-height:1;background:none;border:1px solid var(--line);border-radius:8px;width:40px;height:40px;cursor:pointer;color:var(--ink)}
.tip{display:none}

footer{max-width:1360px;margin:0 auto;padding:0 24px 32px;font-size:12px;color:var(--muted)}

@media (max-width:640px){
  .top-in{padding:10px 16px;gap:10px}
  .release,.nav,.wrap{padding-left:16px;padding-right:16px}
  main{padding:16px 16px 40px}
  footer{padding:0 16px 24px}
  h1{font-size:24px}
  .tile .val{font-size:26px}
  .cell{min-height:46px;padding:3px}
  .cell .pu{display:none}
  .barlist .row{grid-template-columns:110px 1fr 44px}
  .chart{height:280px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
[hidden]{display:none!important}
.banner.synthetic{font-size:15px;letter-spacing:.02em}
.banner.synthetic b{text-transform:uppercase}
