/* Phoenix Ops — the Phoenix Fire brand (phoenixfiresa.co.za, and Quoin): a deep wine
   sidebar, warm cream paper, brick red for primary actions; Instrument Sans for text and
   Plus Jakarta Sans for headings. Layout: sidebar of databases on the left, the open view
   in the middle, record pages slide in from the right. */
/* Brand fonts: Instrument Sans & Plus Jakarta Sans, SIL Open Font License 1.1 */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/InstrumentSans-400.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/InstrumentSans-500.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/InstrumentSans-600.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/InstrumentSans-700.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/PlusJakartaSans-600.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/PlusJakartaSans-700.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/PlusJakartaSans-800.woff2) format("woff2")}
:root{
  --ink:#301417; --panel:#301417; --panel-2:#3E1F22; --panel-line:#55333A; --panel-hover:#4A2A2D;
  --surface:#FAF5EF; --raised:#FFFFFF; --soft:#FBF7F2; --hover:#F2E9DF; --sel:#EADFD2;
  --line:#E4D7CA; --line-2:#D5C3B3;
  --signal:#A8463F; --signal-deep:#8C3731; --signal-hover:#B9554D; --signal-tint:#F3E1DC; --ember:#E08A63; --led:#4FD18A; --led-dim:#1F9D57; --amber:#E9B85E;
  --text:#301417; --muted:#6E5658; --faint:#9A8482; --on-panel:#FAF5EF; --on-panel-dim:#CBB7B1; --on-panel-mute:#A48D88;
  --shadow:0 16px 44px rgba(48,20,23,.22);
  --mono: ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --ui: "Instrument Sans","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  --display: "Plus Jakarta Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --c-default-bg:#EFE6DC; --c-default-fg:#4A2A2D; --c-gray-bg:#ECE6E0; --c-gray-fg:#5E4F4C;
  --c-brown-bg:#F1E2D6; --c-brown-fg:#6A4232; --c-orange-bg:#FBE0CC; --c-orange-fg:#86400F;
  --c-yellow-bg:#FBEFCF; --c-yellow-fg:#6B4E12; --c-green-bg:#E5F4EA; --c-green-fg:#0F6A38;
  --c-blue-bg:#DDE9F1; --c-blue-fg:#1D4C70; --c-purple-bg:#EBE1EF; --c-purple-fg:#583374;
  --c-pink-bg:#F6E1E8; --c-pink-fg:#772C52; --c-red-bg:#F3E1DC; --c-red-fg:#8C3731;
  --row-hover:#FBF4EE; --well:#F2E9DF; --line-soft:#F3EBE2; --today:#FDF6F2; --glass:rgba(246,243,236,.94);
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--surface);color:var(--text);font-family:var(--ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
[hidden]{display:none!important}
.eyebrow{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}

/* shell */
.app{height:100%;display:grid;grid-template-columns:244px minmax(0,1fr)}
.side{background:var(--panel);color:var(--on-panel);padding:14px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}
.brand-mark{width:30px;height:30px;border-radius:7px;background:var(--signal);display:grid;place-items:center;color:#fff;flex:none}
.brand b{display:block;font-size:14px;letter-spacing:.01em}
.brand span{display:block;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-panel-dim)}
.side-label{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--on-panel-mute);padding:14px 10px 6px}
.nav{text-decoration:none;display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:6px 10px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer;color:#E4D7CA}
.nav:hover{background:var(--panel-2)}
.nav[aria-current="page"]{background:var(--panel-hover);color:#fff;font-weight:600}
.nav svg{flex:none;color:var(--on-panel-dim)}
.nav[aria-current="page"] svg{color:#fff}
.nav .count{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--on-panel-mute)}
.side-foot{margin-top:auto;padding:14px 10px 4px;display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--on-panel-dim);border-top:1px solid var(--panel-line)}
.who{display:flex;align-items:center;gap:8px}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--panel-line);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);margin-right:6px;vertical-align:1px}
.dot.ok{background:var(--led)}
.main{overflow:auto;min-width:0}
.wrap{padding-block:26px 72px;padding-inline:clamp(16px,3.4vw,40px);display:flex;flex-direction:column;gap:16px;min-width:0;max-width:1500px}

.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.head h1{margin:0;font-size:26px;font-weight:750;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;text-wrap:balance}
.head h1 svg{color:var(--muted)}
.head p{margin:4px 0 0;color:var(--muted);max-width:66ch}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line)}
.tab{display:flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.tab:hover{color:var(--text)}
.tab[aria-selected="true"]{color:var(--ink);font-weight:650;border-bottom-color:var(--signal)}
.search{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;border:1px solid var(--line-2);border-radius:8px;background:var(--raised);flex:1 1 220px;max-width:340px}
.search svg{color:var(--faint);flex:none}
.search input{border:0;outline:0;background:transparent;flex:1;min-width:0;min-height:34px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{min-height:32px;padding:4px 11px;border:1px solid var(--line-2);border-radius:999px;background:var(--raised);cursor:pointer;font-size:13px;color:var(--muted)}
.chip:hover{border-color:var(--faint);color:var(--text)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border-radius:8px;border:1px solid var(--line-2);background:var(--raised);cursor:pointer;font-weight:600;font-size:13px;text-decoration:none;color:var(--text)}
.btn:hover{background:var(--hover)}
.btn.primary{background:var(--signal);border-color:var(--signal-deep);color:#fff}
.btn.primary:hover{background:#B9554D}
.btn.dark{background:var(--panel);border-color:#000;color:var(--on-panel)}
.btn.dark:hover{background:var(--panel-hover)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--hover)}
.btn.danger{color:var(--c-red-fg);border-color:var(--c-red-bg)}
.btn.danger.solid{background:var(--signal-deep);color:#fff;border-color:var(--signal-deep)}
.btn.sm{min-height:30px;padding:3px 10px;font-size:12.5px}
.spacer{flex:1}
.meta{color:var(--muted);font-size:13px}

.pill{display:inline-flex;align-items:center;max-width:100%;padding:1px 8px;border-radius:4px;font-size:12.5px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pill.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:6px;opacity:.85;flex:none}
.c-default{background:var(--c-default-bg);color:var(--c-default-fg)} .c-gray{background:var(--c-gray-bg);color:var(--c-gray-fg)}
.c-brown{background:var(--c-brown-bg);color:var(--c-brown-fg)} .c-orange{background:var(--c-orange-bg);color:var(--c-orange-fg)}
.c-yellow{background:var(--c-yellow-bg);color:var(--c-yellow-fg)} .c-green{background:var(--c-green-bg);color:var(--c-green-fg)}
.c-blue{background:var(--c-blue-bg);color:var(--c-blue-fg)} .c-purple{background:var(--c-purple-bg);color:var(--c-purple-fg)}
.c-pink{background:var(--c-pink-bg);color:var(--c-pink-fg)} .c-red{background:var(--c-red-bg);color:var(--c-red-fg)}
.rel{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;background:var(--hover);font-size:12.5px;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.nowrap{white-space:nowrap}
.mono{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:12.5px;white-space:nowrap}

/* table */
.tablebox{overflow:clip;background:var(--raised);border:1px solid var(--line);border-radius:10px}
table.grid{border-collapse:collapse;width:100%;table-layout:fixed}
.grid th,.grid td{border-bottom:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
.grid th{position:sticky;top:0;background:var(--soft);font-weight:700;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;z-index:1}
.grid th button{max-width:100%;overflow:hidden;text-overflow:ellipsis;display:block;border:0;background:transparent;color:inherit;cursor:pointer;padding:2px 0;font:inherit;letter-spacing:inherit;text-transform:inherit}
.grid th button:hover{color:var(--ink)}
.grid tbody tr{cursor:pointer}
.grid tbody tr:hover{background:var(--row-hover)}
.grid td{overflow:hidden;overflow-wrap:anywhere}
.grid td .cell{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:22px;min-width:0}
.grid td .cell>*{max-width:100%;min-width:0}
.grid td .pill,.grid td .relchip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grid td.t{font-weight:600}
.grid .clip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.grid tr.newrow td{color:var(--muted);font-weight:500}
.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:10px;background:var(--raised)}
.empty b{display:block;color:var(--text);font-size:15px;margin-bottom:4px}

/* board */
.boardbox{padding-bottom:8px}
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;align-items:start}
.col{min-width:0;background:var(--well);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.col.drop{outline:2px dashed var(--signal);outline-offset:-2px}
.col-h{display:flex;align-items:center;gap:8px;padding:4px 4px 2px}
.col-h .mono{color:var(--faint)}
.card{background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;cursor:pointer;text-align:left;width:100%}
.card:hover{border-color:var(--faint)}
.card b{font-weight:650}
.card .sub{display:flex;flex-wrap:wrap;gap:4px;color:var(--muted);font-size:12.5px}
.card.dragging{opacity:.5}
.addcard{border:0;background:transparent;color:var(--muted);text-align:left;padding:6px 8px;border-radius:6px;cursor:pointer}
.addcard:hover{background:var(--hover);color:var(--text)}

/* calendar */
.calbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calbar h2{margin:0 8px 0 0;font-size:18px;font-weight:650;min-width:160px}
.calbox{overflow-x:auto;background:var(--raised);border-radius:10px;border:1px solid var(--line)}
.cal{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-width:770px}
.cal .dow{padding:6px 8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--soft)}
.day{min-height:112px;max-height:190px;overflow-y:auto;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px}
.day.out{background:var(--soft)}
.day.out .dn{color:var(--faint)}
.day .dtop{display:flex;align-items:center;justify-content:space-between}
.day .dn{font-size:12px;font-family:var(--mono);padding:2px 5px;border-radius:4px}
.day.today .dn{background:var(--signal);color:#fff}
.day.drop{background:var(--signal-tint)}
.day .plus{opacity:0;border:0;background:transparent;cursor:pointer;color:var(--muted);border-radius:4px;width:24px;height:22px;display:grid;place-items:center}
.day:hover .plus,.day .plus:focus-visible{opacity:1}
.ev{display:block;width:100%;border:0;text-align:left;padding:2px 6px;border-radius:4px;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev .tm{font-family:var(--mono);font-size:11px;margin-right:4px;opacity:.85}

/* home */
.home{align-items:start;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px}
.box{background:var(--raised);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.box h2{margin:0 0 6px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:8px}
.box h2 .mono{color:var(--faint);font-weight:500;letter-spacing:0}
.li{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:6px 8px;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer}
.li:hover{background:var(--hover)}
.li .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.li .when{font-family:var(--mono);font-size:12px;color:var(--muted);flex:none;min-width:52px}
.li .late{color:var(--signal-deep);font-weight:600}
.none{color:var(--faint);padding:6px 8px}

/* record page */
.scrim{position:fixed;inset:0;background:rgba(21,18,14,.4);z-index:20}
.panel{position:fixed;top:0;right:0;bottom:0;width:min(660px,100%);background:var(--raised);box-shadow:var(--shadow);z-index:21;display:flex;flex-direction:column}
.p-top{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--soft)}
.p-top .crumb{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.p-body{overflow-y:auto;padding:22px clamp(16px,5vw,38px) 48px;display:flex;flex-direction:column;gap:18px}
.p-title{font-size:25px;font-weight:750;letter-spacing:-.02em;border:0;outline:0;background:transparent;width:100%;padding:0}
.p-title::placeholder{color:var(--faint)}
.props{display:grid;grid-template-columns:minmax(120px,170px) minmax(0,1fr);gap:2px 10px;align-items:start}
.props .lab{color:var(--muted);font-size:13px;padding:7px 0}
.props .val{min-height:34px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}
.field{width:100%;min-height:34px;padding:5px 8px;border:1px solid transparent;border-radius:6px;background:transparent}
.field:hover{background:var(--hover)}
.field:focus{background:var(--raised);border-color:var(--line-2);outline:0;box-shadow:0 0 0 2px var(--signal-tint)}
textarea.field{resize:vertical;min-height:60px}
.datepair{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}
.datepair .field{width:auto;flex:1 1 150px}
.multi{display:flex;flex-wrap:wrap;gap:6px}
.multi button{border:1px solid transparent;cursor:pointer;opacity:.45}
.multi button[aria-pressed="true"]{opacity:1}
.relwrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}
.relchip{display:inline-flex;align-items:center;gap:2px;padding:2px 2px 2px 8px;border-radius:5px;background:var(--hover);font-size:13px}
.relchip .go{border:0;background:transparent;cursor:pointer;padding:0;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.x{border:0;background:transparent;cursor:pointer;color:var(--muted);width:28px;height:28px;border-radius:5px;display:grid;place-items:center;flex:none}
.x:hover{background:var(--sel);color:var(--ink)}
.picker{width:100%;border:1px solid var(--line-2);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;background:var(--raised)}
.picker input{min-height:34px;border:1px solid var(--line-2);border-radius:6px;padding:4px 8px;background:var(--raised)}
.picker .opts{max-height:230px;overflow-y:auto;display:flex;flex-direction:column}
.picker .opts button{border:0;background:transparent;text-align:left;padding:7px 8px;border-radius:5px;cursor:pointer}
.picker .opts button:hover{background:var(--hover)}
.sec h3{margin:0 0 8px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.backlinks{display:flex;flex-direction:column;gap:10px}
.bl-group{display:flex;flex-direction:column;gap:2px}
.bl-group .meta{display:flex;align-items:center;gap:6px;margin-bottom:2px}
textarea.body{width:100%;min-height:200px;resize:vertical;border:1px solid var(--line-2);border-radius:8px;padding:12px;background:var(--raised);line-height:1.6}
.p-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;color:var(--faint);font-size:12px;border-top:1px solid var(--line);padding-top:14px}
.files{display:flex;flex-direction:column;gap:6px}
.file{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}
.file .fic{width:34px;height:34px;border-radius:6px;background:var(--well);display:grid;place-items:center;color:var(--muted);flex:none;overflow:hidden}
.file .fic img{width:100%;height:100%;object-fit:cover}
.file .fname{flex:1;min-width:0}
.file .fname b{display:block;font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file .fname span{font-size:11.5px;color:var(--muted)}
.dropzone{border:1.5px dashed var(--line-2);border-radius:10px;padding:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;color:var(--muted);font-size:13px;background:#fff}
.dropzone.over{border-color:var(--signal);background:var(--signal-tint)}


/* settings */
.settings{display:flex;flex-direction:column;gap:16px;max-width:760px}
.settings .box p{margin:0 0 8px;color:var(--muted)}
.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 12px;font-size:13px}
.kv span:nth-child(odd){color:var(--muted)}

/* sign in */
.signin{position:fixed;inset:0;z-index:50;background:var(--panel);display:grid;place-items:center;padding:16px;overflow:auto}
.signin form{width:min(400px,100%);background:var(--raised);border-radius:14px;padding:26px;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 70px rgba(0,0,0,.4)}
.signin h1{margin:0;font-size:22px;letter-spacing:-.01em}
.signin p{margin:0;color:var(--muted)}
.signin label{display:flex;flex-direction:column;gap:5px;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700}
.signin input{border:1px solid var(--line-2);border-radius:8px;padding:10px 11px;font-size:15px;letter-spacing:0;text-transform:none;color:var(--text);font-weight:400}
.signin .note{font-size:12px;color:var(--muted);background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:10px}
.signin .err{color:var(--signal-deep);font-size:13px}

.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:9px;font-size:13px;font-weight:600;z-index:60;opacity:0;pointer-events:none;transition:opacity .15s}
.toast.on{opacity:1}
.banner{padding:10px 14px;border-radius:8px;background:var(--c-orange-bg);color:var(--c-orange-fg);font-size:13px;border:1px solid var(--line-2)}

@media (max-width:820px){
  .app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .side{flex-direction:row;align-items:center;overflow-x:auto;overflow-y:hidden;padding:8px 10px;gap:4px}
  .brand{padding:0 6px 0 0}
  .brand > div:last-child,.side-label,.side-foot,.nav .count{display:none}
  .nav{width:auto;flex:none;white-space:nowrap}
  .props{grid-template-columns:minmax(0,1fr)}
  .props .lab{padding:8px 0 0}
  .kv{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

select.field[class*="c-"]{font-weight:600;border-radius:6px}
select.field.c-default{background:var(--c-default-bg)}

/* inline edits in table rows */
.cellsel{appearance:none;-webkit-appearance:none;border:1px solid transparent;border-radius:4px;padding:1px 22px 1px 8px;font-size:12.5px;font-weight:550;cursor:pointer;max-width:100%;min-height:24px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23736B5D' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 6px center}
.cellsel:hover,.cellsel:focus{border-color:var(--line-2);outline:0}
.cellsel:focus-visible{outline:2px solid var(--signal);outline-offset:1px}
.cellsel.empty{background-color:transparent;color:var(--faint);font-weight:400}
.cellsel option{background:var(--raised);color:var(--text);font-weight:400}
.cellchk{width:17px;height:17px;cursor:pointer;accent-color:var(--signal);margin:2px 0}

/* money */
.num.pos,.profit.pos,.moneybar b.pos{color:var(--led-dim)}
.num.neg,.profit.neg,.moneybar b.neg{color:var(--signal-deep)}
.profit{font-family:var(--mono);font-weight:700;font-size:14px;padding:7px 8px 7px 8px}
.moneybar{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:baseline;padding:10px 14px;background:var(--raised);border:1px solid var(--line);border-radius:10px;font-size:13px}
.moneybar b{font-family:var(--mono);font-variant-numeric:tabular-nums;margin-left:4px}
.props .val .hint{flex-basis:100%;font-size:12px;color:var(--muted);padding:0 8px 4px;line-height:1.4}

/* rename */
.nav.renaming{background:var(--panel-hover)}
.nav.renaming input{flex:1;min-width:0;background:#301417;border:1px solid var(--ember);border-radius:5px;color:#fff;padding:3px 6px;font-size:14px}
.nav.renaming input:focus{outline:0}
h1[data-rename]{cursor:text}

/* numbering */
.numchip{font-family:var(--mono);font-size:12px}
.numpanel{background:var(--raised);border:1px solid var(--line);border-radius:10px;padding:14px}
.numform{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;width:100%}
.numform label{display:flex;flex-direction:column;gap:4px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.numform input,.numform select{border:1px solid var(--line-2);border-radius:7px;padding:7px 9px;font-size:14px;background:var(--raised);letter-spacing:0;text-transform:none;font-weight:500;color:var(--text);width:140px}
.numform input[data-in="numform"][id$="-prefix"]{width:100px;font-family:var(--mono)}
.numprev{font-size:13px;color:var(--muted);align-self:center}
.numprev b{font-family:var(--mono);color:var(--ink);font-size:14px}
.numacts{display:flex;gap:8px}
.numform .hint{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}
.numfield{display:flex;align-items:center;gap:2px;width:100%}
.numfield .prefix{font-family:var(--mono);font-size:13px;color:var(--muted);padding-left:8px}
.numfield input{max-width:130px}
.props .val .numform{margin:6px 0 4px;padding:12px;background:var(--soft);border:1px solid var(--line);border-radius:8px}
.numlist{display:flex;flex-direction:column;gap:16px}
.numrow h3{margin:0 0 8px;font-size:13px;display:flex;align-items:center;gap:6px;color:var(--text)}
.numrow + .numrow{border-top:1px solid var(--line);padding-top:14px}

/* quote & invoice lines, totals, company form */
table.grid.lines{min-width:0;table-layout:auto}
.grid.lines th,.grid.lines td{padding:7px 6px}
.grid.lines td:first-child{min-width:150px}
.numfield input.field[data-num]{max-width:160px}
.grid.lines tbody tr{cursor:default}
.grid.lines tbody tr:hover{background:transparent}
.grid.lines tr.lh td{background:var(--soft);font-size:12px;letter-spacing:.04em}
.grid .r,.grid th.r{text-align:right}
.totals{display:grid;grid-template-columns:max-content max-content;gap:6px 24px;justify-content:end;align-items:baseline;margin-top:12px;font-size:13px}
.totals>span:nth-child(odd){color:var(--muted)}
.totals .big{font-size:17px}
.totals>b,.totals>span:nth-child(even){text-align:right}
.num.neg,.neg{color:var(--bad,#B3261E)}
.num.pos{color:var(--ok,#2E7D32)}
.cform{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr);gap:6px 12px;align-items:center;margin-top:10px}
.cform textarea{min-height:64px}
.p-title.mono{font-family:var(--mono,ui-monospace,monospace)}
div.p-title{padding:6px 0}
@media (max-width:640px){.cform{grid-template-columns:1fr}.cform label{margin-top:6px}.totals{justify-content:stretch}}
.dot.bad{background:var(--bad,#B3261E)}
.history{display:flex;flex-direction:column;gap:6px}
.hrow{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;font-size:13px}
.failrow{margin-bottom:6px}
/* Quoin's records (read-only here) */
.quoinbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin:0 0 14px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:13px;color:var(--muted)}
.quoinbar>span{flex:1;min-width:200px}
.quoinbar>span.qb-acts{flex:none;min-width:0;display:flex;flex-wrap:wrap;gap:6px}
.quoinbar>span.qb-acts:empty{display:none}
.quoinbar a.btn{text-decoration:none}
.ro{min-height:34px;padding:7px 8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ro .relchip.go{border:0;cursor:pointer;font:inherit}
.prewrap{white-space:pre-wrap}
/* online pill + updates */
.netpill{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;border:0;border-radius:999px;padding:4px 11px 4px 9px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;background:var(--panel-line);color:var(--on-panel)}
.netpill i{width:8px;height:8px;border-radius:50%;background:var(--on-panel-mute);flex:none}
.netpill.on{background:#1f3b26;color:#bfe9c8}
.netpill.on i{background:#3ddc6a;box-shadow:0 0 0 3px rgba(61,220,106,.18)}
.netpill.on.busy i{animation:pulse 1.2s ease-in-out infinite}
.netpill.off{background:#4a3a1c;color:#f3d79b}.netpill.off i{background:var(--amber)}
.netpill.bad{background:#4d2020;color:#f5b8b0}.netpill.bad i{background:#B9554D}
.netpill.mobile{display:none}
@keyframes pulse{50%{opacity:.35}}
.syncline{font-size:11.5px}
.updcard{display:flex;gap:9px;align-items:flex-start;text-align:left;margin:10px 4px 0;padding:9px 10px;border-radius:8px;border:1px solid #3ddc6a55;background:#1f3b26;color:#d7f3dd;font:inherit;font-size:12px;cursor:pointer}
.updcard b{display:block;font-size:12.5px}
.updnow{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:4px 0 12px}
.updnow>span:first-child{font-size:14px}
.release{border-top:1px solid var(--line);padding:8px 0}
.release summary{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;cursor:pointer;list-style:none}
.release summary::-webkit-details-marker{display:none}
.release summary>span:nth-child(2){font-weight:600}
.release ul{margin:8px 0 2px 18px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
/* the job card file */
.pdfbox{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:34px;padding:4px 0}
.pdfbox .fname{display:flex;flex-direction:column;min-width:0;flex:1}
.pdfbox .filerow{display:flex;align-items:center;gap:8px;flex:1 1 100%}
.pdfbox .fname span{font-size:12px;color:var(--muted)}
.pdfchip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--soft);border-radius:5px;padding:2px 7px;font:inherit;font-size:12px;cursor:pointer}
@media (max-width:820px){.netpill.mobile{display:inline-flex;margin-left:auto;flex:none}.updcard{margin:0;flex:none;padding:5px 8px}.updcard span{display:none}}
.pdfbox .fic{width:34px;height:34px;border-radius:6px;background:var(--well);display:grid;place-items:center;color:var(--muted);flex:none;overflow:hidden}.pdfbox .fic img{width:100%;height:100%;object-fit:cover}
/* Users */
.ulist{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.urow{display:grid;grid-template-columns:34px minmax(150px,1.3fr) auto minmax(120px,1.6fr) 90px auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.urow.off{opacity:.55}
.urow .avatar{width:30px;height:30px;font-size:11px}
.uname{display:flex;flex-direction:column;min-width:0}.uname span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.uaccess{font-size:12px}
.uacts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.uform{display:grid;gap:10px;padding:14px;margin:8px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.uform h3{margin:0;font-size:14px}
.uform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600}
.uform label.chk{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.uform .pwrow{display:flex;gap:6px}.uform .pwrow .field{flex:1}
.uaccessbox{border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;margin:0}
.uaccessbox legend{font-size:12.5px;font-weight:600;padding:0 4px}
.uaccessbox[disabled]{opacity:.6}
.uaccessbox .hint{grid-column:1/-1}
.uform .err{color:var(--bad,#B3261E);font-size:13px;min-height:1em}
.previewbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:9px 12px;border-radius:8px;background:#2a2a5a;color:#e4e4ff;font-size:13px}
.previewbar span{flex:1}
@media (max-width:820px){.urow{grid-template-columns:30px 1fr auto}.urow .uaccess,.urow>span.meta{grid-column:2/-1}.uacts{grid-column:1/-1;justify-content:flex-start}}

/* ════════════════ phones (≤ 820px): bottom tabs, card lists, full-screen records ════════════════ */
.tabbar,.sheet,.sheet-scrim,.mtop{display:none}
button,a,label,select{touch-action:manipulation}
@media (max-width:820px){
  html,body{overscroll-behavior-y:none}
  body{-webkit-tap-highlight-color:transparent}
  .app{display:block;height:100%}
  .side{display:none}
  .main{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .wrap{padding:0 14px 24px;gap:12px}
  /* top bar */
  .mtop{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:5;margin:0 -14px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;background:var(--glass);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
  .mtop h1{margin:0;font-size:19px;font-weight:750;letter-spacing:-.01em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-mark.sm{width:28px;height:28px;border-radius:7px}
  .mtop .netpill{margin:0;padding:6px 12px 6px 10px;font-size:12.5px}
  .mtop .netpill.local{background:var(--sel);color:var(--muted)}
  .mtop .netpill.on{background:var(--c-green-bg);color:var(--c-green-fg)}
  .mtop .netpill.off{background:var(--c-yellow-bg);color:var(--c-yellow-fg)}
  .mtop .netpill.bad{background:var(--c-red-bg);color:var(--c-red-fg)}
  .netpill.mobile,.updcard{display:none}
  .head h1{display:none}
  .head{gap:8px}
  .head p{font-size:13px}
  /* bottom tabs */
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;position:fixed;left:0;right:0;bottom:0;z-index:15;background:var(--panel);color:var(--on-panel-dim);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--panel-line)}
  .tab-i{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:transparent;color:inherit;font-size:11px;font-weight:600;padding:6px 2px;min-height:52px;border-radius:10px;cursor:pointer}
  .tab-i[aria-current=page]{color:#fff}
  .tab-i[aria-current=page] svg{color:var(--ember)}
  .tab-plus{justify-self:center;width:58px;height:58px;margin-top:-22px;border-radius:50%;border:4px solid var(--panel);background:var(--signal);color:#fff;display:grid;place-items:center;box-shadow:0 6px 18px rgba(224,48,30,.38);cursor:pointer}
  .tab-plus:active,.tab-i:active,.mcard:active,.mq:active,.sheet-i:active{transform:scale(.97)}
  /* sheets */
  .sheet-scrim{display:block;position:fixed;inset:0;background:rgba(15,12,9,.42);z-index:30}
  .sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:31;background:var(--raised);border-radius:18px 18px 0 0;padding:8px 10px calc(14px + env(safe-area-inset-bottom,0px));max-height:82vh;overflow-y:auto;transform:translateY(100%);transition:transform .2s ease-out}
  .sheet.on{transform:none}
  .sheet[hidden],.sheet-scrim[hidden]{display:none}
  .grab{width:40px;height:5px;border-radius:3px;background:var(--line-2);margin:4px auto 10px}
  .sheet-title{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:4px 10px 8px}
  .sheet-head{display:flex;gap:10px;align-items:center;padding:4px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
  .sheet-head>span:last-child{display:flex;flex-direction:column;min-width:0}
  .sheet-head .avatar{width:36px;height:36px;font-size:14px}
  .sheet-head .syncline{color:var(--muted)}
  .sheet-i{display:flex;align-items:center;gap:14px;width:100%;border:0;background:transparent;text-align:left;padding:12px 10px;min-height:58px;border-radius:12px;cursor:pointer;color:var(--text)}
  .sheet-i svg{color:var(--muted);flex:none}
  .sheet-i>span{display:flex;flex-direction:column}
  .sheet-i b{font-size:15.5px;font-weight:650}
  .sheet-i span span{font-size:12.5px;color:var(--muted)}
  .sheet-i:hover{background:var(--hover)}
  /* home */
  .mhello{display:flex;flex-direction:column;padding:6px 2px 0}
  .mhello b{font-size:22px;font-weight:750;letter-spacing:-.01em}
  .mhello span{color:var(--muted);font-size:13px}
  .mquick{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}
  .mq{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px 12px;min-height:88px;border-radius:14px;border:1px solid var(--line);background:var(--raised);font-weight:650;font-size:13.5px;text-align:left;cursor:pointer}
  .mq svg{color:var(--signal)}
  .mq.primary{background:var(--signal);border-color:var(--signal);color:#fff}.mq.primary svg{color:#fff}
  .msec{display:flex;flex-direction:column;gap:8px}
  .msec h2{display:flex;align-items:center;gap:8px;margin:8px 2px 0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .msec h2 .mono{font-size:11px;letter-spacing:0;color:var(--faint)}
  .mmore{border:0;background:transparent;color:var(--signal-deep);font-weight:650;padding:12px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
  /* lists */
  .mtabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:2px -14px 0;padding:0 14px}
  .mtabs::-webkit-scrollbar,.chips.m::-webkit-scrollbar{display:none}
  .mtab{flex:none;border:1px solid var(--line);background:var(--raised);border-radius:999px;padding:8px 14px;font-weight:600;font-size:13px;min-height:38px;cursor:pointer}
  .mtab[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}
  .search.m{flex:none;max-width:none;min-height:46px;border-radius:12px;background:var(--raised)}
  .search.m input{font-size:16px}
  .chips.m{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px;padding:0 14px 2px}
  .chips.m .chip{flex:none;min-height:36px;padding:7px 13px}
  .mcount{padding:0 2px}
  .mlist{display:flex;flex-direction:column;gap:8px}
  .mcard{display:flex;flex-direction:column;gap:5px;width:100%;text-align:left;border:1px solid var(--line);background:var(--raised);border-radius:14px;padding:12px 14px;min-height:64px;cursor:pointer;color:var(--text);content-visibility:auto;contain-intrinsic-size:auto 86px}
  .mc-top{display:flex;align-items:center;gap:8px;min-height:22px}
  .mc-top .mono{font-size:13px;font-weight:700}
  .mc-top .pill:first-of-type{margin-left:auto}
  .mc-title{font-size:15.5px;font-weight:650;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .mc-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px}
  .mc-file{display:inline-flex;align-items:center;gap:3px;margin-left:auto;font-weight:600;color:var(--text);background:var(--hover);border-radius:5px;padding:1px 6px}
  .empty{padding:28px 18px}
  /* calendar by day */
  .agbar{display:flex;align-items:center;gap:6px}
  .agbar .btn{min-height:40px;min-width:40px;justify-content:center}
  .agrange{flex:1;text-align:center;font-weight:650;font-size:13.5px}
  .agday{display:flex;flex-direction:column;gap:6px}
  .agday h3{display:flex;align-items:center;gap:8px;margin:6px 2px 0;font-size:13px;font-weight:650;color:var(--muted)}
  .agd{font-size:20px;font-weight:750;color:var(--text);min-width:26px}
  .agday.today .agd{color:var(--signal)}
  .agday.empty h3{opacity:.55}
  .agadd{margin-left:auto;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--raised);display:grid;place-items:center;color:var(--muted);cursor:pointer}
  /* record pages: full screen, big targets */
  .panel{width:100%;box-shadow:none;padding-top:env(safe-area-inset-top,0px)}
  .scrim{display:none}
  .p-top.m{padding:6px 8px;min-height:54px;background:var(--raised)}
  .p-top.m .meta{font-size:12px;padding-right:6px}
  .back{display:flex;align-items:center;gap:2px;border:0;background:transparent;color:var(--signal-deep);font-weight:650;font-size:15px;padding:10px 8px;min-height:44px;border-radius:10px;cursor:pointer}
  .p-body{padding:16px 16px calc(40px + env(safe-area-inset-bottom,0px));gap:16px}
  .p-title{font-size:24px}
  .props{gap:2px}
  .props .lab{padding:10px 0 2px;font-size:12px;font-weight:650;color:var(--muted)}
  .field,.p-body select,.p-body input[type=date],.p-body input[type=datetime-local]{min-height:46px;font-size:16px!important}
  .ro{min-height:40px;font-size:15px}
  .relchip{min-height:40px;font-size:15px}
  .relwrap .btn.sm,.datepair .x{min-height:42px;min-width:42px}
  .picker input{min-height:46px;font-size:16px}
  .picker .opts button{min-height:48px;font-size:15px}
  .pdfbox{gap:10px}
  .pdfbox{display:grid;grid-template-columns:1fr 1fr}
  .pdfbox .fic,.pdfbox .fname{grid-column:auto}
  .pdfbox .fname{grid-column:span 1}
  .pdfbox label.btn,.pdfbox>.btn{justify-content:center;min-height:50px;font-size:15px;white-space:nowrap}
  .pdfbox .filerow{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px}
  .actions{display:grid;grid-template-columns:1fr}
  .actions .btn{min-height:48px;justify-content:flex-start;font-size:15px}
  .numfield .btn{display:none}
  .toast{bottom:calc(88px + env(safe-area-inset-bottom,0px));max-width:calc(100% - 28px);text-align:center}
  .previewbar{margin-top:10px}
  .signin form{max-width:none}
  .signin input{font-size:16px!important;min-height:48px}
}

/* quotes | catalog */
.seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--soft);align-self:flex-start}
.seg-i{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font-weight:600;font-size:13px}
.seg-i:hover{color:var(--text)}
.seg-i[aria-current="page"]{background:var(--raised);color:var(--ink);box-shadow:0 1px 2px rgba(48,20,23,.12)}
.seg-i[aria-current="page"] svg{color:var(--signal)}

/* directors' Home: quoting and invoicing at a glance */
.biz{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px}
.biz-t{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:96px;padding:12px 14px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--raised);cursor:pointer;overflow:hidden}
.biz-t:hover{border-color:var(--line-2);background:var(--soft)}
.biz-l{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.biz-b{font-size:24px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.15}
.biz-s{font-size:12px;color:var(--muted);line-height:1.35}
.biz-spark{display:flex;align-items:flex-end;gap:3px;height:30px;margin-top:auto;padding-top:6px}
.biz-spark i{display:block;width:7px;border-radius:2px 2px 0 0;background:var(--line-2)}
.biz-spark i.cur{background:var(--signal)}

/* the quote editor, over the hub */
#studio,.appwin{position:fixed;inset:0;z-index:900;background:rgba(48,20,23,.42)}
#studio.ready{background:transparent}
.appwin iframe{visibility:hidden}
.appwin.shown iframe{visibility:visible}
.appwin.shown .studio-load{display:none}
#studio iframe,.appwin iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;color-scheme:light}
#studio .studio-load,.appwin .studio-load{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:10px;background:var(--raised);box-shadow:var(--shadow);font-weight:600;z-index:1}
#studio.ready .studio-load{display:none}
#studio .spin,.appwin .spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--signal);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
body.studio-on .main,body.studio-on .panel{overflow:hidden}
@media (max-width: 820px){
  .seg{align-self:stretch}.seg-i{flex:1;justify-content:center;min-height:40px}
  .biz{grid-template-columns:1fr 1fr;gap:8px}
  .biz-t{min-height:86px;padding:10px 12px}.biz-b{font-size:20px}
  .biz-t:last-child{grid-column:1 / -1}
}

/* job cards: the file block */
.pdfchip.add{border-style:dashed;color:var(--muted);background:transparent}
.pdfchip.add:hover{color:var(--signal);border-color:var(--signal)}
.pdfchip.draft{color:#6C530A;background:var(--c-yellow-bg);border-color:#E9D68F}
.pdfbox .filerow.note{color:#6C530A}
.chooser-scrim{position:fixed;inset:0;z-index:950;background:rgba(48,20,23,.42);display:grid;place-items:center;padding:16px}
.chooser{width:min(440px,100%);background:var(--raised);border-radius:14px;box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:8px}
.ch-h{display:flex;flex-direction:column;padding:0 2px 6px}.ch-h b{font-family:var(--mono);font-size:16px}.ch-h span{color:var(--muted);font-size:13px}
.ch-i{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;border:1px solid var(--line-2);border-radius:12px;background:var(--raised);text-align:left;cursor:pointer;font:inherit;color:inherit}
.ch-i:hover{background:var(--soft);border-color:var(--signal)}
.ch-i>svg{color:var(--signal);flex:none}
.ch-i span{display:flex;flex-direction:column}.ch-i b{font-size:15px}.ch-i span span{font-size:12.5px;color:var(--muted)}
.ch-i.primary{background:var(--signal);border-color:var(--signal);color:#fff}.ch-i.primary>svg,.ch-i.primary span span{color:#fff}
.ch-x{align-self:stretch;justify-content:center;margin-top:4px}
@media (max-width: 820px){ .chooser-scrim{place-items:end center;padding:0} .chooser{width:100%;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))} }

/* record pages: clear sections — a heading, a white card, one row per field */
.panel .p-body{background:var(--surface);gap:14px}
.p-body>.p-title{padding:0 2px}
.p-sub{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:-6px;padding:0 2px}
.p-sub .ps-t{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}
.p-sub .ps-t svg{color:var(--faint)}
.pcard,.p-body>.sec,.p-body>.quoinbar{background:var(--raised);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(48,20,23,.04)}
.p-body>.quoinbar{margin:0}
.p-body>.sec:empty,#backlinks:empty{display:none}
.pcard>h3,.p-body>.sec>h3,#backlinks>h3{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:11px;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.pcard .props{gap:0 14px}
.pcard .props>.lab,.pcard .props>.val{border-top:1px solid var(--line);padding-top:8px;padding-bottom:8px}
.pcard .props>.lab:first-child,.pcard .props>.lab:first-child+.val{border-top:0;padding-top:2px}
.pcard .props .lab{font-size:12.5px;font-weight:650;color:var(--muted);padding-left:0}
.pcard .props .val{min-height:38px}
.p-body .field,.p-body select.field:not([class*="c-"]){border:1px solid var(--line);background:var(--soft)}
.p-body .field:hover{border-color:var(--line-2);background:var(--soft)}
.p-body .field:focus{background:var(--raised);border-color:var(--line-2)}
.filecard .hint{margin:8px 0 0;font-size:12px;color:var(--muted)}
.filecard .pdfbox{padding:0}
.p-foot{border-top:0;padding:4px 2px 0}
@media (max-width: 820px){
  .pcard,.p-body>.sec,.p-body>.quoinbar{padding:12px 14px;border-radius:14px}
  .pcard .props>.lab{border-top:1px solid var(--line);padding:10px 0 2px}
  .pcard .props>.val{border-top:0;padding-top:2px}
  .pcard .props>.lab:first-child{border-top:0;padding-top:0}
}
/* windows over the hub sit beside the sidebar, centred in the page */
@media (min-width: 821px){ #studio,.appwin{left:244px} }

/* brand type and shapes */
.head h1,.brand b,.mhello b,.p-title:not(.mono),.signin h1,.biz-b,.mtop h1{font-family:var(--display);letter-spacing:-.015em}
.head h1{font-weight:800}
.btn{border-radius:999px}
.btn.primary{background:var(--signal);border-color:var(--signal);color:#fff}
.btn.primary:hover{background:var(--signal-hover);border-color:var(--signal-hover)}
.brand-mark{background:linear-gradient(135deg,#E08A63,#B5503F 50%,#7A2A2C)}
.side{background:linear-gradient(180deg,#3A191C 0%,#301417 40%,#261013 100%)}
.nav[aria-current="page"]{background:var(--panel-hover);box-shadow:inset 3px 0 0 #E08A63}
.tab[aria-selected="true"]{border-bottom-color:var(--signal)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
:focus-visible{outline-color:var(--signal)}

/* week: days across, 07:00–18:00 down, one colour per person */
:root{
  --k-default:#8A6F66; --k-gray:#8B7D78; --k-brown:#9A6A4F; --k-orange:#D9772F; --k-yellow:#C99A1E;
  --k-green:#2E9D5B; --k-blue:#3A78A8; --k-purple:#8A5BAE; --k-pink:#C0517F; --k-red:#C2453C;
}
.k-default{--k:var(--k-default);--kb:var(--c-default-bg);--kf:var(--c-default-fg)} .k-gray{--k:var(--k-gray);--kb:var(--c-gray-bg);--kf:var(--c-gray-fg)}
.k-brown{--k:var(--k-brown);--kb:var(--c-brown-bg);--kf:var(--c-brown-fg)} .k-orange{--k:var(--k-orange);--kb:var(--c-orange-bg);--kf:var(--c-orange-fg)}
.k-yellow{--k:var(--k-yellow);--kb:var(--c-yellow-bg);--kf:var(--c-yellow-fg)} .k-green{--k:var(--k-green);--kb:var(--c-green-bg);--kf:var(--c-green-fg)}
.k-blue{--k:var(--k-blue);--kb:var(--c-blue-bg);--kf:var(--c-blue-fg)} .k-purple{--k:var(--k-purple);--kb:var(--c-purple-bg);--kf:var(--c-purple-fg)}
.k-pink{--k:var(--k-pink);--kb:var(--c-pink-bg);--kf:var(--c-pink-fg)} .k-red{--k:var(--k-red);--kb:var(--c-red-bg);--kf:var(--c-red-fg)}
.pdot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--k);margin-right:6px;vertical-align:0}
.wkbar{margin-bottom:10px}
.wkdays .seg-i[aria-pressed="true"]{background:var(--raised);color:var(--text);box-shadow:0 1px 3px rgba(48,20,23,.14);font-weight:650}
.wk{--gut:58px;position:relative;isolation:isolate;background:var(--raised);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.wk-head,.wk-top,.wk-body{display:grid;grid-template-columns:var(--gut) repeat(var(--days),minmax(0,1fr))}
.wk-head{border-bottom:1px solid var(--line);background:var(--soft)}
.wk-dh{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 4px;font-size:13px;color:var(--muted);border-left:1px solid var(--line)}
.wk-dh b{font:700 15px var(--display);color:var(--text);min-width:28px;height:28px;display:grid;place-items:center;border-radius:999px}
.wk-dh.today span{color:var(--signal-deep);font-weight:650}
.wk-dh.today b{background:var(--signal);color:#fff}
.wk-top{border-bottom:1px solid var(--line)}
.wk-top .wk-gut{display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:9.5px;white-space:nowrap;color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
.wk-tc{border-left:1px solid var(--line);padding:4px 3px;display:flex;flex-direction:column;gap:3px;min-width:0}
.wk-chip{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--k);background:var(--kb);color:var(--kf);border-radius:6px;padding:3px 7px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-body{padding:10px 0 12px;position:relative}
.wk-gut{position:relative}
.wk-hr{position:absolute;right:9px;transform:translateY(-50%);font:11px var(--mono);color:var(--faint)}
.wk-col{position:relative;height:calc(11 * var(--hr) + 1px);border-left:1px solid var(--line);cursor:cell;
  background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line-soft) 1px,transparent 1px);
  background-size:100% var(--hr),100% var(--hr);background-position:0 0,0 calc(var(--hr) / 2)}
.wk-col.today{background-color:var(--today)}
.wk-ev{position:absolute;outline:1.5px solid var(--raised);display:flex;flex-direction:column;align-items:flex-start;gap:1px;overflow:hidden;text-align:left;border:0;border-left:4px solid var(--k);border-radius:7px;
  background:var(--kb);color:var(--kf);padding:4px 7px;font-size:12px;line-height:1.25;cursor:pointer;box-shadow:0 1px 2px rgba(48,20,23,.12),inset 0 0 0 1px rgba(48,20,23,.05);z-index:1}
.wk-ev:hover{z-index:20!important;box-shadow:0 4px 14px rgba(48,20,23,.2)}
.wk-ev b{font-weight:650;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wk-ev .wk-tm{font:11px var(--mono);opacity:.8;white-space:nowrap}
.wk-ev .wk-who{font-size:11px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wk-ev.small{flex-direction:row;align-items:center;gap:6px;padding-top:2px;padding-bottom:2px}
.wk-ev.small b{flex:0 1 auto;min-width:45%}.wk-ev.small .wk-tm{flex:1 1 0;min-width:0;overflow:hidden}
.wk-ev.dragging{z-index:30!important;opacity:.9;box-shadow:0 10px 26px rgba(48,20,23,.3);cursor:grabbing}
.wk-rs{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}
body.wk-dragging{cursor:grabbing;user-select:none}
.wk-now{position:absolute;left:-1px;right:0;height:2px;background:var(--signal);z-index:25;pointer-events:none}
.wk-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--signal)}
.wk-tip{display:none}
@media (max-width:820px){
  .wk{--gut:44px;border-radius:10px}
  .wkbar{gap:6px}.wkbar h2{min-width:0;font-size:16px;flex:1 1 auto;margin:0}
  .wkbar .spacer{display:none}.wkdays{flex:1 1 100%;display:grid;grid-template-columns:repeat(4,1fr)}
  .wkdays .seg-i{justify-content:center;white-space:nowrap;padding:4px 6px}
  .wk-dh{flex-direction:column;gap:0;padding:6px 2px;font-size:11px}
  .wk-hr{right:6px;font-size:10px}
  .wk-body{max-height:none}
  .wk-ev{padding:3px 5px;font-size:11px}.wk-ev b{font-size:11.5px}
}
.wk-ghost{position:absolute;left:2px;right:3px;border-radius:7px;background:rgba(168,70,63,.16);border:1.5px dashed var(--signal);color:var(--signal-deep);
  padding:3px 7px;font-size:12px;line-height:1.25;display:flex;flex-direction:column;pointer-events:none;z-index:24;overflow:hidden}
.wk-ghost span{font:11px var(--mono)}
body.wk-drawing,body.wk-drawing .wk-col{cursor:ns-resize;user-select:none}
/* are-you-sure pop-up */
.chooser.ask{gap:12px}
.ask-b p{margin:0;color:var(--muted);font-size:13.5px}
.ask-b{display:flex;flex-direction:column;gap:10px}
.ask-sum{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.ask-sum div{flex:1;min-width:0}.ask-sum b{display:block}.ask-sum small{color:var(--muted)}
.ask-note{padding:8px 10px;border-radius:8px;background:var(--c-yellow-bg);color:var(--c-yellow-fg)!important}
.ask-f{display:flex;justify-content:flex-end;gap:8px}
.btn.danger.solid{background:var(--c-red-fg);border-color:var(--c-red-fg);color:#fff}

/* the week calendar's slim header */
.head.slim{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.head.slim h1{font-size:21px;margin:0;display:flex;align-items:center;gap:8px}
.tabs.slim{border:0;margin:0;gap:2px}
.tabs.slim .tab{min-height:32px;padding:4px 10px}
.head.slim .spacer{flex:1}
.wkbar{flex-wrap:wrap;row-gap:8px}
.wkbar h2{min-width:0;font-size:17px}
.wkchips{margin-left:10px}
.wkchips .chip{min-height:30px;padding:3px 10px;font-size:12.5px}

.grid td .num,.grid td .mono{font-size:12px}
.grid td .pill{font-size:12px}

/* ───────── dark mode (Settings → Appearance), the same palette as the quote editor's dark theme */
:root[data-theme="dark"]{
  --ink:#F4E9E3; --panel:#0F0708; --panel-2:#1E1012; --panel-line:#38242A; --panel-hover:#2A1719;
  --surface:#160C0D; --raised:#211416; --soft:#1C1113; --hover:#2A1A1C; --sel:#352224;
  --line:#38242A; --line-2:#4A3036; --line-soft:#2A1B1E;
  --signal:#D0675D; --signal-deep:#E48479; --signal-hover:#DC776D; --signal-tint:#3A1D1F;
  --text:#F4E9E3; --muted:#BBA39E; --faint:#8C7470; --on-panel:#F4E9E3; --on-panel-dim:#BBA39E; --on-panel-mute:#8C7470;
  --shadow:0 16px 44px rgba(0,0,0,.55);
  --c-default-bg:#2C1F21; --c-default-fg:#E6D4CE; --c-gray-bg:#2A2324; --c-gray-fg:#C9BBB8;
  --c-brown-bg:#2E211A; --c-brown-fg:#D9B39A; --c-orange-bg:#3A2416; --c-orange-fg:#F3B07E;
  --c-yellow-bg:#352B12; --c-yellow-fg:#E9CB7A; --c-green-bg:#16301F; --c-green-fg:#8FD9A8;
  --c-blue-bg:#152735; --c-blue-fg:#92BEE0; --c-purple-bg:#2A1D33; --c-purple-fg:#C9A6E4;
  --c-pink-bg:#35192A; --c-pink-fg:#EBA2C4; --c-red-bg:#3A1D1F; --c-red-fg:#F0A49C;
  --k-default:#B39A92; --k-gray:#A99B98; --k-brown:#C08E6E; --k-orange:#E8904F; --k-yellow:#D9B046;
  --k-green:#4CC27E; --k-blue:#5C9BD0; --k-purple:#A97FD0; --k-pink:#DD76A4; --k-red:#E0675C;
  --row-hover:#26181A; --well:#1A1012; --today:#241315; --glass:rgba(22,12,13,.92);
  color-scheme:dark;
}
:root[data-theme="dark"] .side{background:linear-gradient(180deg,#130A0B,#0B0506)}
:root[data-theme="dark"] .btn.primary,:root[data-theme="dark"] .tab-plus{color:#fff}
:root[data-theme="dark"] .scrim,:root[data-theme="dark"] .sheet-scrim,:root[data-theme="dark"] .chooser-scrim{background:rgba(0,0,0,.6)}
:root[data-theme="dark"] img.logo{filter:none}
/* settings: folding sections */
.settings{max-width:820px;gap:10px}
.sgroup{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:700;margin:12px 4px 0}
.sgroup:first-child{margin-top:0}
.sset{background:var(--raised);border:1px solid var(--line);border-radius:12px;overflow:clip}
.sset>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;user-select:none}
.sset>summary::-webkit-details-marker{display:none}
.sset>summary:hover{background:var(--soft)}
.sset>summary>svg{color:var(--signal);flex:none}
.sset-t{flex:1;min-width:0;display:flex;flex-direction:column}
.sset-t b{font-size:14.5px;font-family:var(--display)}
.sset-t span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sset .chev{width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 4px 4px;transition:transform .15s}
.sset[open] .chev{transform:rotate(225deg);margin-bottom:-2px}
.sset[open]>summary{border-bottom:1px solid var(--line)}
.sset-b{padding:14px 16px 16px}
.sset-b>p{margin:0 0 10px;color:var(--muted)}
.sub-h{margin:18px 0 4px;font-size:14px}
.dblist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:clip}
.dbrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border-top:1px solid var(--line)}
.dbrow:first-child{border-top:0}
.dbrow svg{color:var(--muted)}
.dbrow b{font-weight:600}
.dbrow .meta{flex:1;font-size:12px}
.updates .release{border-top:1px solid var(--line)}
/* a database's own settings */
.btn.icon.gear{width:38px;padding:0;justify-content:center}
.chooser.dbset{width:min(560px,100%);gap:12px;max-height:calc(100vh - 32px);overflow:auto}
.chooser.dbset .ch-h b{display:flex;align-items:center;gap:6px}
.dbs{border-top:1px solid var(--line);padding-top:12px}
.dbs h3{margin:0 0 8px;font-size:13px;font-family:var(--display)}
.dbs .hint{margin:6px 0 0;font-size:12px;color:var(--muted)}
.dbs .field{flex:1}
.chooser.dbset .ch-h b,.chooser.ask .ch-h b{font-family:var(--display);font-size:17px}
:root[data-theme="dark"] .chip[aria-pressed="true"],:root[data-theme="dark"] .mtab[aria-selected=true]{background:var(--signal);border-color:var(--signal);color:#fff}
:root[data-theme="dark"] .toast{background:#F4E9E3;color:#160C0D}

/* dark mode: solid red fills use the deeper red so white text on them stays easy to read */
:root[data-theme="dark"] .btn.primary,:root[data-theme="dark"] .chip[aria-pressed="true"],:root[data-theme="dark"] .mtab[aria-selected=true],:root[data-theme="dark"] .tab-plus,:root[data-theme="dark"] .wk-dh.today b,:root[data-theme="dark"] .mq.primary{background:#A8463F;border-color:#A8463F;color:#fff}
:root[data-theme="dark"] .btn.primary:hover{background:#B9554D;border-color:#B9554D}
@media (min-width:821px){ .wrap:has(> .wk){padding-block-end:14px} }

/* ───────── a touch of neumorphism: surfaces the colour of the page, lifted by a soft light edge
   (top-left) and a soft warm shadow (bottom-right); fields and tracks pressed in. Kept gentle. */
:root{
  --neu-bg:#FAF6F0;
  --neu-hi:rgba(255,255,255,.92); --neu-lo:rgba(122,82,70,.16); --neu-lo2:rgba(122,82,70,.10);
  --neu-out:-6px -6px 14px var(--neu-hi), 6px 6px 16px var(--neu-lo);
  --neu-out-sm:-3px -3px 8px var(--neu-hi), 3px 3px 9px var(--neu-lo);
  --neu-out-hov:-7px -7px 16px var(--neu-hi), 8px 8px 20px var(--neu-lo);
  --neu-in:inset 3px 3px 7px var(--neu-lo2), inset -3px -3px 7px var(--neu-hi);
  --neu-in-sm:inset 2px 2px 4px var(--neu-lo2), inset -2px -2px 4px var(--neu-hi);
  --neu-glow:0 8px 18px rgba(168,70,63,.32), -3px -3px 8px var(--neu-hi);
}
:root[data-theme="dark"]{
  --neu-bg:#1A0F11;
  --neu-hi:rgba(255,255,255,.035); --neu-lo:rgba(0,0,0,.55); --neu-lo2:rgba(0,0,0,.45);
  --neu-glow:0 8px 18px rgba(168,70,63,.35), -3px -3px 8px rgba(255,255,255,.03);
}
/* raised surfaces */
.box,.sset,.tablebox,.moneybar,.wk,.calbox,.pcard,.p-body>.sec,.p-body>.quoinbar,.biz-t,.card,div.empty,.dblist{
  background:var(--neu-bg);border-color:transparent;box-shadow:var(--neu-out)}
.tablebox,.wk,.calbox{border-radius:16px}
.box,.sset,.pcard,.p-body>.sec,.biz-t,.moneybar{border-radius:16px}
div.empty{border-style:solid}
.card{border-radius:12px;box-shadow:var(--neu-out-sm)}
.card:hover,.biz-t:hover{box-shadow:var(--neu-out-hov);background:var(--neu-bg)}
.biz-t{transition:box-shadow .18s}
.grid th{background:transparent}
.grid td,.grid th{border-bottom-color:var(--line-soft)}
.sset[open]>summary,.sset>summary:hover{background:transparent}
.sset[open]>summary{border-bottom-color:var(--line-soft)}
.dblist{box-shadow:var(--neu-in);border:0}
.dbrow{border-top-color:var(--line-soft)}
/* small controls: soft pills */
.btn:not(.primary):not(.danger):not(.ghost),.chip,.btn.icon.gear{border-color:transparent;background:var(--neu-bg);box-shadow:var(--neu-out-sm);transition:box-shadow .15s,transform .1s}
.btn:not(.primary):not(.danger):not(.ghost):hover,.chip:hover{box-shadow:var(--neu-out);background:var(--neu-bg)}
.btn:not(.primary):active,.chip:active{box-shadow:var(--neu-in-sm);transform:translateY(1px)}
.chip[aria-pressed="true"]{box-shadow:var(--neu-glow)}
.btn.primary{background:linear-gradient(135deg,var(--signal-hover),var(--signal-deep));border-color:transparent;box-shadow:var(--neu-glow)}
.btn.primary:hover{background:linear-gradient(135deg,#C2605A,var(--signal))}
.btn.primary:active{box-shadow:inset 2px 2px 6px rgba(0,0,0,.25);transform:translateY(1px)}
/* fields and tracks: pressed in */
.search,.p-body .field,.p-body select.field:not([class*="c-"]),.numform input,.numform select,.picker input,.dbs .field,textarea.body{
  background:var(--neu-bg);border-color:transparent;box-shadow:var(--neu-in)}
.search{border-radius:12px}
.search:focus-within,.p-body .field:focus,textarea.body:focus{box-shadow:var(--neu-in),0 0 0 2px var(--signal-tint)}
.seg{background:var(--neu-bg);border-color:transparent;box-shadow:var(--neu-in);border-radius:14px;padding:4px}
.seg-i{border-radius:10px}
.seg-i[aria-current="page"],.seg-i[aria-pressed="true"],.wkdays .seg-i[aria-pressed="true"]{background:var(--neu-bg);box-shadow:var(--neu-out-sm);color:var(--signal-deep)}
.col{background:var(--neu-bg);box-shadow:var(--neu-in);border-radius:14px}
/* the record page and the week grid */
.p-body .relchip{box-shadow:var(--neu-out-sm);border-color:transparent}
.wk-head{background:transparent;border-bottom-color:var(--line-soft)}
.wk-ev{box-shadow:2px 2px 6px var(--neu-lo2),-1px -1px 3px var(--neu-hi)}
.wk-dh.today b{box-shadow:var(--neu-glow)}
/* sidebar: the page you're on looks pressed in */
.nav[aria-current="page"]{box-shadow:inset 3px 3px 7px rgba(0,0,0,.32),inset -2px -2px 6px rgba(255,255,255,.05)}
/* phones */
@media (max-width:820px){
  .mcard,.mq:not(.primary),.msec .mcard{background:var(--neu-bg);border-color:transparent;box-shadow:var(--neu-out-sm)}
  .mq.primary{box-shadow:var(--neu-glow)}
  .search.m{box-shadow:var(--neu-in);border-color:transparent;background:var(--neu-bg)}
  .mtab:not([aria-selected=true]){background:var(--neu-bg);border-color:transparent;box-shadow:var(--neu-out-sm)}
}

/* ───────── v1.9.2: no orange glow; a deeper wine; sliders everywhere a choice is made */
:root{
  --wine-top:#9C3E37; --wine-bot:#7A2E29; --sel-text:#7A2E29;
  --neu-thumb:#FFFDF9;
  --neu-btn:-4px -4px 10px var(--neu-hi), 5px 5px 12px var(--neu-lo), inset 1px 1px 0 rgba(255,255,255,.2), inset -1px -1px 0 rgba(0,0,0,.14);
}
:root[data-theme="dark"]{ --wine-top:#93392F; --wine-bot:#6A2621; --sel-text:#F0A49C; --neu-thumb:#2A191B;
  --neu-btn:-3px -3px 8px rgba(255,255,255,.03), 5px 5px 12px rgba(0,0,0,.55), inset 1px 1px 0 rgba(255,255,255,.12), inset -1px -1px 0 rgba(0,0,0,.3); }
/* primary actions: a convex wine pill, neutral shadow, no coloured halo */
.btn.primary,:root[data-theme="dark"] .btn.primary{background:linear-gradient(145deg,var(--wine-top),var(--wine-bot));border-color:transparent;color:#fff;box-shadow:var(--neu-btn)}
.btn.primary:hover,:root[data-theme="dark"] .btn.primary:hover{background:linear-gradient(145deg,var(--wine-top),var(--wine-top));border-color:transparent}
.btn.primary:active{box-shadow:inset 2px 2px 6px rgba(0,0,0,.3);transform:translateY(1px)}
.mq.primary,:root[data-theme="dark"] .mq.primary{background:linear-gradient(145deg,var(--wine-top),var(--wine-bot));border-color:transparent;box-shadow:var(--neu-btn)}
.tab-plus,:root[data-theme="dark"] .tab-plus{background:linear-gradient(145deg,var(--wine-top),var(--wine-bot));box-shadow:0 4px 12px rgba(0,0,0,.35),inset 1px 1px 0 rgba(255,255,255,.2)}
.tab-i[aria-current=page] svg{color:#fff}
.wk-dh.today b,:root[data-theme="dark"] .wk-dh.today b{background:linear-gradient(145deg,var(--wine-top),var(--wine-bot));box-shadow:var(--neu-out-sm)}
.wk-dh.today span{color:var(--sel-text)}
.nav[aria-current="page"]{background:var(--panel-hover)}
/* a chosen filter chip is pressed in, not filled */
.chip[aria-pressed="true"],:root[data-theme="dark"] .chip[aria-pressed="true"]{background:var(--neu-bg);border-color:transparent;color:var(--sel-text);font-weight:650;box-shadow:var(--neu-in)}
/* sliders */
.slider{position:relative;display:inline-flex;flex-wrap:wrap;gap:2px;padding:4px;border:0;border-radius:14px;background:var(--neu-bg);box-shadow:var(--neu-in);align-self:flex-start;isolation:isolate;width:max-content;max-width:100%}
.slider>.sl-thumb{position:absolute;top:0;left:0;z-index:0;border-radius:10px;background:var(--neu-thumb);box-shadow:var(--neu-out-sm);pointer-events:none;opacity:0;
  transition:transform .34s cubic-bezier(.25,.85,.25,1),width .34s cubic-bezier(.25,.85,.25,1),height .34s,opacity .2s}
.slider>.sl-thumb.still{transition:none}
.slider>button,.slider>a{position:relative;z-index:1;background:transparent!important;box-shadow:none!important;border:0!important;border-radius:10px;margin:0;color:var(--muted);transition:color .2s}
.slider>button:hover{color:var(--text)}
.slider>[aria-selected="true"],.slider>[aria-pressed="true"],.slider>[aria-current="page"]{color:var(--text)!important;font-weight:650}
.slider>[aria-selected="true"] svg,.slider>[aria-pressed="true"] svg,.slider>[aria-current="page"] svg{color:var(--sel-text)}
.tabs.slider{border-bottom:0}
.tabs.slider .tab{border-bottom:0;margin-bottom:0;min-height:32px;padding:5px 13px}
.tabs.slider .tab[aria-selected="true"]{border-bottom-color:transparent}
@media (max-width:820px){
  .mtabs.slider{overflow:visible;margin:2px 0 0;padding:4px;gap:2px}
  .mtabs.slider .mtab{flex:none;min-height:36px;padding:7px 14px;border-radius:10px}
}
/* empty dropdowns in tables are plain again (they share a class name with the "nothing here" box) */
.grid .cellsel.empty{box-shadow:none;background:transparent;border-color:transparent}
/* a little more depth; a clearer slider marker in the dark; phone filter chips wrap instead of scrolling sideways */
:root{ --neu-lo:rgba(122,82,70,.19); --neu-lo2:rgba(122,82,70,.12); }
:root[data-theme="dark"]{ --neu-thumb:#352224; --neu-lo:rgba(0,0,0,.6); }
@media (max-width:820px){
  .chips.m{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0;gap:6px}
  .chips.m .chip{min-height:32px;padding:4px 11px;font-size:13px}
}
.head.slim{margin-bottom:6px}
/* while the quote editor / job card is open, the sidebar rests (clicking it nudges the window) */
body.studio-on .side .nav,body.studio-on .side .side-foot{opacity:.5;cursor:not-allowed}
body.studio-on .tabbar{opacity:.6}
@keyframes nudge{0%,100%{transform:translateX(0)}20%{transform:translateX(-10px)}45%{transform:translateX(8px)}70%{transform:translateX(-5px)}88%{transform:translateX(2px)}}
#studio.nudge iframe,.appwin.nudge iframe,#scanwin.nudge{animation:nudge .45s ease}
