/* ============================================================
   mgmt.aim — app shell styles (ported from the approved cockpit
   mockup, aim_mgmt-cockpit_mockup_v1). Loads AFTER aim-fonts.css
   + aim-design-system.css (which provide --aim-* tokens + Ubuntu).
   ============================================================ */
:root{
  --bg:#F4F2EF; --panel:#FFFFFF; --line:#E7E3DC; --line-soft:#EFEDE8;
  --ink:#1A1714; --sub:#75716B; --meta:#9A958D;
  --good:#16A34A; --good-bg:#E9F6EE; --warn:#D97706; --warn-bg:#FBF1E2; --bad:#DC2626; --bad-bg:#FBEAEA;
  --tint:#F7F5F1; --tint2:#F1EEE9;
  --otint:#FFF3E8; --otint2:#FFE3CE; --oline:#F5D7BC; --otext:#B24E00; --otext2:#8A4A12;
  --rtint:#FDECE8; --rline:#F0C9C1; --rtext:#B4442E;
  --faint:#C9C2B8; --faint2:#B7AFA3;
  --shadow-sm:0 1px 2px rgba(20,16,12,.05),0 1px 1px rgba(20,16,12,.04);
  --shadow-md:0 4px 16px rgba(20,16,12,.07),0 1px 3px rgba(20,16,12,.05);
  --shadow-lg:0 18px 50px rgba(20,16,12,.22);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--aim-font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
a{color:inherit;text-decoration:none}
[hidden]{display:none !important}

/* ---------------- LOGIN OVERLAY ---------------- */
.login{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 130% at 85% 8%, rgba(255,130,32,.5) 0%, rgba(255,130,32,0) 48%),
             linear-gradient(135deg,#000 0%,#181410 50%,#3d2a12 100%)}
.login-card{background:var(--panel);border-radius:14px;box-shadow:var(--shadow-lg);padding:34px 32px;width:340px;text-align:center}
.login-card .brandlock{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 0 20px}
.login-card .brandlock img{height:30px;display:block}
.login-card .env{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#E0701A;background:rgba(255,130,32,.1);border:1px solid rgba(255,130,32,.3);padding:3px 9px;border-radius:999px;line-height:1.5}
.login-card h2{font-size:16px;margin:0 0 18px;font-weight:700}
.login-card input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:14px;margin-bottom:10px;outline:0}
.login-card input:focus{border-color:#FF8220}
.login-card button{width:100%;background:var(--aim-grad-accent-diag);color:#16120E;font-weight:700;border:0;padding:12px;border-radius:8px;font-family:inherit;font-size:14px;cursor:pointer;margin-top:4px}
.login-card .err{color:var(--bad);font-size:12px;min-height:16px;margin-top:8px}
.login-card #code{text-align:center;letter-spacing:.32em;font-weight:700;font-size:17px}
.login-links{display:flex;justify-content:center;gap:8px;margin-top:12px;font-size:12px;color:var(--muted)}
.login-links a{color:var(--muted);text-decoration:none;border-bottom:1px dotted var(--line)}
.login-links a:hover{color:#E0701A;border-bottom-color:#E0701A}

/* ---------------- APP GRID ---------------- */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}

/* RAIL */
.rail{background:linear-gradient(180deg,#16120E 0%,#0C0A08 100%);color:#C9C4BD;padding:22px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.rail .brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}
.rail .brand img{height:30px}
.rail .brand .env{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;color:#FFB877;background:rgba(255,130,32,.13);border:1px solid rgba(255,130,32,.32);padding:3px 8px;border-radius:999px}
.rail .grp{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#6F6A62;padding:14px 10px 6px;font-weight:700}
.nav{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:7px;color:#B7B2AA;font-weight:500;cursor:pointer;position:relative;transition:.12s;border:0;background:none;font-family:inherit;font-size:14px;width:100%;text-align:left}
.nav svg{width:17px;height:17px;flex:0 0 auto;stroke-width:2}
.nav:hover{background:rgba(255,255,255,.05);color:#EDEAE4}
.nav.active{background:rgba(255,130,32,.12);color:#fff}
.nav.active::before{content:"";position:absolute;left:-16px;top:7px;bottom:7px;width:3px;background:var(--aim-grad-accent);border-radius:0 3px 3px 0}
.nav .tag{margin-left:auto;font-size:10.5px;font-weight:700;background:#FF8220;color:#16120E;padding:1px 7px;border-radius:999px;line-height:1.5}
.nav .tag.muted{background:rgba(255,255,255,.1);color:#C9C4BD}
.rail .foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:14px;display:flex;align-items:center;gap:10px}
.rail .foot .av{width:32px;height:32px;border-radius:50%;background:var(--aim-grad-accent-diag);color:#16120E;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.rail .foot .who{font-size:12.5px;line-height:1.25;min-width:0}
.rail .foot .who b{color:#fff;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail .foot .who span{color:#857F76;font-size:11px}
.rail .foot .out{margin-left:auto;color:#857F76;cursor:pointer;background:none;border:0;padding:4px}
.rail .foot .out svg{width:16px;height:16px}

/* MAIN */
.main{padding:0 30px 40px;max-width:1320px}
.top{display:flex;align-items:center;gap:18px;padding:24px 2px 18px;position:sticky;top:0;background:linear-gradient(180deg,var(--bg) 72%,rgba(244,242,239,0));z-index:5}
.top h1{font-size:21px;font-weight:700;margin:0;letter-spacing:-.01em}
.top .date{color:var(--sub);font-size:13px;margin-top:2px}
.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--meta);width:230px;box-shadow:var(--shadow-sm)}
.search svg{width:15px;height:15px;stroke-width:2}
.search input{border:0;outline:0;background:none;font-family:inherit;font-size:13px;color:var(--ink);width:100%}

.view{display:none}
.view.active{display:block}
.sect{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--meta);font-weight:700;margin:26px 2px 12px}

/* KPI STRIP */
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:15px 16px 13px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:9px;min-height:112px}
.kpi .lab{display:flex;align-items:center;gap:7px;color:var(--sub);font-size:11.5px;font-weight:600}
.kpi .lab svg{width:14px;height:14px;color:var(--meta)}
.kpi .val{font-size:25px;font-weight:700;letter-spacing:-.02em;line-height:1}
.kpi .val.brand{color:#E0701A}
.kpi .val.empty{color:var(--meta);font-size:18px;font-weight:600}
.kpi .sub{font-size:11px;color:var(--meta);margin-top:auto;display:flex;align-items:center;gap:4px}
.kpi-arrow{width:12px;height:12px;margin-left:auto;color:var(--meta);opacity:0;transform:translateX(-3px);transition:.14s}
.kpi.clickable{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}
.kpi.clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#E0701A}
.kpi.clickable:hover .kpi-arrow{opacity:1;transform:translateX(0);color:#E0701A}
.kpi.clickable:focus-visible{outline:2px solid #FF8220;outline-offset:2px}
.panel.clickable{cursor:pointer;transition:box-shadow .12s,border-color .12s}
.panel.clickable:hover{box-shadow:var(--shadow-md);border-color:#E7D9C8}

/* PANELS */
.grid2{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;align-items:start}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:16px}
.phead{display:flex;align-items:center;gap:10px;padding:15px 18px 13px;border-bottom:1px solid var(--line-soft)}
.phead h3{margin:0;font-size:14.5px;font-weight:700}
.phead .hint{color:var(--meta);font-size:11.5px}
.pbody{padding:16px 18px 18px}

/* tables */
table.t{width:100%;border-collapse:collapse;font-size:12.5px}
table.t th{text-align:left;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700;padding:0 12px 9px;border-bottom:1px solid var(--line)}
table.t th.r,table.t td.r{text-align:right}
table.t td{padding:11px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
table.t tbody tr:last-child td{border-bottom:0}

/* empty states */
.empty{padding:34px 18px;text-align:center;color:var(--meta)}
.empty svg{width:30px;height:30px;stroke-width:1.6;margin-bottom:10px;color:var(--faint)}
.empty b{display:block;color:var(--sub);font-weight:600;font-size:13.5px;margin-bottom:3px}
.empty span{font-size:12px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--aim-grad-accent-diag);color:#16120E;font-weight:700;border:0;padding:9px 16px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:13px}
.btn.ghost{background:var(--panel);border:1px solid var(--line);color:var(--sub)}
.btn svg{width:15px;height:15px}

.note{margin:30px 2px 0;font-size:11.5px;color:var(--meta);display:flex;align-items:center;gap:8px}
.note svg{width:14px;height:14px;flex:0 0 auto}

/* ---- ingest review ---- */
.dbadge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:#EEF;color:#445}
.dbadge.invoice{background:#E9F6EE;color:#15803D}
.dbadge.quote{background:#FBF1E2;color:#B45309}
.dbadge.timesheet{background:#EAF0FB;color:#2456C7}
.rev .phead h3{font-size:14px}
.frow{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.frow label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--sub)}
.frow input,.frow select{border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--panel);outline:0}
.frow input:focus,.frow select:focus{border-color:#FF8220}
table.edit input,table.edit select{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12.5px;width:100%;outline:0;background:var(--panel)}
table.edit input:focus,table.edit select:focus{border-color:#FF8220}
.lx{border:0;background:#F4F1EC;color:var(--bad);width:24px;height:24px;border-radius:6px;cursor:pointer;font-size:15px;line-height:1}
.revact{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.btn.sm{padding:7px 12px;font-size:12px}
.revmsg{font-size:12px;color:var(--sub)}
.warnbar{background:var(--warn-bg);border:1px solid #F0D9A8;border-left:3px solid var(--warn);color:#92600A;border-radius:7px;padding:9px 12px;font-size:12.5px;margin-bottom:12px}
.rate{display:inline-block;font-size:12px;font-weight:600;background:#F4F1EC;border-radius:999px;padding:4px 10px;margin:2px 2px 2px 0}
.rate.q{background:#FBF1E2;color:#92600A}
.rate i{font-style:normal;font-size:10px;opacity:.7}

/* PO rows (cockpit + POs view) */
.po{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.po:last-child{border-bottom:0}
.po .ico{width:36px;height:36px;border-radius:8px;background:#F4F1EC;display:flex;align-items:center;justify-content:center;color:var(--sub);flex:0 0 auto}
.po .ico svg{width:17px;height:17px;stroke-width:2}
.po .meta{min-width:0}
.po .meta b{font-weight:600;font-size:12.5px}
.po .meta span{display:block;color:var(--meta);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.po .amt{margin-left:auto;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;font-size:13px;flex:0 0 auto}
.po .amt span{display:block;font-size:10px;color:var(--meta);font-weight:600}

.bigfig{padding:6px 2px}
.bigfig .num{font-size:30px;font-weight:700;letter-spacing:-.02em;color:#E0701A}
.bigfig span{display:block;color:var(--sub);font-size:12px;margin-top:4px}
.po .btn.sm,.po .flag{margin-left:12px;flex:0 0 auto}

/* ---- Aimy assistant ---- */
.aimy-fab{position:fixed;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;z-index:60;
  background:var(--aim-grad-accent-diag);color:#16120E;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(255,130,32,.45),0 2px 6px rgba(0,0,0,.2)}
.aimy-fab svg{width:25px;height:25px}
.aimy-fab::before{content:"";position:absolute;inset:0;border-radius:50%;background:#FF8220;z-index:-1;animation:aimypulse 2.2s ease-out infinite}
@keyframes aimypulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.7);opacity:0}100%{opacity:0}}
.aimy-fab:hover{filter:brightness(1.04);transform:translateY(-1px)}

.aimy-panel{position:fixed;right:24px;bottom:24px;width:380px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 48px);
  background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(20,16,12,.28);z-index:61;display:flex;flex-direction:column;overflow:hidden}
.aimy-head{display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(180deg,#16120E,#0C0A08);color:#fff}
.aimy-id{display:flex;align-items:center;gap:10px}
.aimy-id b{font-weight:700;font-size:14px;display:block;line-height:1.1}
.aimy-id span:last-child{font-size:11px;color:#9A958D}
.aimy-dot{width:9px;height:9px;border-radius:50%;background:#34D399;box-shadow:0 0 0 3px rgba(52,211,153,.2)}
.aimy-head-btns{margin-left:auto;display:flex;align-items:center;gap:6px}
.aimy-x{background:none;border:0;color:#9A958D;font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.aimy-x:hover{color:#fff}
.aimy-callbtn{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--orange,#FF8220);border:1px solid var(--orange,#FF8220);color:#fff;cursor:pointer;padding:0;box-shadow:0 1px 4px rgba(255,130,32,.45);animation:callpulse 2.4s ease-in-out infinite}
.aimy-callbtn svg{width:18px;height:18px}
.aimy-callbtn:hover{filter:brightness(1.06)}
.aimy-callbtn:active{transform:scale(.94)}
@keyframes callpulse{0%,100%{box-shadow:0 1px 4px rgba(255,130,32,.45)}50%{box-shadow:0 1px 4px rgba(255,130,32,.45),0 0 0 5px rgba(255,130,32,.16)}}
/* voice overlay — sits over the message list while a call is live */
.aimy-voice{position:absolute;left:0;right:0;top:54px;bottom:0;z-index:5;background:radial-gradient(120% 80% at 50% 28%,#1B1611,#0C0A08);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}
.av-end{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#DC2626;border:0;color:#fff;cursor:pointer}
.av-end svg{width:20px;height:20px}
.av-orb{position:relative;width:128px;height:128px;display:grid;place-items:center}
.av-orb span{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#FFB066,var(--orange,#FF8220));box-shadow:0 0 44px rgba(255,130,32,.5)}
.av-orb span:nth-child(2),.av-orb span:nth-child(3){background:rgba(255,130,32,.32);box-shadow:none;animation:avring 2.4s ease-out infinite}
.av-orb span:nth-child(3){animation-delay:1.2s}
@keyframes avring{0%{transform:scale(.7);opacity:.7}100%{transform:scale(1.9);opacity:0}}
/* listening = gentle breathe; thinking = quick pulse; speaking = lively bob */
.av-orb[data-state="listening"] span:first-child{animation:avbreathe 2.6s ease-in-out infinite}
.av-orb[data-state="thinking"] span:first-child{animation:avpulse .9s ease-in-out infinite}
.av-orb[data-state="thinking"] span:nth-child(2),.av-orb[data-state="thinking"] span:nth-child(3),
.av-orb[data-state="idle"] span:nth-child(2),.av-orb[data-state="idle"] span:nth-child(3){animation-play-state:paused;opacity:0}
.av-orb[data-state="speaking"] span:first-child{animation:avbob .5s ease-in-out infinite}
@keyframes avbreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes avpulse{0%,100%{transform:scale(.9)}50%{transform:scale(1.12)}}
@keyframes avbob{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
.av-state{color:#fff;font-weight:600;font-size:15px}
.av-line{color:var(--faint);font-size:13px;line-height:1.5;max-width:300px;min-height:20px;font-style:italic}
.av-hint{position:absolute;bottom:18px;left:0;right:0;color:#8A847B;font-size:11px;padding:0 24px}
.aimy-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.amsg{max-width:85%;padding:10px 13px;border-radius:13px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.amsg.bot{align-self:flex-start;background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--ink)}
.amsg.user{align-self:flex-end;background:var(--aim-grad-accent-diag);color:#16120E;font-weight:500;border-bottom-right-radius:4px}
.amsg b{font-weight:700}
.amsg ul{margin:6px 0;padding-left:18px}
.amsg li{margin:2px 0}
.amsg code{background:var(--soft,#F3F1EC);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:12px}
.amsg.typing{display:flex;gap:4px;align-items:center}
.amsg.typing i{width:6px;height:6px;border-radius:50%;background:var(--meta);animation:atype 1s infinite}
.amsg.typing i:nth-child(2){animation-delay:.15s}.amsg.typing i:nth-child(3){animation-delay:.3s}
@keyframes atype{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.aimy-sugg{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px;background:var(--bg)}
.aimy-sugg button{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 11px;font-family:inherit;font-size:11.5px;color:#4a4540;cursor:pointer}
.aimy-sugg button:hover{border-color:#E0701A;color:#B5560E}
.aimy-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--panel);align-items:flex-end}
.aimy-input textarea{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.4;outline:0;resize:none;max-height:120px;overflow-y:auto}
.aimy-input textarea:focus{border-color:#FF8220}
.aimy-input button{width:40px;height:40px;border:0;border-radius:10px;background:var(--aim-grad-accent-diag);color:#16120E;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.aimy-input button svg{width:18px;height:18px}
.aimy-input button:disabled{opacity:.5;cursor:default}

/* ---- rate library category pills ---- */
.catbar{display:flex;flex-wrap:wrap;gap:7px;margin:0 2px 14px}
.catpill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:600;color:var(--sub);cursor:pointer;transition:.1s}
.catpill:hover{filter:brightness(.97)}
.catpill.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.catpill b{font-weight:700;opacity:.7;font-size:11px}
.catpill .cdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.cattag{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:999px;margin-top:5px}
.catbar.sup{margin-top:-4px}
.filt-lbl{font-size:10px;color:var(--meta);font-weight:700;text-transform:uppercase;letter-spacing:.07em;align-self:center;margin-right:4px}
.catbar.sup .catpill{color:var(--sub)}
.catbar.sup .catpill.active{background:var(--ink);color:#fff;border-color:var(--ink)}
/* supplier / price split in the rate cell */
.suprates{min-width:280px}
.suprate{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 2px;border-bottom:1px solid var(--line-soft)}
.suprate:last-child{border-bottom:0}
.suprate .supname{color:var(--sub);font-weight:600;font-size:12.5px}
.suprate-r{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.suprate .supprice{font-weight:700;font-variant-numeric:tabular-nums;color:#16120E;font-size:14px;white-space:nowrap}
.suprate .supdate{font-size:10px;color:var(--meta);font-weight:600;font-variant-numeric:tabular-nums}
.suprate.q .supprice{color:#92600A}
.suprate .qt{font-size:9px;color:#B5560E;background:#FBF1E2;border-radius:3px;padding:1px 5px;margin-left:6px;font-weight:700;text-transform:uppercase;vertical-align:1px}

/* ---- PDF upload zone ---- */
.uploadzone{border:1.5px dashed var(--faint);border-radius:12px;background:var(--panel);padding:15px 18px;margin:0 2px 16px;cursor:pointer;transition:.12s}
.uploadzone:hover{border-color:#C2A887;background:#FCFBF9}
.uploadzone.drag{border-color:#FF8220;background:#FFF7EF}
.uz-inner{display:flex;align-items:center;gap:13px}
.uz-inner svg{width:25px;height:25px;color:#B5560E;flex:0 0 auto;stroke-width:1.8}
.uz-inner b{display:block;font-size:14px;color:var(--ink)}
.uz-inner span{font-size:12.5px;color:var(--meta)}
.uz-msg{font-size:12.5px;margin-top:9px;font-weight:600}
.uz-msg:empty{display:none}

.clickrow{cursor:pointer}
.clickrow:hover td,.clickrow:focus td{background:#FBF7F0}
.clickrow:focus{outline:none}
.clickrow:hover td:last-child{color:#E0701A}

/* job autocomplete */
.po-form{overflow:visible}
.ac{position:relative}
.ac-list{position:absolute;top:100%;left:0;right:0;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(20,16,12,.16);margin-top:3px;max-height:240px;overflow-y:auto}
.ac-item{padding:8px 11px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--line-soft)}
.ac-item:last-child{border-bottom:0}
.ac-item:hover{background:#FBF7F0}
.ac-item b{font-weight:600;display:block}
.ac-item span{font-size:11px;color:var(--meta)}

/* Aimy pasted-image thumbnails (staged before send) */
.aimy-thumbs{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px 0}
.aimy-thumbs[hidden]{display:none}
.aimy-thumb{position:relative;width:52px;height:52px;border-radius:9px;overflow:hidden;border:1px solid var(--line);background:var(--panel);flex:0 0 auto}
.aimy-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.aimy-thumb button{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#16120E;color:#fff;border:2px solid #fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
/* images inside a sent chat bubble */
.amsg .amsg-imgs{display:flex;flex-wrap:wrap;gap:6px}
.amsg .amsg-imgs:not(:only-child){margin-bottom:6px}
.amsg .amsg-imgs img{max-width:160px;max-height:160px;border-radius:8px;display:block}

/* Aimy voice / attach buttons */
.aimy-input .aimy-clip{background:#F4F1EC;color:var(--sub);border:1px solid var(--line)}
.aimy-input .aimy-clip svg{width:18px;height:18px}
.aimy-input .aimy-mic{background:#F4F1EC;color:var(--sub);border:1px solid var(--line)}
.aimy-input .aimy-mic svg{width:18px;height:18px}
.aimy-input .aimy-mic.rec{background:#DC2626;color:#fff;border-color:#DC2626;animation:micpulse 1.2s infinite}
.aimy-input .aimy-mic.busy{opacity:.5;pointer-events:none;animation:micspin .8s linear infinite}
@keyframes micspin{to{transform:rotate(360deg)}}
@keyframes micpulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}70%{box-shadow:0 0 0 7px rgba(220,38,38,0)}}

/* ---------------- iOS / mobile ---------------- */
html{-webkit-text-size-adjust:100%}
*{-webkit-tap-highlight-color:transparent}
.menu-btn{display:none}
.rail-overlay{display:none}

@media (max-width:760px){
  .app{grid-template-columns:1fr}
  /* off-canvas nav drawer */
  .rail{position:fixed;top:0;left:0;bottom:0;width:270px;max-width:84vw;transform:translateX(-100%);transition:transform .25s ease;z-index:90;
    padding-top:calc(22px + env(safe-area-inset-top));box-shadow:0 0 44px rgba(0,0,0,.45)}
  .app.nav-open .rail{transform:none}
  .rail-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80}
  .menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);background:var(--panel);border-radius:9px;color:var(--ink);flex:0 0 auto;box-shadow:var(--shadow-sm);cursor:pointer}
  .menu-btn svg{width:20px;height:20px}
  /* main + sticky header with notch padding */
  .main{padding:0 14px calc(28px + env(safe-area-inset-bottom));max-width:none}
  .top{padding:calc(12px + env(safe-area-inset-top)) 0 12px;gap:12px}
  .top h1{font-size:19px}
  .top .date{font-size:11.5px}
  .search{display:none}
  /* cockpit */
  .kpis{grid-template-columns:repeat(2,1fr);gap:10px}
  .kpi{min-height:92px}
  .grid2{grid-template-columns:1fr}
  /* forms stack */
  .frow{flex-direction:column;gap:11px}
  .frow label,.frow input,.frow select{width:100%}
  .revact{flex-wrap:wrap}
  /* tables scroll sideways instead of squashing */
  .panel .pbody{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.t{min-width:520px}
  table.edit{min-width:560px}
  /* 16px inputs so iOS doesn't zoom on focus */
  input,select,textarea{font-size:16px !important}
  /* Aimy as a bottom sheet */
  .aimy-fab{right:16px;bottom:calc(18px + env(safe-area-inset-bottom))}
  .aimy-panel{left:0;right:0;bottom:0;width:auto;max-width:none;height:86dvh;max-height:calc(100dvh - env(safe-area-inset-top) - 8px);border-radius:18px 18px 0 0}
  .aimy-input{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  /* tidy spacing */
  .sect{margin:20px 2px 10px}
  .catbar{gap:6px}
}

/* skeleton while auth resolves */
.booting{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:40}
.booting img{height:30px;opacity:.5;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:.7}}

.uploadzone .lk{color:var(--orange,#FF8220);cursor:pointer;text-decoration:underline}
.payee-form .warnbar{font-size:12px;border-radius:8px;padding:8px 10px;margin:6px 0 10px;border:1px solid}

/* ============================================================ MEETINGS */
.mtop{display:flex;align-items:center;justify-content:space-between;margin:26px 2px 12px}
.mtop .sect{margin:0}
.btn.danger{background:var(--panel);border:1px solid var(--rline);color:var(--rtext)}
.spin{display:inline-block;width:11px;height:11px;margin-right:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-1px;animation:mspin .7s linear infinite}
@keyframes mspin{to{transform:rotate(360deg)}}
.chip{display:inline-block;font-size:11.5px;background:#F4F1EC;color:var(--sub);border-radius:999px;padding:4px 10px;margin:0 5px 5px 0}
.muted{color:var(--meta)}

/* meeting list rows */
.mlist{display:flex;flex-direction:column}
.mrow{display:flex;align-items:center;gap:14px;padding:13px 12px;border-radius:9px;cursor:pointer;transition:background .12s}
.mrow:hover{background:#FAF8F5}
.mrow+.mrow{border-top:1px solid var(--line-soft)}
.mrow-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.mrow-main b{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrow-main span{font-size:12px;color:var(--meta)}
.mrow-side{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto;text-align:right}
.mrow-meta{font-size:11.5px;color:var(--meta)}

/* status chips */
.mstat{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.02em;padding:4px 9px;border-radius:999px;white-space:nowrap}
.mstat.ok{background:#E7F5EC;color:#1E7A44}
.mstat.err{background:#FBEBE7;color:var(--rtext)}
.mstat.proc,.mstat.up{background:#FBF1E2;color:#92600A}
.mstat.rec{background:#FDEAEA;color:#C4362B}

/* modal */
.mmodal-ov{position:fixed;inset:0;background:rgba(22,18,14,.44);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:120;padding:18px}
.mmodal{background:var(--panel);border-radius:14px;box-shadow:var(--shadow-lg);width:440px;max-width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.mmodal.wide{width:620px}
.mmodal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line-soft);flex:0 0 auto}
.mmodal-h b{font-size:15px}
.mmodal-x{background:none;border:0;font-size:24px;line-height:1;color:var(--meta);cursor:pointer;padding:0 4px}
.mmodal-b{padding:18px 20px;overflow-y:auto}
.mfield{display:block;margin-bottom:13px}
.mfield span{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--meta);font-weight:700;margin-bottom:5px}
.mfield input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:15px;outline:0}
.mfield input:focus{border-color:#FF8220}
.mcapture{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.mcap-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:15px 15px;border:1px solid var(--line);border-radius:11px;background:var(--panel);cursor:pointer;transition:.14s;font-family:inherit}
.mcap-btn svg{width:22px;height:22px;margin-bottom:4px}
.mcap-btn b{font-size:13.5px}
.mcap-btn span{font-size:11px;color:var(--meta);line-height:1.35}
.mcap-btn.rec{border-color:#F3C6BF}.mcap-btn.rec svg{color:#C4362B}
.mcap-btn.up svg{color:#FF8220}
.mcap-btn:hover{background:#FAF8F5;transform:translateY(-1px)}

/* recorder bar */
.recbar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:#16120E;color:#fff;padding:11px 14px;border-radius:12px;box-shadow:var(--shadow-lg);z-index:130;max-width:calc(100vw - 24px)}
.recdot{width:11px;height:11px;border-radius:50%;background:#F44;animation:mpulse 1.1s ease-in-out infinite;flex:0 0 auto}
@keyframes mpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
.recinfo{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.recinfo b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.recinfo span{font-size:12px;color:#C9C4BC;font-variant-numeric:tabular-nums}
.recbar .btn.ghost{background:transparent;border-color:#3A342E;color:#C9C4BC}

/* meeting detail */
.md-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.md-head h2{font-size:19px;margin:0 0 3px}
.md-sub{font-size:12.5px;color:var(--meta)}
.md-att{margin:12px 0 4px}
.md-note{background:#FBF1E2;color:#92600A;border-radius:8px;padding:11px 13px;font-size:13px;margin:14px 0}
.md-note.err{background:#FBEBE7;color:var(--rtext)}
.md-summary{line-height:1.55;margin:14px 0 4px;font-size:14.5px}
.md-sec{margin-top:18px}
.md-sec h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#FF8220;font-weight:700;margin:0 0 9px;border-bottom:2px solid #FF8220;display:inline-block;padding-bottom:3px}
.md-sec ul{margin:0;padding-left:19px}
.md-sec li{margin:0 0 7px;line-height:1.5}
table.mact{width:100%}
table.mact td:nth-child(2),table.mact td:nth-child(3){white-space:nowrap;color:var(--sub)}
.md-trans{margin-top:18px;border-top:1px solid var(--line-soft);padding-top:12px}
.md-trans summary{cursor:pointer;font-size:12.5px;color:var(--sub);font-weight:600}
.md-trans pre{white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.55;color:var(--sub);margin:11px 0 0;max-height:320px;overflow-y:auto}
.md-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px;padding-top:16px;border-top:1px solid var(--line-soft)}
.md-qa{border-top:1px solid var(--line-soft);padding-top:14px}
.qa-item{margin:0 0 12px}
.qa-q{font-weight:600;font-size:13.5px;line-height:1.45}
.qa-q::before{content:"Q";display:inline-block;font-size:10px;font-weight:700;color:#FF8220;border:1px solid #FF8220;border-radius:4px;padding:0 4px;margin-right:7px;vertical-align:1px}
.qa-a{margin-top:5px;font-size:13.5px;line-height:1.55;color:var(--sub);white-space:pre-wrap}
.qa-meta{font-size:11px;color:var(--meta);margin-top:3px}
.qa-ask{display:flex;gap:8px;margin-top:4px}
.qa-ask input{flex:1;border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--panel);outline:0}
.qa-ask input:focus{border-color:var(--faint2)}
.qa-err{font-size:12px;color:var(--rtext,#B3261E);margin-top:6px;min-height:0}
.spk-hint{font-size:12.5px;color:var(--sub);margin:-2px 0 12px}
.spk-row{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px}
.spk-lab{flex:0 0 84px;font-size:11px;font-weight:700;color:var(--sub);border:1px solid var(--line);border-radius:6px;padding:6px 8px;text-align:center;background:var(--bg);margin-top:2px}
.spk-mid{flex:1;min-width:0}
.spk-quote{font-size:12px;color:var(--meta);font-style:italic;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spk-in{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--panel);outline:0;box-sizing:border-box}
.spk-in:focus{border-color:var(--faint2)}
.spk-foot{display:flex;align-items:center;gap:10px;margin-top:4px}
.clar-hint{font-size:12.5px;color:var(--sub);margin:-2px 0 13px}
.clar-unc{margin:0 0 13px}
.clar-q{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.45;margin-bottom:6px}
.clar-q::before{content:"?";display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;font-size:11px;font-weight:800;color:#fff;background:#E0701A;border-radius:5px;margin-right:8px;vertical-align:1px}
.clar-note{font-weight:400;color:var(--meta)}
.clar-ask{display:flex;gap:8px}
.clar-ask input{flex:1;border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--panel);outline:0}
.clar-ask input:focus{border-color:var(--faint2)}
.clar-general{margin-top:12px}
.clar-done{margin:2px 0 12px}
.clar-item{border-left:3px solid #16A34A;background:var(--bg);border-radius:0 8px 8px 0;padding:8px 12px;margin:0 0 8px}
.clar-c{font-size:13.5px;line-height:1.5;color:var(--ink)}
.clar-meta{font-size:11px;color:var(--meta);margin-top:3px}
.clar-reana{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.clar-reana-note{font-size:11.5px;color:var(--meta)}

@media(max-width:560px){
  .mmodal{width:100%;max-height:92vh}
  .mcapture{grid-template-columns:1fr}
  .mrow-main b{max-width:52vw}
}

/* Do Not Disturb reminder before recording */
.dnd{text-align:center;padding:8px 6px 4px}
.dnd-ic{width:52px;height:52px;margin:4px auto 14px;border-radius:50%;background:#FDEAEA;display:flex;align-items:center;justify-content:center}
.dnd-ic svg{width:26px;height:26px;color:#C4362B}
.dnd b{font-size:16px;display:block;margin-bottom:8px}
.dnd p{font-size:13px;color:var(--sub);line-height:1.55;margin:0 auto 20px;max-width:340px}
.dnd-btns{display:flex;gap:10px;justify-content:center}

/* custom autocomplete (replaces unreadable native datalist) */
.ac-wrap{position:relative}
.ac-menu{position:absolute;top:100%;left:0;right:0;z-index:10;margin-top:4px;background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow-lg);overflow:hidden;max-height:220px;overflow-y:auto}
.ac-item{padding:9px 12px;font-size:14px;color:var(--ink);cursor:pointer;line-height:1.2}
.ac-item+.ac-item{border-top:1px solid var(--line-soft)}
.ac-item:hover,.ac-item.sel{background:#FBF1E2;color:#16120E}

/* autocomplete: Google Maps remote suggestions */
.ac-divider{padding:6px 12px 4px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--meta);font-weight:700;background:#FAF8F5;border-top:1px solid var(--line-soft)}
.ac-item.ac-remote{display:flex;align-items:center;gap:8px}
.ac-item.ac-remote svg{width:15px;height:15px;color:#FF8220;flex:0 0 auto}

/* ============================================================ PROJECT STATUS BOARD */
.ptop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 2px 14px;flex-wrap:wrap}
.pdim{color:var(--meta);font-weight:600;letter-spacing:0;text-transform:none;font-size:11.5px}
.ptop-r{display:flex;align-items:center;gap:10px}
.ssort{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.sbtn{border:0;background:transparent;color:var(--sub);font-family:inherit;font-size:12px;font-weight:600;padding:7px 11px;cursor:pointer}
.sbtn+.sbtn{border-left:1px solid var(--line)}
.sbtn.on{background:#FBF1E2;color:#92600A}
.sbtn:hover:not(.on){background:#FAF8F5}

.psec{margin-bottom:26px}
.psec-h{display:flex;align-items:center;gap:9px;margin:0 2px 12px}
.psec-h b{font-size:14px}
.pdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.psec-n{color:var(--meta);font-size:12px;margin-left:2px}
.psec-n .redn{color:var(--bad);font-weight:700}

.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}

.pcard{position:relative;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);padding:14px 15px 12px;display:flex;flex-direction:column;gap:9px}
.pcard.fresh{border-left-color:var(--good)}
.pcard.amber{border-left-color:var(--warn)}
.pcard.red{border-left-color:var(--bad)}
.pcard.unsorted{border-left-color:var(--meta);background:#FCFBF9}
.pcard.closed{opacity:.62}
.pc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pc-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.pc-title b{font-size:14.5px;font-weight:700;line-height:1.25}
.pbadge{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:999px}
.pbadge.unclear{background:var(--warn-bg);color:#92600A}
.pbadge.cl{background:#EEECE8;color:var(--sub)}
.pstale{flex:0 0 auto;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:#EEECE8;color:var(--sub)}
.pstale.fresh{background:var(--good-bg);color:#1E7A44}
.pstale.amber{background:var(--warn-bg);color:#92600A}
.pstale.red{background:var(--bad-bg);color:#B4231F}

.pwait{font-size:12.5px;font-weight:650;padding:8px 10px;border-radius:8px;line-height:1.35}
.pwait.block{background:var(--warn-bg);color:#8A5A08}
.pwait.clear{background:var(--good-bg);color:#1E7A44}

.pc-body{display:flex;flex-direction:column;gap:7px}
.pf{display:grid;grid-template-columns:74px 1fr;gap:9px;align-items:baseline}
.pfl{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);padding-top:1px}
.pfv{font-size:12.8px;color:var(--ink);line-height:1.4}

.pc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line-soft);padding-top:9px;margin-top:1px}
.pc-meta{font-size:11px;color:var(--meta)}
.pc-acts{display:flex;align-items:center;gap:12px}
.lnk{border:0;background:transparent;color:var(--sub);font-family:inherit;font-size:11.5px;font-weight:650;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:4px}
.lnk:hover{color:var(--ink)}
.lnk.pc-del:hover{color:var(--bad)}
.chev{display:inline-block;transition:transform .15s}
.chev.up{transform:rotate(180deg)}

.pc-threads{margin-top:2px;border-top:1px dashed var(--line);padding-top:10px;display:flex;flex-direction:column;gap:10px}
.thd{background:#FAF8F5;border:1px solid var(--line-soft);border-radius:9px;padding:9px 10px}
.thd-h{margin-bottom:6px}
.thd-h b{font-size:12.5px;font-weight:700;display:block;line-height:1.3}
.thd-h span{font-size:10.5px;color:var(--meta)}
.tmsg{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:baseline;padding:4px 0;font-size:11.5px;line-height:1.35}
.tmsg+.tmsg{border-top:1px solid var(--line-soft)}
.tmdir{display:inline-flex;align-items:center;gap:3px;font-weight:700;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.tmdir svg{width:12px;height:12px;flex:0 0 auto}
.tmdir.out{color:#B4600A}
.tmdir.in{color:#1E7A44}
.tmdate{color:var(--meta);white-space:nowrap;font-variant-numeric:tabular-nums}
.tmprev{color:var(--sub);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tmopen{color:#C56A12;font-weight:700;text-decoration:none;white-space:nowrap}
.tmopen:hover{text-decoration:underline}

.pclosed{margin-top:14px}
.pclosed>summary{cursor:pointer;font-size:12px;font-weight:650;color:var(--sub);list-style:none;padding:6px 2px}
.pclosed>summary::-webkit-details-marker{display:none}
.pclosed>summary:before{content:"▸ ";color:var(--meta)}
.pclosed[open]>summary:before{content:"▾ "}
.pclosed>.pgrid{margin-top:10px}

@media(max-width:560px){.pgrid{grid-template-columns:1fr}.tmsg{grid-template-columns:auto 1fr;gap:4px 8px}.tmdate{grid-column:2}.tmprev{grid-column:1/-1;white-space:normal}.tmopen{grid-column:2;justify-self:end}}

/* AIM Properties & Investments — inbox EA module */
.prop-row1{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}
.prop-subj{font-size:14px;line-height:1.3;letter-spacing:-.01em}
.prop-meta{font-size:12px;color:var(--meta);line-height:1.45}
.prop-sum{font-size:13px;color:var(--sub);line-height:1.5}
.prop-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px}
.prop-acts .btn{padding:5px 10px;font-size:12.5px}
.prop-hasdraft{font-size:12px;color:var(--good);font-weight:600}
.prop-draftbody{background:var(--tint);border:1px solid var(--line-soft);border-radius:9px;padding:9px 11px;font-size:13px;line-height:1.55;color:var(--ink);white-space:pre-wrap;max-height:220px;overflow:auto}
.prop-draftbody.editing{background:var(--panel);border-color:#FF8220;outline:none}
.prop-action{border-bottom:1px solid var(--line-soft)}
.prop-action:last-child{border-bottom:0}
.prop-action-main{display:flex;align-items:center;gap:10px;padding:9px 4px;cursor:pointer;border-radius:8px}
.prop-action-main:hover{background:var(--tint)}
.prop-action .prop-tick{width:17px;height:17px;accent-color:#FF8220;flex:0 0 auto;cursor:pointer}
.prop-caret{flex:0 0 auto;display:flex;color:var(--meta)}
.prop-caret svg{width:15px;height:15px;transition:transform .15s}
.prop-action.open .prop-caret svg{transform:rotate(180deg)}
.prop-action-detail{padding:0 6px 12px 34px}
.pa-ctx{background:var(--tint);border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}
.pa-ctx-h b{font-size:13px;font-weight:650;letter-spacing:-.01em}
.pa-ctx-meta{font-size:12px;color:var(--meta)}
.pa-ctx-sum{font-size:12.5px;color:var(--sub);line-height:1.5}
.pa-ctx-snip{font-size:12px;color:var(--meta);line-height:1.5;border-left:2px solid var(--line);padding-left:8px;white-space:pre-wrap}
.pa-ctx-acts{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}
.prop-atext{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.prop-atext b{font-size:13.5px;font-weight:600}
.prop-atext span{font-size:12px;color:var(--meta)}
.prop-due{font-size:12px;color:var(--sub);font-weight:600;flex:0 0 auto}
.prop-due.over,.prop-action.over .prop-atext b{color:var(--bad)}
.prop-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.prop-doc{cursor:pointer;gap:5px;transition:box-shadow .12s,transform .12s}
.prop-doc:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.prop-docname{font-size:13px;line-height:1.3;word-break:break-word}
@media(max-width:560px){.prop-docs{grid-template-columns:1fr 1fr}}

/* section accent — the card/row belongs to AIM (orange) or AIM-ECO (green), obvious at a glance */
.pcard.sec-aim{border-left-color:#FF8220;border-left-width:4px}
.pcard.sec-eco{border-left-color:#16A34A;border-left-width:4px}
.pcard.unsorted{border-left-color:var(--meta);border-left-width:3px}
.pdot2{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.pdot2.sec-aim{background:#FF8220}
.pdot2.sec-eco{background:#16A34A}
.pcard.unsorted .pdot2{background:var(--meta)}

/* table view */
.ptbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-sm)}
.ptbl{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.ptbl thead th{text-align:left;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.ptbl thead th.tnum{text-align:right}
.ptr{cursor:pointer}
.ptr>td{padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top;border-left:0}
.ptr>td.tname{border-left:3px solid transparent}
.ptr.sec-aim>td.tname{border-left-color:#FF8220}
.ptr.sec-eco>td.tname{border-left-color:#16A34A}
.ptr:hover{background:#FAF8F5}
.ptr.open{background:#FBF6EF}
.ptr.closed{opacity:.6}
.tname{white-space:nowrap}
.tname b{font-weight:650;font-size:13.5px}
.tname .pdot2{display:inline-block;vertical-align:middle;margin-right:7px}
.tname .pbadge{margin-left:6px}
.tname .chev{margin-left:8px;color:var(--meta)}
.twait{font-weight:650;font-size:12px;padding:3px 8px;border-radius:6px;display:inline-block;white-space:normal}
.twait.block{background:var(--warn-bg);color:#8A5A08}
.twait.clear{background:var(--good-bg);color:#1E7A44}
.tlatest{color:var(--sub);max-width:380px;line-height:1.4}
.ptbl td.tnum{text-align:right;white-space:nowrap}
.tdate{display:block;font-size:11px;color:var(--meta);margin-top:4px}
.ptr-exp>td{padding:2px 14px 14px 17px;background:#FBF6EF;border-bottom:2px solid var(--line)}
.ptr-exp .pc-body{padding-top:10px}
.ptr-exp .pc-threads{border-top:1px dashed var(--line);padding-top:10px;margin-top:4px;display:flex;flex-direction:column;gap:10px}
.pc-acts.tbl{display:flex;gap:16px;padding:8px 0 4px}

/* completed / invoiced state */
.pbadge.inv{background:var(--good-bg);color:#1E7A44}
.pbadge.noinv{background:#FCE8D8;color:#B4600A}
.pbadge.na{background:#EEECE8;color:var(--sub)}
.pcard.completed{background:#FCFCFB}
.pcard.completed.noinv{box-shadow:inset 3px 0 0 #E8912F,var(--shadow-sm)}
.pdone>summary .redn{font-weight:700}
/* mark-complete dialog */
.cmp-q{font-size:14px;color:var(--ink);line-height:1.45;margin:2px 0 14px}
.cmp-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.cmp-opt{display:flex;flex-direction:column;gap:1px;text-align:left;padding:12px 13px;border-radius:10px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-family:inherit}
.cmp-opt b{font-size:13.5px;color:var(--ink)}
.cmp-opt span{font-size:11.5px;color:var(--meta)}
.cmp-opt.yes:hover{border-color:#16A34A;background:var(--good-bg)}
.cmp-opt.no:hover{border-color:#D97706;background:var(--warn-bg)}
.cmp-opt.na:hover{border-color:var(--meta);background:#F4F2EF}
.cmp-opt:disabled{opacity:.5;cursor:default}

/* ask-about-a-project search */
.psearch{margin:2px 2px 22px}
.psearch-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.psearch-in{flex:1;min-width:240px;display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:0 12px;box-shadow:var(--shadow-sm)}
.psearch-in svg{width:17px;height:17px;color:var(--meta);flex:0 0 auto}
.psearch-in input{flex:1;border:0;outline:0;background:transparent;font-family:inherit;font-size:14px;color:var(--ink);padding:11px 0}
.psearch-in input::placeholder{color:var(--meta)}
.psearch-scope{flex:0 0 auto}
.ps-loading{margin-top:13px;color:var(--sub);font-size:13px;display:flex;align-items:center;gap:8px}
.ps-empty{margin-top:13px;color:var(--sub);font-size:13px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
#psResult .ps-card{margin-top:14px;border-left:4px solid #FF8220}
.ps-scope{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--meta);background:var(--tint2);padding:2px 8px;border-radius:999px}

/* ---------------- Tasks (Motion replacement) ---------------- */
.tk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.tk-toggle{display:flex;gap:6px}
.tk-status{font-size:12px;color:var(--meta);min-height:1em}
.tk-add{display:flex;gap:8px;align-items:center;padding:10px 12px;margin-bottom:16px;flex-wrap:wrap}
.tk-add input,.tk-add select{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-family:inherit;font-size:13.5px;background:var(--panel);color:var(--ink)}
.tk-add #tkTitle{flex:1;min-width:180px;font-size:16px}
.tk-add #tkDue{color:var(--sub)}
.tk-group{margin-bottom:18px}
.tk-ghead{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--meta);margin:0 2px 8px;display:flex;gap:8px;align-items:baseline}
.tk-ghead span{font-weight:600;letter-spacing:0;text-transform:none;color:var(--meta);opacity:.8}
.tk-donehead{cursor:pointer}
.tk-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:7px;cursor:default}
.tk-row.done{opacity:.55}
.tk-row.done .tk-title{text-decoration:line-through}
.tk-check{flex:0 0 auto;width:22px;height:22px;border-radius:7px;border:2px solid var(--faint);background:var(--panel);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:.12s}
.tk-check:hover{border-color:#FF8220}
.tk-check.on{background:#1B9C57;border-color:#1B9C57;color:#fff}
.tk-check svg{width:13px;height:13px}
.tk-main{flex:1;min-width:0;cursor:pointer}
.tk-title{font-weight:650;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.tk-pill{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px}
.tk-pill.p-asap{background:var(--rtext);color:#fff}
.tk-pill.p-high{background:var(--otint2);color:var(--otext)}
.tk-pill.p-medium{background:var(--tint2);color:var(--sub)}
.tk-pill.p-low{background:var(--tint2);color:var(--meta)}
.tk-chip{font-size:11.5px;color:var(--sub);background:var(--tint);border:1px solid var(--line);border-radius:999px;padding:1.5px 8px}
.tk-chip.slot{background:var(--otint);border-color:var(--oline);color:var(--otext);font-weight:650}
.tk-chip.late{background:var(--rtint);border-color:var(--rline);color:var(--rtext);font-weight:650}
.tk-chip.roll{color:var(--otext)}
.tk-chip.src{color:var(--meta)}
.tk-x{flex:0 0 auto;border:0;background:none;color:var(--faint);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:7px}
.tk-x:hover{color:var(--rtext);background:var(--rtint)}
/* week grid */
.tk-weekwrap{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:560px}
.tk-hours{flex:0 0 34px;border-right:1px solid var(--line)}
.tk-col{flex:1;min-width:0;border-right:1px solid var(--line-soft);display:flex;flex-direction:column}
.tk-col:last-child{border-right:0}
.tk-col.today .tk-dhead{color:var(--otext);background:var(--otint)}
.tk-dhead{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--meta);padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden}
.tk-dhead b{color:var(--ink)}
.tk-allday{min-height:22px;padding:3px 4px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.tk-adchip{font-size:10px;font-weight:650;color:var(--sub);background:var(--tint2);border-radius:5px;padding:1px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-adchip.task{background:var(--otint2);color:var(--otext)}
.tk-daybody{position:relative;flex:1;min-height:480px}
.tk-hr{position:absolute;right:4px;transform:translateY(-6px);font-size:9.5px;color:var(--faint)}
.tk-ev{position:absolute;left:3px;right:3px;background:var(--tint2);border-left:3px solid var(--faint2);border-radius:6px;padding:2px 6px;font-size:10.5px;color:var(--sub);overflow:hidden;line-height:1.25}
.tk-ev b{font-weight:700;color:var(--ink);font-size:9.5px;margin-right:3px}
.tk-ev.task{background:linear-gradient(115deg,#0C0C0E 0%,#241206 42%,#FF8220 130%);border-left-color:#FF8220;color:#FFF1E4}
.tk-ev.task b{color:#fff}
.tk-ev.task .tk-evmeta{color:#fff;opacity:.85}
.tk-ev.free{opacity:.45}
/* floor-height blocks (a packed run of short tasks): one clean line, ellipsis — never wrap-clip mid-word */
.tk-ev.min{white-space:nowrap;text-overflow:ellipsis}
.tk-ev.over{z-index:3;box-shadow:0 3px 12px rgba(0,0,0,.22);outline:1.5px solid var(--panel)}
/* Aimy reply-chaser nudge cards */
.aimy-nudges{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.aimy-nudge{background:var(--tint);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.aimy-nudge .nsub{font-weight:700;font-size:12.5px;color:var(--ink)}
.aimy-nudge .nmeta{font-size:11px;color:var(--meta);margin:2px 0}
.aimy-nudge .nmeta a{color:var(--otext)}
.aimy-nudge .nprev{font-size:11.5px;color:var(--sub);margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aimy-nudge .nbtns{display:flex;gap:6px}
.aimy-nudge.done .nsub,.aimy-nudge.done .nprev{opacity:.55}
.tk-now{position:absolute;left:0;right:0;height:0;border-top:2px solid #FF8220;z-index:2}
.tk-now::before{content:"";position:absolute;left:-1px;top:-4px;width:7px;height:7px;border-radius:50%;background:#FF8220}
.tk-legend{margin-top:8px;font-size:11.5px;color:var(--meta);display:flex;align-items:center;gap:4px}
.tk-lg{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--tint2);border-left:3px solid var(--faint2)}
.tk-lg.task{background:linear-gradient(115deg,#0C0C0E,#FF8220);border-left-color:#FF8220}
.tk-lg.free{opacity:.45}
/* sheets */
.overlay{position:fixed;inset:0;background:rgba(26,22,18,.44);z-index:60;display:flex;align-items:center;justify-content:center;padding:18px}
.tk-sheet{background:var(--panel);border-radius:16px;max-width:560px;width:100%;max-height:min(86dvh,760px);overflow:auto;padding:18px 20px 20px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.tk-sheet .shead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.tk-sheet .shead h3{font-size:16px;margin:0}
.tk-sheet .x{border:0;background:none;font-size:22px;color:var(--meta);cursor:pointer;line-height:1;padding:2px 8px;border-radius:8px}
.tk-sheet .x:hover{background:var(--tint2);color:var(--ink)}
.tk-sheet label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;color:var(--meta);text-transform:uppercase;letter-spacing:.04em;margin-top:8px}
.tk-sheet input,.tk-sheet select,.tk-sheet textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-family:inherit;font-size:14px;color:var(--ink);background:var(--panel);font-weight:500;text-transform:none;letter-spacing:0}
.tk-sheet textarea{resize:vertical;line-height:1.45}
.tk-formrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.tk-formrow label{margin-top:8px}
.tk-days{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.tk-sheetbtns{display:flex;gap:10px;align-items:center;margin-top:16px}
@media (max-width:720px){
  .tk-add{padding:9px 10px}
  .tk-add #tkTitle{min-width:130px}
  .tk-weekwrap{overflow-x:auto}
  .tk-col{min-width:110px}
  .tk-title{white-space:normal}
}

/* Tasks — due-date pulse, right-click menu, day view */
@keyframes tkPulse{0%,100%{box-shadow:0 0 0 0 rgba(180,68,46,.35);border-color:#E9A093}50%{box-shadow:0 0 0 5px rgba(180,68,46,0);border-color:var(--rtext)}}
/* urgent (ASAP or due today/overdue) — red pulsing outline, sits over the task gradient */
@keyframes tkUrgent{0%,100%{box-shadow:0 0 0 0 rgba(225,29,29,.55);outline-color:#E11D1D}50%{box-shadow:0 0 0 5px rgba(225,29,29,0);outline-color:#F87171}}
.tk-row.urgent{border-color:#E11D1D;animation:tkPulse 1.6s ease-in-out infinite}
.tk-row.urgent .tk-title{color:var(--rtext)}
.tk-ev.urgent{outline:2px solid #E11D1D;outline-offset:-2px;animation:tkUrgent 1.5s ease-in-out infinite;z-index:5}
.tk-menu{position:fixed;z-index:80;background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:0 14px 44px rgba(0,0,0,.18);padding:5px;min-width:210px;display:flex;flex-direction:column}
.tk-menu button{border:0;background:none;text-align:left;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink);padding:9px 12px;border-radius:8px;cursor:pointer}
.tk-menu button:hover{background:var(--tint)}
.tk-menu button.danger{color:var(--rtext)}
.tk-menu button.danger:hover{background:var(--rtint)}
.tk-daynav{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.tk-daynav b{font-size:15px;min-width:120px;text-align:center}
.tk-allday.big{border:0;margin-bottom:8px;flex-direction:row;flex-wrap:wrap;gap:6px;padding:0}
.tk-allday.big .tk-adchip{font-size:11.5px;padding:3px 10px}
.tk-weekwrap.day{min-height:680px}
.tk-weekwrap.day .tk-daybody{min-height:640px}
/* Morning/Afternoon scroll anchors on the continuous Day view */
.tk-halftoggle{margin-left:12px}
.tk-halftoggle .catpill{transition:background .2s,color .2s}
.tk-ev.big{padding:5px 10px;font-size:12.5px;border-radius:8px;cursor:default}
.tk-ev.big[data-tid]{cursor:pointer}
.tk-ev.big b{font-size:11px}
.tk-evmeta{display:block;font-size:10.5px;opacity:.75;margin-top:1px}
.tk-evnotes{display:block;font-size:10.5px;opacity:.72;margin-top:2px;white-space:normal;line-height:1.35}
.tk-ev:not(.big) .tk-evnotes{font-size:9.5px;margin-top:1px}
.tk-zoom{display:inline-flex;align-items:center;gap:2px;margin-left:auto}
.tk-zoom .btn.sm{padding:2px 8px;font-size:15px;line-height:1;min-width:26px}
.tk-zoomlvl{font-size:11px;color:var(--sub);min-width:34px;text-align:center;font-variant-numeric:tabular-nums}
.tk-added{font-size:11px;color:var(--faint2);align-self:center;padding:1.5px 2px}
.tk-row.done .tk-added{display:none}
.tk-ev[data-tid]{cursor:pointer}
.tk-ev[data-tid]:hover{filter:brightness(.96)}

/* one-tap complete on calendar blocks */
.tk-ev.task{padding-right:26px}
.tk-done-btn{position:absolute;top:50%;transform:translateY(-50%);right:4px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--faint);background:var(--panel);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:.8;transition:.15s}
.tk-done-btn svg{width:10px;height:10px;opacity:0;transition:.15s}
.tk-done-btn:hover{border-color:#1B9C57;opacity:1}
.tk-done-btn:hover svg{opacity:.5;color:#1B9C57}
.tk-done-btn.on{background:#1B9C57;border-color:#1B9C57;opacity:1}
.tk-done-btn.on svg{opacity:1;color:#fff}
.tk-ev.big .tk-done-btn{width:22px;height:22px;right:7px}
.tk-ev.big .tk-done-btn svg{width:12px;height:12px}
.tk-ev.big.task{padding-right:36px}
.tk-ev.bye{opacity:0;transform:scale(.96);transition:opacity .4s ease,transform .4s ease;pointer-events:none}
.tk-ev{min-height:14px}
.tk-ev:not(.big) .tk-done-btn{width:14px;height:14px;right:3px;border-width:1.2px}
.tk-ev:not(.big) .tk-done-btn svg{width:8px;height:8px}

/* task search */
.tk-search{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 10px;min-width:200px}
.tk-search svg{width:14px;height:14px;color:var(--meta);flex:0 0 auto}
.tk-search input{border:0;outline:0;font-family:inherit;font-size:13px;color:var(--ink);background:none;width:170px}
.tk-search input::placeholder{color:var(--faint2)}
.tk-search button{border:0;background:none;color:var(--meta);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;border-radius:50%}
.tk-search button:hover{color:var(--ink)}
@media (max-width:720px){.tk-search{min-width:0}.tk-search input{width:110px}}

/* ---------------- fuel cards (Velocity dashboard) ---------------- */
.fkpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:16px}
.fkpis .kpi{min-height:96px}
.fmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 10px;margin-bottom:12px}
.fmap label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--meta)}
.fmap select{font-family:inherit;font-size:12.5px;color:var(--ink);background:var(--tint);border:1px solid var(--line);border-radius:7px;padding:6px 8px;outline:0}
.fmap select:focus{border-color:#FF8220}
.fsum{font-size:13px;color:var(--sub);background:var(--tint);border:1px solid var(--line);border-radius:9px;padding:9px 12px;margin-bottom:12px}
.fsum b{color:var(--ink)}
.fcols{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:6px}
.fcol{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%;min-width:0}
.fcol-bar{width:100%;max-width:34px;background:var(--aim-grad-accent,#FF8220);border-radius:5px 5px 2px 2px;min-height:0}
.fcol span{font-size:9.5px;color:var(--meta);white-space:nowrap;height:12px}
.fgrp{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--meta);font-weight:700;margin:12px 0 7px}
.fgrp:first-child{margin-top:0}
.fbar-row{display:grid;grid-template-columns:minmax(72px,auto) 1fr auto;align-items:center;gap:10px;padding:3px 0;font-size:12.5px}
.fbar-lab{color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.fbar{height:8px;background:var(--tint2);border-radius:999px;overflow:hidden}
.fbar-fill{height:100%;background:#FF8220;border-radius:999px}
.fbar-row b{font-size:12px}
.fbar-click{cursor:pointer;border-radius:7px;margin:0 -6px;padding:3px 6px;transition:background .1s}
.fbar-click:hover{background:var(--tint)}
.fbar-click.on{background:var(--otint)}
.fbar-click.on .fbar-lab{color:var(--otext);font-weight:700}
.fgrp-clr{cursor:pointer;color:#E0701A;font-weight:600;text-transform:none;letter-spacing:0;margin-left:8px;font-size:10px}
.fgrp-clr:hover{text-decoration:underline}
.cardnames .cn-wrap{display:flex}
.cardnames .cn-inp{width:100%;max-width:220px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--tint);border:1px solid var(--line);border-radius:7px;padding:6px 9px;outline:0;transition:border-color .12s,background .12s}
.cardnames .cn-inp:focus{border-color:#FF8220;background:var(--panel)}
.cardnames .cn-inp.saved{border-color:var(--good);background:var(--good-bg)}
.cardnames .cn-inp.err{border-color:var(--bad)}
.fsearch{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 12px;margin:0 2px 14px;box-shadow:var(--shadow-sm)}
.fsearch svg{width:16px;height:16px;stroke-width:2;color:var(--meta);flex:0 0 auto}
.fsearch input{border:0;outline:0;background:none;font-family:inherit;font-size:13.5px;color:var(--ink);width:100%}
.fsearch input::placeholder{color:var(--meta)}
.fsearch .fs-x{border:0;background:var(--tint2);color:var(--sub);width:22px;height:22px;border-radius:6px;cursor:pointer;font-size:15px;line-height:1;flex:0 0 auto}
.fsearch .fs-x:hover{background:var(--line);color:var(--ink)}
/* cards & users modal */
.cu-modal{position:fixed;inset:0;z-index:60;background:rgba(20,16,12,.5);display:flex;align-items:center;justify-content:center;padding:20px}
html.dark .cu-modal{background:rgba(0,0,0,.6)}
.cu-dialog{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);width:560px;max-width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.cu-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}
.cu-head h3{margin:0;font-size:15px;font-weight:700}
.cu-x{margin-left:auto;border:0;background:none;color:var(--meta);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.cu-x:hover{color:var(--ink)}
.cu-scroll{padding:16px 18px;overflow-y:auto}
.cu-lbl{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--meta);font-weight:700;margin:0 0 9px}
.cu-sub{color:var(--meta);font-weight:500;text-transform:none;letter-spacing:0}
.cu-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:11px}
.cu-empty{color:var(--meta);font-size:12.5px}
.cu-chip{display:inline-flex;align-items:center;gap:6px;background:var(--otint);color:var(--otext);border:1px solid var(--oline);border-radius:999px;padding:4px 5px 4px 11px;font-size:12.5px;font-weight:600}
.cu-chip button{border:0;background:rgba(0,0,0,.06);color:inherit;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1}
.cu-chip button:hover{background:rgba(0,0,0,.14)}
.cu-add{display:flex;gap:8px}
.cu-add input{flex:1;font-family:inherit;font-size:13px;color:var(--ink);background:var(--tint);border:1px solid var(--line);border-radius:8px;padding:8px 11px;outline:0}
.cu-add input:focus{border-color:#FF8220;background:var(--panel)}
.cu-tbl{width:100%}
.cu-tbl td,.cu-tbl th{padding:8px 8px}
.cu-tbl tr.fsel td{background:var(--otint)}
.cu-usel{font-family:inherit;font-size:12.5px;color:var(--ink);background:var(--tint);border:1px solid var(--line);border-radius:7px;padding:5px 7px;outline:0;max-width:170px}
.cu-usel:focus{border-color:#FF8220}
.cu-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line);background:var(--tint)}
.cu-barinfo{font-size:13px;color:var(--sub)}.cu-barinfo b{color:var(--ink)}
.cu-assign{font-size:12.5px;color:var(--sub);display:flex;align-items:center;gap:7px}
.cu-buser{font-family:inherit;font-size:12.5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:5px 7px;outline:0}
.cu-bar .btn.sm{margin-left:auto}
@media (max-width:560px){.cu-bar .btn.sm{margin-left:0}}
.ftbl th.fchk,.ftbl td.fchk{width:34px;padding-left:10px;padding-right:0}
.ftbl input[type=checkbox]{width:15px;height:15px;accent-color:#FF8220;cursor:pointer;margin:0}
.ftbl tr.fsel td{background:var(--otint)}
.fselbar{position:sticky;bottom:14px;z-index:8;margin:16px auto 0;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--ink);color:#fff;border-radius:12px;padding:11px 14px;box-shadow:var(--shadow-lg);max-width:max-content}
.fselbar .fsb-info{font-size:13px;color:#E7E3DC}
.fselbar .fsb-info b{color:#fff}
.fselbar .fsb-alloc{display:flex;align-items:center;gap:6px;font-size:11px;color:#B7B2AA}
.fselbar .fsb-ent{font-family:inherit;font-size:12px;font-weight:700;color:#E7E3DC;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:4px 11px;cursor:pointer}
.fselbar .btn.sm{padding:7px 13px}
.fselbar .btn.ghost.sm{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.22)}
.fselbar .fsb-x{margin-left:2px;background:none;border:0;color:#B7B2AA;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}
.fselbar .fsb-x:hover{color:#fff}
@media (max-width:760px){.fcols{height:110px}.fbar-lab{max-width:96px}.fselbar{max-width:none;justify-content:center}}

/* ---------------- dark mode (html.dark) ---------------- */
html.dark{
  --bg:#141110; --panel:#1E1A16; --line:#352F28; --line-soft:#2A251F;
  --ink:#F1ECE4; --sub:#B9B1A5; --meta:#8B8478;
  --tint:#282320; --tint2:#322C25;
  --otint:#3A2A19; --otint2:#4A3520; --oline:#5C4327; --otext:#FFA45C; --otext2:#E9BE93;
  --rtint:#3C221C; --rline:#5C3128; --rtext:#F09280;
  --faint:#575047; --faint2:#6E675C;
  --good-bg:#1E3327; --warn-bg:#3A2E17; --bad-bg:#3D2020;
  --shadow-sm:0 1px 2px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.25);
  --shadow-md:0 4px 16px rgba(0,0,0,.45);
  --shadow-lg:0 18px 50px rgba(0,0,0,.6);
  color-scheme:dark;
}
html.dark .top{background:linear-gradient(180deg,var(--bg) 72%,rgba(20,17,16,0))}
html.dark .catpill.active,html.dark .catbar.sup .catpill.active{color:#1A1714}
html.dark .kpi.clickable:hover{border-color:#FF8220}
html.dark .overlay{background:rgba(0,0,0,.6)}
html.dark .tk-now::before,html.dark .tk-now{border-color:#FF8220}

/* time-grid: fixed header band (day + holiday banners always visible), hours scroll below */
.tk-weekouter{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
.tk-weekhead{display:flex;border-bottom:1px solid var(--line)}
.tk-weekhead .tk-gut{flex:0 0 34px;border-right:1px solid var(--line)}
.tk-colh{flex:1;min-width:0;border-right:1px solid var(--line-soft);display:flex;flex-direction:column}
.tk-colh:last-child{border-right:0}
.tk-colh.today .tk-dhead{color:var(--otext);background:var(--otint)}
.tk-weekwrap{min-height:0;max-height:712px;overflow-y:auto;overscroll-behavior:contain;border:0;border-radius:0;background:var(--panel)}
.tk-weekwrap .tk-daybody{min-height:0;flex:none}
.tk-weekwrap.day{border:1px solid var(--line);border-radius:12px}
.tk-ev{font-size:11px;line-height:1.3;padding:3px 7px}
.tk-ev b{font-size:10px}
@media (max-width:720px){
  .tk-weekouter{overflow-x:auto}
  .tk-weekhead,.tk-weekwrap{min-width:820px}
  .tk-weekwrap{overflow-x:visible;max-height:62dvh}
  .tk-colh{min-width:110px}
}

/* brand-tagged tasks: GSG (dark green → navy) and AIM-ECO (green → grey) */
.tk-ev.task.brand-gsg{background:linear-gradient(135deg,#14532D,#1E3A5F);border-left-color:#0B3B2A;color:#DBE9E1}
.tk-ev.task.brand-gsg b,.tk-ev.task.brand-gsg .tk-evmeta{color:#fff;opacity:.92}
.tk-ev.task.brand-eco{background:linear-gradient(135deg,#16A34A,#64748B);border-left-color:#0E7A37;color:#F2FBF5}
.tk-ev.task.brand-eco b,.tk-ev.task.brand-eco .tk-evmeta{color:#fff;opacity:.92}
.tk-ev.task .tk-done-btn,.tk-ev.task.brand-gsg .tk-done-btn,.tk-ev.task.brand-eco .tk-done-btn{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.14)}
.tk-ev.task .tk-done-btn:hover,.tk-ev.task.brand-gsg .tk-done-btn:hover,.tk-ev.task.brand-eco .tk-done-btn:hover{border-color:#fff}
.tk-row.brand-gsg{border-left:4px solid transparent;background:linear-gradient(90deg,rgba(20,83,45,.16),rgba(30,58,95,.10) 45%,transparent 70%),var(--panel);border-left-color:#14532D}
.tk-row.brand-eco{border-left:4px solid transparent;background:linear-gradient(90deg,rgba(22,163,74,.15),rgba(100,116,139,.10) 45%,transparent 70%),var(--panel);border-left-color:#16A34A}
.tk-chip.bchip{border:0;color:#fff;font-weight:700}
.tk-chip.bchip.b-gsg{background:linear-gradient(135deg,#14532D,#1E3A5F)}
.tk-chip.bchip.b-eco{background:linear-gradient(135deg,#16A34A,#64748B)}

/* ---- supplier onboarding ---- */
.dbadge.onb-invited{background:var(--warn-bg);color:#B45309}
.dbadge.onb-submitted{background:#FBEBD8;color:#B45309}
.dbadge.onb-verified{background:var(--good-bg);color:#15803D}
.dbadge.onb-rejected{background:var(--rtint);color:var(--rtext)}
.onb-alert{font-size:10.5px;font-weight:700;color:var(--warn);margin-right:6px;white-space:nowrap}
.onb-linkrow{display:flex;flex-direction:column;gap:6px}
.onb-linkrow b{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--meta);font-weight:700}
.onb-linkrow code{background:var(--soft,#F3F1EC);border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-size:12.5px;word-break:break-all;color:var(--ink)}
.onb-linkbox{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}
.onb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2px 22px}
.onb-f{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.onb-f span{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700}
.onb-f b{font-size:14px;font-weight:600;color:var(--ink)}
.onb-notes{margin-top:14px;background:var(--soft,#F7F5F1);border:1px solid var(--line-soft);border-radius:9px;padding:11px 13px;font-size:13.5px;line-height:1.5;color:var(--ink)}
.onb-notes span{display:block;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700;margin-bottom:5px}
.onb-ex{font-weight:700}
.onb-ex.bad{color:var(--bad)}
.onb-ex.warn{color:var(--warn)}
.onb-cert{color:#E0701A;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(224,112,26,.35);cursor:pointer}
.onb-cert:hover{border-bottom-color:#E0701A}
.onb-bankname{background:var(--soft,#F7F5F1);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.onb-bankname span{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--meta);font-weight:700}
.onb-bankname b{font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.onb-bankname.diff{border-color:#F0D9A8;background:var(--warn-bg);border-left:3px solid var(--warn)}
.onb-bankname em{font-style:normal;font-size:12px;font-weight:700;color:#92600A;margin-top:2px}
.onb-chk{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--sub);cursor:pointer}
.comm-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.comm-row:last-child{border-bottom:0}
.comm-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:0 0 auto;background:var(--faint,#C9C2B8)}
.comm-dot.out{background:var(--orange,#FF8220)}
.comm-dot.in{background:var(--good,#16A34A)}
.comm-main{flex:1;min-width:0}
.comm-main b{display:block;font-size:13.5px;font-weight:700;color:var(--ink)}
.comm-main span{display:block;font-size:12px;color:var(--meta);margin-top:1px;overflow-wrap:break-word}
.comm-when{color:var(--meta);font-size:12px;white-space:nowrap;margin-top:2px}
.irq-list{background:var(--soft,#F7F5F1);border:1px solid var(--line-soft);border-radius:9px;padding:4px 13px;margin-bottom:12px}
.irq-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:13.5px;border-bottom:1px solid var(--line-soft)}
.irq-row:last-child{border-bottom:0}
.onb-chk input{width:15px;height:15px;accent-color:#FF8220}
.revmsg.ok{color:var(--good)}
.revmsg.err{color:var(--rtext)}

/* ================= GROUP STRUCTURE (scenario tool) ================= */
.st-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 14px}
.st-sel,.st-name{font-family:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
.st-name{flex:1;min-width:140px}
.st-bar .btn.danger{color:var(--bad)}
.st-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;align-items:start}
@media(max-width:900px){.st-grid{grid-template-columns:1fr}}
.st-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
@media(max-width:1200px){.st-kpis{grid-template-columns:repeat(2,1fr)}}
.st-kpi{border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:var(--panel)}
.st-kpi .st-kl{display:block;font-size:11px;color:var(--meta);margin-bottom:4px}
.st-kpi b{font-size:20px;color:var(--ink);line-height:1.1}
.st-kpi small{display:block;font-size:10.5px;color:var(--sub);margin-top:3px}
.st-kpi.brand{border-color:var(--oline);background:var(--otint)}
.st-kpi.brand b{color:var(--otext)}
.st-cap.under{color:var(--good)}
.st-cap.over{color:var(--bad)}

.st-diagram{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--panel);text-align:center}
.st-owners{display:flex;justify-content:center;gap:12px;margin-bottom:4px;flex-wrap:wrap}
.st-chip{border:1.5px solid var(--ink);border-radius:999px;padding:6px 15px;font-weight:700;font-size:12.5px;color:var(--ink)}
.st-chip small{font-weight:400;color:var(--meta)}
.st-conn{width:2px;height:16px;background:var(--line-soft);margin:0 auto}
.st-holdco{display:inline-block;background:linear-gradient(135deg,#FF8220,#E0701A);color:#fff;border-radius:8px;padding:12px 26px;box-shadow:0 3px 12px rgba(255,130,32,.32)}
.st-hc-name{font-weight:700;font-size:16px;line-height:1.1}
.st-hc-sub{font-size:10.5px;opacity:.92;margin-top:2px}
.st-rail{width:72%;height:2px;background:var(--line-soft);margin:0 auto}
.st-tag{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--meta);margin:12px 0 2px}
.st-subs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:14px}
@media(max-width:560px){.st-subs{grid-template-columns:repeat(2,1fr)}}
.st-sub{border:1.4px solid var(--ink);border-radius:6px;padding:9px 7px;background:var(--bg);min-height:62px;display:flex;flex-direction:column;justify-content:center}
.st-sub.prop{border-width:2px;background:var(--tint)}
.st-sn{font-weight:700;font-size:11.5px;line-height:1.15;color:var(--ink)}
.st-sd{font-size:9.5px;color:var(--meta);margin-top:3px}
.st-pct{font-weight:700;font-size:10px;color:var(--ink);margin-top:4px}
.st-propbox{margin:12px auto 0;border:1.4px dashed var(--line-soft);border-radius:8px;padding:12px;background:var(--bg);max-width:640px}
.st-pbh{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--meta);margin-bottom:9px}
.st-propcols{display:grid;grid-template-columns:1fr 1.3fr;gap:12px;text-align:left}
@media(max-width:560px){.st-propcols{grid-template-columns:1fr}}
.st-cch{font-size:10px;font-weight:700;color:var(--ink);margin-bottom:7px}
.st-propgrid{display:grid;grid-template-columns:1fr;gap:6px}
.st-jvgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.st-colrule{border-left:1px solid var(--line);padding-left:12px}
@media(max-width:560px){.st-colrule{border-left:0;padding-left:0}}
.st-mini{border:1.3px solid var(--ink);border-radius:5px;padding:7px;background:var(--panel);text-align:center}
.st-mini.jv{border-style:dashed}
.st-mn{font-weight:700;font-size:11px;line-height:1.15;color:var(--ink)}
.st-md{font-size:9.5px;color:var(--meta);margin-top:2px}
.st-empty{font-size:11px;color:var(--meta);padding:8px;font-style:italic}
.st-aside{display:flex;justify-content:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.st-aside .st-mini{flex:0 1 200px}

.st-note{margin-top:14px;border:1px solid var(--line);border-left:3px solid var(--line-soft);border-radius:8px;padding:11px 13px;background:var(--panel);font-size:11.5px;color:var(--sub);line-height:1.55}
.st-note.info{border-left-color:#FF8220}
.st-note b{color:var(--ink)}

.st-edit{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--panel);position:sticky;top:12px}
.st-ehead{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--meta);margin:14px 0 6px}
.st-ehead:first-child{margin-top:0}
.st-tbl{width:100%;border-collapse:collapse}
.st-tbl th{text-align:left;font-size:9.5px;font-weight:700;color:var(--meta);text-transform:uppercase;letter-spacing:.03em;padding:0 4px 4px}
.st-tbl td{padding:2px 4px}
.st-in{font-family:inherit;font-size:12.5px;width:100%;padding:6px 7px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
.st-in.num{text-align:right}
.st-in.sm{width:52px}
.st-tbl td:last-child{width:26px}
.st-del{border:0;background:none;color:var(--bad);font-size:17px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:5px}
.st-del:hover{background:var(--bad-bg)}
.st-add{margin-top:6px;font-family:inherit;font-size:12px;font-weight:600;color:var(--otext);background:var(--otint);border:1px solid var(--oline);border-radius:7px;padding:6px 11px;cursor:pointer}
.st-assume{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.st-assume label{font-size:10.5px;color:var(--meta);display:flex;flex-direction:column;gap:3px}

/* group structure — FAQ */
.st-faqwrap{margin-top:26px;max-width:840px}
.st-faq-sub{font-size:12.5px;color:var(--meta);margin:-4px 0 12px;line-height:1.5}
.st-faq{border:1px solid var(--line);border-radius:9px;background:var(--panel);margin-bottom:8px;overflow:hidden}
.st-faq summary{cursor:pointer;padding:12px 14px;font-weight:600;font-size:13.5px;color:var(--ink);list-style:none;display:flex;align-items:center;gap:9px}
.st-faq summary::-webkit-details-marker{display:none}
.st-faq summary::before{content:"+";color:var(--otext);font-weight:700;font-size:16px;width:14px;flex:0 0 14px;text-align:center}
.st-faq[open] summary::before{content:"–"}
.st-faq[open] summary{border-bottom:1px solid var(--line)}
.st-faq-a{padding:12px 14px 14px 37px;font-size:13px;color:var(--sub);line-height:1.6}
.st-faq-a b{color:var(--ink)}

/* group structure — % input pairing + mobile stacked edit rows */
.st-pctwrap{display:inline-flex;align-items:center;gap:4px}
.st-pctwrap .st-in.sm{width:56px}
@media(max-width:640px){
  .st-edit{position:static}
  .st-tbl thead{display:none}
  .st-tbl,.st-tbl tbody,.st-tbl tr,.st-tbl td{display:block;width:auto}
  .st-tbl tr{border:1px solid var(--line);border-radius:9px;padding:9px 42px 9px 11px;margin-bottom:8px;background:var(--bg);position:relative}
  .st-tbl td{padding:4px 0}
  .st-tbl td[data-l]::before{content:attr(data-l);display:block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--meta);margin-bottom:3px}
  .st-tbl .st-in,.st-tbl .st-in.sm{width:100%}
  .st-tbl .st-pctwrap{display:flex}
  .st-delcell{position:absolute;top:9px;right:9px;padding:0}
  .st-del{font-size:21px}
}

/* ============================================================ FOOTBALL TICKETS */
:root{ --celtic:#017A3E; --celtic-dk:#0A5A32; }
.ft-hero{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,var(--celtic) 0%,var(--celtic-dk) 100%);border-radius:14px;padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow-sm);color:#fff}
.ft-hero .ft-crest{width:74px;height:74px;flex:0 0 auto;filter:drop-shadow(0 3px 6px rgba(0,0,0,.25))}
.ft-hero h2{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em}
.ft-hero .ft-sub{font-size:12.5px;opacity:.85;margin-top:3px}
.ft-hero .ft-season{margin-left:auto;text-align:right;font-size:12px;opacity:.9}
.ft-hero .ft-season b{display:block;font-size:22px;font-weight:800;letter-spacing:.01em}
@media(max-width:640px){ .ft-hero{flex-wrap:wrap} .ft-hero .ft-season{margin-left:0;text-align:left;width:100%} }

.ft-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.ft-tile{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:13px 15px;box-shadow:var(--shadow-sm)}
.ft-tile .lab{font-size:11px;font-weight:600;color:var(--sub);display:flex;align-items:center;gap:6px}
.ft-tile .val{font-size:20px;font-weight:800;color:var(--ink);margin-top:5px;line-height:1.15}
.ft-tile .val.brand{color:var(--celtic)}
.ft-tile .val small{display:block;font-size:11px;font-weight:600;color:var(--sub)}

.ft-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.ft-bar .spacer{margin-left:auto}

.fx{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:12px 14px;box-shadow:var(--shadow-sm);margin-bottom:10px}
.fx.past{opacity:.62}
.fx.next{border-color:var(--celtic);box-shadow:0 0 0 1px var(--celtic) inset,var(--shadow-sm)}
.fx-date{text-align:center;background:#F4F1EC;border-radius:9px;padding:7px 4px;line-height:1.1}
html.dark .fx-date{background:#26221D}
.fx-date .d{font-size:19px;font-weight:800;color:var(--ink)}
.fx-date .m{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--celtic)}
.fx-date .t{font-size:10.5px;color:var(--sub);margin-top:2px}
.fx-main .opp{font-size:15px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fx-main .opp .ha{font-size:11px;font-weight:600;color:var(--meta)}
.fx-main .meta{font-size:11.5px;color:var(--sub);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fx-comp{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--good-bg);color:#15803D}
.fx-comp.cup{background:#EAF0FB;color:#2456C7}
.fx-comp.euro{background:#EFE7FB;color:#6D28D9}
.fx-comp.other{background:#F1EFEA;color:var(--sub)}
.fx-tix{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ft-tk{min-width:118px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:7px 10px;cursor:pointer;font-family:inherit;transition:.1s}
.ft-tk:hover{border-color:var(--celtic)}
.ft-tk .tk-lab{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--meta);display:flex;align-items:center;gap:5px}
.ft-tk .tk-who{font-size:13px;font-weight:700;color:var(--ink);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.ft-tk .tk-st{font-size:10px;font-weight:600;margin-top:1px}
.ft-tk.open{border-style:dashed}
.ft-tk.open .tk-who{color:var(--meta);font-weight:600}
.ft-tk.open .tk-st{color:var(--meta)}
.ft-tk.taken{background:var(--good-bg);border-color:#BFE6CE}
.ft-tk.taken .tk-st{color:#15803D}
.ft-tk.sold{background:var(--warn-bg);border-color:#F0D9A8}
.ft-tk.sold .tk-st{color:#B45309}
.ft-tk.spare{background:#EAF0FB;border-color:#CBDBF6}
.ft-tk.spare .tk-st{color:#2456C7}
html.dark .ft-tk.taken{background:rgba(22,163,74,.14)}
html.dark .ft-tk.sold{background:rgba(217,119,6,.15)}
html.dark .ft-tk.spare{background:rgba(36,86,199,.16)}
.tk-dot{width:8px;height:8px;border-radius:50%;background:var(--meta);flex:0 0 auto}
.ft-tk.taken .tk-dot{background:var(--good)}
.ft-tk.sold .tk-dot{background:var(--warn)}
.ft-tk.spare .tk-dot{background:#2456C7}

/* assign popover (rendered on body) */
.ftpop-ov{position:fixed;inset:0;z-index:62}
.ftpop{position:fixed;z-index:63;width:250px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px rgba(20,16,12,.28);padding:14px}
.ftpop h4{margin:0 0 2px;font-size:13px;font-weight:800}
.ftpop .sub{font-size:11px;color:var(--sub);margin-bottom:11px}
.ftpop label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--meta);margin:9px 0 4px}
.ftpop select,.ftpop input{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px 9px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--panel);outline:0}
.ftpop .seg{display:flex;gap:5px;margin-top:3px}
.ftpop .seg button{flex:1;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 4px;font-family:inherit;font-size:11px;font-weight:700;color:var(--sub);cursor:pointer}
.ftpop .seg button.on{background:var(--celtic);border-color:var(--celtic);color:#fff}
.ftpop-pair{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--ink);cursor:pointer;font-weight:600;letter-spacing:0;text-transform:none}
.ftpop-pair input{width:15px;height:15px;accent-color:var(--celtic);flex:0 0 auto}
.ftpop-pair b{font-weight:800}
.ftpop-cap{margin-top:10px;font-size:11.5px;font-weight:600;color:var(--bad);background:var(--bad-bg);border:1px solid #F0C9C9;border-radius:7px;padding:8px 10px;line-height:1.4}
.ftpop .pop-acts{display:flex;gap:7px;margin-top:13px}
.ftpop .pop-acts .btn{flex:1;justify-content:center}
.ft-mono{font-variant-numeric:tabular-nums}
.tk-co{font-size:10px;font-weight:600;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.fx-edit{border:0;background:none;color:var(--meta);font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;padding:0;margin-left:2px}
.fx-edit:hover{color:var(--celtic);text-decoration:underline}
.ft-ppl{width:100%;margin-top:6px}
.ft-ppl td{padding:7px 10px}
.ft-ppl .ft-coedit{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12.5px;color:var(--ink);background:var(--panel);outline:0}
.ft-ppl td.r{width:34px;text-align:right}
.ft-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(12px);background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:11px 18px;border-radius:10px;box-shadow:0 12px 34px rgba(20,16,12,.3);z-index:70;opacity:0;pointer-events:none;transition:.22s;max-width:90vw;text-align:center}
.ft-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.fx-comp.block{background:var(--bad-bg);color:var(--bad)}
.fx.blocked{opacity:.75}
.fx.blocked .fx-date{background:var(--bad-bg)}
.fx.blocked .fx-date .m{color:var(--bad)}
/* ticket requests panel */
.ft-reqs .pbody{padding:6px 18px 14px}
.ft-req{padding:12px 0;border-bottom:1px solid var(--line-soft)}
.ft-req:last-child{border-bottom:0}
.ft-req-h{display:flex;align-items:baseline;gap:10px}
.ft-req-h b{font-size:14px}
.ft-req-c{font-size:12.5px;color:var(--celtic);font-weight:600;text-decoration:none}
.ft-req-games{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.ft-req-g{font-size:11.5px;font-weight:600;background:var(--good-bg);color:#15803D;border-radius:999px;padding:3px 9px}
.ft-req-note{font-size:12.5px;color:var(--sub);margin-top:7px;font-style:italic}
.ft-req-acts{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;align-items:center}
.ft-req.done{opacity:.62}
.ft-req-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--good);background:var(--good-bg);border-radius:999px;padding:3px 9px}
.ft-req-empty{font-size:12.5px;color:var(--sub);padding:6px 0 2px}
.ft-req-more{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line)}
/* share dialog QR */
.ft-qr{text-align:center;margin:2px 0 14px}
.ft-qr img{width:180px;height:180px;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}
.ft-qr span{display:block;font-size:11.5px;color:var(--meta);margin-top:7px}
/* share url row */
.ft-shareurl{display:flex;gap:8px}
.ft-shareurl input{flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--bg);outline:0}

/* ---- George account (Steven-only): commission · loan · partner's share ---- */
.ga-hsub{color:var(--sub);font-size:12.5px;margin-top:3px}
.ga-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.ga-tile{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:13px 15px;box-shadow:var(--shadow-sm)}
.ga-tile .lab{font-size:11px;font-weight:600;color:var(--sub)}
.ga-tile .val{font-size:23px;font-weight:800;color:var(--ink);margin-top:5px;line-height:1.15;letter-spacing:-.02em}
.ga-tile .val small{display:block;font-size:11px;font-weight:600;color:var(--sub);letter-spacing:0;margin-top:4px;line-height:1.35}
.ga-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.ga-bar .spacer{flex:1}
.ga-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:9px}
.ga-m{position:relative;border:1px solid var(--line);border-radius:10px;padding:10px 11px 9px;background:var(--panel)}
.ga-m .mm{font-size:11px;font-weight:700;color:var(--sub)}
.ga-m .ma{font-size:16px;font-weight:800;margin-top:3px;letter-spacing:-.01em}
.ga-m .ms{font-size:10.5px;color:var(--meta);margin-top:1px}
.ga-m.ok{background:var(--good-bg);border-color:#C8E8D3}
.ga-m.ok .ma{color:#15803D}.ga-m.ok .mm{color:#15803D}
.ga-m.part{background:var(--warn-bg);border-color:#F0D9A8}
.ga-m.part .ma{color:#B45309}.ga-m.part .mm{color:#B45309}
.ga-m.due{background:var(--bad-bg);border-color:#F0BDBD}
.ga-m.due .ma{color:#B91C1C}.ga-m.due .mm{color:#B91C1C}
.ga-void{position:absolute;top:7px;right:8px;border:0;background:none;font-family:inherit;font-size:10px;font-weight:700;color:var(--meta);cursor:pointer;opacity:0;transition:.12s;padding:2px 4px;border-radius:4px}
.ga-m:hover .ga-void{opacity:1}
.ga-void:hover{background:rgba(0,0,0,.06);color:var(--ink)}
.ga-note{font-size:11.5px;color:var(--meta);margin-top:11px}
.ga-voided{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.ga-vchip{display:inline-flex;align-items:center;gap:7px;border:1px dashed var(--line);border-radius:999px;padding:4px 11px;font-size:11.5px;color:var(--meta)}
.ga-vchip button{border:0;background:none;font-family:inherit;font-size:11px;font-weight:700;color:#B24E00;cursor:pointer;padding:0}
.ga-rn{font-size:11.5px;color:var(--meta);margin-top:2px}
.ga-x{border:0;background:none;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--meta);cursor:pointer;padding:2px 4px;border-radius:4px}
.ga-x:hover{background:var(--line-soft);color:var(--ink)}
.ga-krow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.ga-krow .k{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700}
.ga-krow .v{font-size:20px;font-weight:800;margin-top:3px;letter-spacing:-.02em}
.ga-krow .n{font-size:11px;color:var(--sub);margin-top:1px}
.ga-how p{margin:0 0 11px;font-size:13px;color:var(--sub);line-height:1.55;max-width:78ch}
.ga-how p:last-child{margin-bottom:0}
.ga-how b{color:var(--ink)}
.ga-priv{font-size:11.5px !important;color:var(--meta) !important;border-top:1px solid var(--line-soft);padding-top:10px}
.ga-hint{background:var(--warn-bg);border:1px solid #F0D9A8;border-left:3px solid var(--warn);color:#92600A;border-radius:7px;padding:9px 12px;font-size:12.5px;line-height:1.45;margin-bottom:14px}
.ga-opt{font-weight:500;color:var(--meta);text-transform:none;letter-spacing:0}
.ga-check{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);cursor:pointer;text-transform:none;letter-spacing:0}
.ga-check input{width:16px;height:16px;accent-color:#FF8220;margin-top:1px;flex:0 0 auto}
.ga-check b{display:block;font-size:13px;font-weight:700;color:var(--ink)}
.ga-check small{display:block;font-size:11.5px;color:var(--sub);margin-top:3px;line-height:1.4}
html.dark .ga-m.ok{background:rgba(22,163,74,.13);border-color:rgba(22,163,74,.3)}
html.dark .ga-m.part{background:rgba(217,119,6,.13);border-color:rgba(217,119,6,.3)}
html.dark .ga-m.due{background:rgba(220,38,38,.13);border-color:rgba(220,38,38,.3)}

/* month cell is now a button (click to settle that month) */
.ga-m{width:100%;text-align:left;font-family:inherit;cursor:pointer;display:block;transition:transform .1s,box-shadow .1s,border-color .1s}
.ga-m:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.ga-m:focus-visible{outline:2px solid #FF8220;outline-offset:2px}
.ga-m .mm{display:flex;align-items:center;gap:6px}
.ga-k{margin-left:auto;font-size:9.5px;font-weight:800;letter-spacing:.02em;border-radius:999px;padding:1px 6px;line-height:1.5}
.ga-k.on{background:rgba(22,163,74,.16);color:#15803D}
.ga-k.off{background:rgba(154,149,141,.18);color:var(--meta)}
.ga-void{display:inline-block;line-height:1.4}
.ga-mstat{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:15px}
.ga-mstat div{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.ga-mstat .k{font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700}
.ga-mstat .v{font-size:17px;font-weight:800;margin-top:2px;letter-spacing:-.01em}
.ga-dhead{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--meta);font-weight:700;margin:4px 0 7px}
.ga-done{display:flex;align-items:center;gap:10px;justify-content:space-between;background:var(--good-bg);border:1px solid #C8E8D3;border-radius:8px;padding:8px 11px;font-size:12.5px;color:#15803D;margin-bottom:7px}
.ga-done b{font-weight:800}
.ga-undo{border:0;background:none;font-family:inherit;font-size:11px;font-weight:700;color:#15803D;opacity:.75;cursor:pointer;padding:2px 4px;border-radius:4px}
.ga-undo:hover{opacity:1;background:rgba(21,128,61,.1)}
html.dark .ga-done{background:rgba(22,163,74,.13);border-color:rgba(22,163,74,.3)}
.ga-oc{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:rgba(154,149,141,.2);color:var(--sub);border-radius:999px;padding:1px 6px;margin-left:6px;vertical-align:1px}
.ga-done.off{background:var(--warn-bg);border-color:#F0D9A8;color:#92600A}
.ga-done.off .ga-undo{color:#92600A}
.ga-done.off .ga-undo:hover{background:rgba(146,96,10,.1)}
.ga-warn{margin-top:9px;background:var(--warn-bg);border:1px solid #F0D9A8;border-left:3px solid var(--warn);color:#92600A;border-radius:7px;padding:9px 11px;font-size:11.5px;line-height:1.45}
.ga-warn b{color:#7A4F08}
html.dark .ga-done.off{background:rgba(217,119,6,.14);border-color:rgba(217,119,6,.3)}

/* ---------------------------------------------------------------- ESTIMATES
   The price library: what we quoted, to whom, when, and whether it landed. */
.est-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.est-stats>div{background:var(--tint);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.est-stats span{display:block;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--meta)}
.est-stats b{display:block;font-size:19px;font-weight:800;margin-top:3px;font-variant-numeric:tabular-nums}
.est-stats i{display:block;font-style:normal;font-size:11.5px;color:var(--sub);margin-top:2px}
.est-q{font-family:inherit;font-size:12.5px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 14px;color:var(--ink);min-width:240px;flex:1 1 240px;max-width:420px}
.est-q:focus{outline:none;border-color:#FF8220}
.est-notes{margin-top:12px;background:var(--tint);border:1px solid var(--line);border-left:3px solid #FF8220;border-radius:8px;padding:9px 12px;font-size:12.5px;line-height:1.5;color:var(--sub)}
.est-statusrow{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.dbadge.est-draft{background:#EFEDE8;color:#75716B}
.dbadge.est-sent{background:var(--warn-bg);color:#B45309}
.dbadge.est-won{background:var(--good-bg);color:#15803D}
.dbadge.est-lost{background:var(--rtint);color:var(--rtext)}
.dbadge.est-superseded{background:#EAF0FB;color:#2456C7}
