@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@300;400;500;600;700&display=swap');

:root{
  /* Warm neutral — easy on the eyes, not cold white */
  --bg:#f0ede8; --s:#faf9f7; --s2:#f3f1ee; --s3:#ece9e4;
  --bd:#dcd9d3; --bd2:#c8c4bc;
  --ink:#1c1a17; --ink2:#2e2b26; --ink3:#46433c; --ink4:#706d65;
  /* Green: forest, not neon */
  --green:#1a5c38; --green-bg:#eaf4ee; --green-bd:#9ecfb0;
  --amber:#8a4e06; --amber-bg:#fef5e7; --amber-bd:#f4c97a;
  --red:#a31818;   --red-bg:#fdf0f0;   --red-bd:#f5a0a0;
  --blue:#1a3f8a;  --blue-bg:#edf2fc;  --blue-bd:#9db8e4;
  /* Division accent colours */
  --c-dm:#1a5c38; --c-mf:#1a3f8a; --c-ea:#5a1a7a; --c-ci:#8a4e06;
  --shadow-xs:0 1px 2px rgba(0,0,0,.06);
  --shadow:0 3px 10px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.05);
  --shadow-lg:0 16px 36px rgba(0,0,0,.10),0 4px 10px rgba(0,0,0,.06);
  --r:6px; --r2:10px; --r3:14px;
  --font:'Inter',sans-serif;
  --serif:'DM Serif Display',serif;
  --mono:'JetBrains Mono','IBM Plex Mono',monospace;
  --sb:228px; --sb-collapsed:52px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font-family:var(--font);font-size:13px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:var(--font);font-size:13px;color:inherit}

/* ── LAYOUT ── */
.app{display:flex;height:100vh;overflow:hidden}

/* ── SIDEBAR — Premium Dark ── */
.sidebar{width:var(--sb);flex-shrink:0;background:#111410;display:flex;flex-direction:column;height:100vh;overflow:hidden;transition:width .22s cubic-bezier(.4,0,.2,1);border-right:1px solid rgba(255,255,255,.04)}
.sidebar.collapsed{width:var(--sb-collapsed)}
.sidebar::-webkit-scrollbar{width:0}

/* top wordmark bar */
.sb-top{padding:0 16px;border-bottom:1px solid rgba(255,255,255,.04);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:54px;min-height:54px;gap:8px}
.sb-wordmark{display:flex;flex-direction:column;justify-content:center;overflow:hidden;flex:1;min-width:0;transition:opacity .18s,width .22s}
.sb-wordmark-name{font-size:12px;font-weight:800;color:rgba(255,255,255,.88);letter-spacing:-.03em;white-space:nowrap;line-height:1.2}
.sb-wordmark-sub{font-size:8px;color:rgba(255,255,255,.2);font-family:var(--mono);letter-spacing:.07em;margin-top:2px;white-space:nowrap}
.sidebar.collapsed .sb-wordmark{opacity:0;width:0;overflow:hidden}

/* toggle button */
.sb-toggle-btn{flex-shrink:0;background:transparent;border:none;padding:6px;cursor:pointer;color:rgba(255,255,255,.22);border-radius:5px;transition:color .13s,background .13s;display:flex;align-items:center}
.sb-toggle-btn:hover{color:rgba(255,255,255,.6);background:rgba(255,255,255,.06)}

/* nav scroll area */
.sb-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 8px 8px}
.sb-scroll::-webkit-scrollbar{width:0}

/* group labels */
.sb-section{padding:0 0 4px}
.sb-lbl{font-size:7.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.16);padding:12px 10px 5px;white-space:nowrap;overflow:hidden;transition:opacity .15s,height .15s,padding .15s}
.sidebar.collapsed .sb-lbl{opacity:0;height:0;overflow:hidden;padding:0!important}

/* nav items */
.nav{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:6px;cursor:pointer;transition:background .12s,color .12s;color:rgba(255,255,255,.32);font-size:11.5px;font-weight:600;letter-spacing:-.01em;margin-bottom:1px;user-select:none;white-space:nowrap;overflow:hidden;position:relative}
.nav:hover:not(.on){background:rgba(255,255,255,.05);color:rgba(255,255,255,.65)}
.nav.on{background:rgba(255,255,255,.07);color:#fff}
.nav.on::before{content:'';position:absolute;left:0;top:5px;bottom:5px;width:2.5px;background:#4ade80;border-radius:0 2px 2px 0}

/* nav icon — SVG-based, fixed size */
.nav-ic{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .12s}
.nav.on .nav-ic{opacity:1}
.nav-ic svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.nav-txt{flex:1;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s,width .2s}
.nav-ct{margin-left:auto;font-size:8px;font-family:var(--mono);padding:2px 6px;border-radius:10px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.28);flex-shrink:0;font-weight:700;letter-spacing:.02em;transition:background .12s,color .12s}
.nav.on .nav-ct{background:rgba(74,222,128,.12);color:rgba(74,222,128,.8)}

/* collapsed state */
.sidebar.collapsed .nav-txt,.sidebar.collapsed .nav-ct{opacity:0;width:0;overflow:hidden}
.sidebar.collapsed .nav{padding:0!important;height:36px;justify-content:center}
.sidebar.collapsed .nav::before{display:none}
.sidebar.collapsed .nav-ic{width:36px!important;height:36px!important}
.sidebar.collapsed .nav-ic svg{width:16px;height:16px}
.sidebar.collapsed .sb-section{padding:0!important}

/* divider */
.sb-div{height:1px;background:rgba(255,255,255,.04);margin:4px 10px}
.sidebar.collapsed .sb-div{margin:4px 6px}

/* footer */
.sb-foot{padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.04);flex-shrink:0}
.sb-foot-workspace{font-size:9px;font-weight:700;letter-spacing:.04em;color:rgba(255,255,255,.22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-foot-meta{font-size:8px;color:rgba(255,255,255,.13);font-family:var(--mono);margin-top:3px;white-space:nowrap;overflow:hidden;display:flex;align-items:center;gap:5px}
.sb-foot-dot{width:4px;height:4px;border-radius:50%;background:#4ade80;flex-shrink:0;animation:pulse 2.5s ease-in-out infinite}
.sidebar.collapsed .sb-foot{padding:8px 0;display:flex;justify-content:center}
.sidebar.collapsed .sb-foot-workspace,.sidebar.collapsed .sb-foot-meta{display:none}
.sidebar.collapsed .sb-health-text{display:none}

/* legacy — keep for JS compat */
.sb-brand-text{display:none}
.sb-health-text{display:none}
.live-dot{display:none}
.live-txt{display:none}
.live-row{display:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}

/* ── MAIN ── */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}

/* TOPBAR */




/* KPI STRIP */

.kpi-strip::-webkit-scrollbar{height:0}

.kpi-item:last-child{border-right:none;margin-left:auto}


.kpi-val.green{color:var(--green)}

.kpi-tag{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;margin-top:4px}

/* PAGES */
.pages{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.page{display:none}
.page.on{display:flex;flex-direction:column;height:100%;overflow:hidden}
.page:not(.on) .pg-header,.page:not(.on) .pg-footer{display:none!important}

/* Scrollable content inside each page */
.page-body{flex:1;min-height:0;overflow-y:auto;padding:20px 24px 32px;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;}
.page-body::-webkit-scrollbar{width:4px}
.page-body::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px}

/* Pages without a pg-header get default scroll area */
.page.on:not(:has(.pg-header)) .page-body{padding-top:24px}

/* ── SECTION ── */
.sec{display:flex;align-items:center;gap:10px;margin-bottom:12px;margin-top:24px}
.sec:first-child{margin-top:0}
.sec-t{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.sec-line{flex:1;height:1px;background:var(--bd)}
.badge{font-size:10px;font-family:var(--mono);padding:2px 9px;border-radius:20px;border:1px solid var(--bd);background:var(--s2);color:var(--ink4);white-space:nowrap}
.sig-badge{font-size:10px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.sig-green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-bd)}
.sig-amber{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-bd)}
.sig-red{background:var(--red-bg);color:var(--red);border:1px solid var(--red-bd)}
.sig-blue{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-bd)}

/* ── STORY CARDS (the new big addition) ── */
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.story-card{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:16px 18px;box-shadow:none;transition:box-shadow .14s,border-color .14s;position:relative;overflow:hidden}
.story-card:hover{box-shadow:var(--shadow);border-color:var(--bd2)}
.story-card-accent{position:absolute;top:0;left:0;bottom:0;width:4px;border-radius:4px 0 0 4px}
.story-icon{font-size:22px;margin-bottom:8px}
.story-headline{font-family:var(--serif);font-size:22px;font-style:italic;line-height:1.15;margin-bottom:6px;color:var(--ink)}
.story-body{font-size:12px;color:var(--ink2);line-height:1.6}
.story-action{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:11px;font-weight:700;color:var(--green);cursor:pointer}
.story-action:hover{text-decoration:underline}
.story-card.warn .story-headline{color:var(--amber)}
.story-card.danger .story-headline{color:var(--red)}
.story-card.good .story-headline{color:var(--green)}
.story-card.info .story-headline{color:var(--blue)}

/* ── KPI CARDS ── */
.kg{display:grid;gap:10px;margin-bottom:12px}
.kg.c4{grid-template-columns:repeat(4,1fr)}
.kg.c5{grid-template-columns:repeat(5,1fr)}
.kg.c3{grid-template-columns:repeat(3,1fr)}
.kg.c2{grid-template-columns:repeat(2,1fr)}
.kc{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:14px 16px;position:relative;overflow:hidden;box-shadow:none;transition:box-shadow .13s,border-color .13s}
.kc:hover{box-shadow:var(--shadow);border-color:var(--bd2)}
.kc-stripe{position:absolute;top:0;left:0;right:0;height:3px;border-radius:3px 3px 0 0}
.kc-emoji{font-size:18px;margin-bottom:6px;margin-top:4px;display:block}
.kc-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);margin-bottom:5px}
.kc-val{font-family:var(--serif);font-size:24px;line-height:1;margin-bottom:4px}
.kc-val.sm{font-size:18px}
.kc-sub{font-size:11px;color:var(--ink3);line-height:1.4}
.kc-pill{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;margin-top:6px}
.pill-green{background:var(--green-bg);color:var(--green)}
.pill-amber{background:var(--amber-bg);color:var(--amber)}
.pill-red{background:var(--red-bg);color:var(--red)}
.pill-blue{background:var(--blue-bg);color:var(--blue)}
.pill-grey{background:var(--s3);color:var(--ink3)}

/* ── GRID LAYOUTS ── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}
.g21{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px}
.g31{display:grid;grid-template-columns:3fr 1fr;gap:12px;margin-bottom:12px}
.mb12{margin-bottom:12px}
.card{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);overflow:hidden;box-shadow:none;transition:box-shadow .13s}
.card:hover{box-shadow:var(--shadow)}
.card-head{padding:12px 16px;border-bottom:1px solid var(--bd);background:var(--s2);display:flex;align-items:center;gap:8px}
.card-title{font-size:12px;font-weight:700;color:var(--ink2);flex:1;letter-spacing:-.01em}
.card-note{font-size:10px;color:var(--ink3)}
.card-body{padding:16px}
.card-body.np{padding:0}
.cw{position:relative;width:100%}
.cw canvas{width:100%!important}

/* ── TAGS ── */
.tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:20px;font-size:9px;font-weight:700;white-space:nowrap;border:1px solid transparent}
.t-open{background:var(--green-bg);color:var(--green);border-color:var(--green-bd)}
.t-hold{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-bd)}
.t-won{background:var(--blue-bg);color:var(--blue);border-color:var(--blue-bd)}
.t-lost{background:var(--red-bg);color:var(--red);border-color:var(--red-bd)}
.div-tag{display:inline-flex;padding:2px 7px;border-radius:4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.d-DM{background:var(--green-bg);color:var(--c-dm)}
.d-MF{background:var(--blue-bg);color:var(--c-mf)}
.d-EA{background:#f3e8fb;color:var(--c-ea)}
.d-CI{background:var(--amber-bg);color:var(--c-ci)}
.d-ALM{background:#e0f2f7;color:#0e7490}

/* ── DEAL TABLE ── */
.ctrl{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.chip{padding:4px 11px;border-radius:20px;border:1px solid var(--bd);background:var(--s);font-size:11px;font-weight:600;color:var(--ink2);cursor:pointer;transition:all .12s;white-space:nowrap;box-shadow:none}
.chip:hover{border-color:var(--bd2);color:var(--ink)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.sw{position:relative;margin-left:auto}
.sw svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:12px;height:12px;color:var(--ink4);pointer-events:none}
.sinput{background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:6px 12px 6px 28px;font-size:12px;font-weight:500;color:var(--ink);outline:none;width:190px;transition:all .13s}
.sinput:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(21,93,50,.1)}
.sinput::placeholder{color:var(--ink4);font-weight:400}
.fsel{background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:6px 25px 6px 10px;font-size:11px;font-weight:600;color:var(--ink2);appearance:none;cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239a9890' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
.tbl{width:100%;border-collapse:collapse}
.tbl thead tr{border-bottom:1px solid var(--bd)}
.tbl th{padding:8px 11px;text-align:left;font-size:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);background:var(--s2);white-space:nowrap;cursor:pointer;user-select:none;position:sticky;top:0;z-index:2;transition:color .12s}
.tbl th:hover{color:var(--green)}
.tbl td{font-size:11px;padding:9px 11px;border-bottom:1px solid var(--bd);vertical-align:middle;color:var(--ink2)}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--s2);cursor:pointer}
.tbl tr.row-won td{opacity:.6}
.tbl tr.row-lost td{opacity:.55;background:var(--red-bg)}
.deal-nm{font-weight:700;font-size:12px;letter-spacing:-.02em;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.deal-cl{font-size:10px;color:var(--ink2);margin-top:1px;font-weight:500}
.prob-bar-wrap{display:flex;align-items:center;gap:6px}
.prob-bar{width:44px;height:3px;background:var(--s3);border-radius:2px;overflow:hidden;flex-shrink:0}
.prob-fill{height:100%;border-radius:2px}
.row-acts{display:flex;gap:4px;opacity:0;transition:opacity .12s}
.tbl tr:hover .row-acts{opacity:1}
.act-btn{padding:3px 9px;border-radius:4px;border:1px solid var(--bd);background:var(--s);color:var(--ink3);font-size:10px;font-weight:600;cursor:pointer;transition:all .11s}
.act-btn:hover{border-color:var(--green);color:var(--green)}
.empty{text-align:center;padding:52px 20px;color:var(--ink4)}

/* ── FUNNEL ── */
.funnel{display:flex;flex-direction:column;gap:2px}
.frow{display:grid;grid-template-columns:190px 1fr 38px 90px 76px;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r);transition:background .12s}
.frow:hover{background:var(--s2)}
.frow-lbl{font-size:11px;font-weight:600;color:var(--ink2)}
.frow-track{height:18px;background:var(--s3);border-radius:4px;overflow:hidden}
.frow-fill{height:100%;border-radius:4px;transition:width .7s cubic-bezier(.4,0,.2,1)}
.frow-n{font-family:var(--mono);font-size:11px;text-align:right;color:var(--ink3)}
.frow-v{font-family:var(--serif);font-size:13px;text-align:right}

/* ── DONUT ── */
.donut-wrap{display:flex;align-items:center;gap:16px}
.donut-cw{position:relative;flex-shrink:0}
.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}
.donut-val{font-family:var(--serif);font-size:16px;line-height:1}
.donut-lbl{font-size:8px;font-family:var(--mono);color:var(--ink4);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.legend{display:flex;flex-direction:column;flex:1}
.leg-row{display:flex;align-items:center;gap:7px;padding:5px 0;border-bottom:1px solid var(--bd)}
.leg-row:last-child{border-bottom:none}
.leg-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.leg-name{flex:1;font-size:11px;color:var(--ink2);font-weight:600}
.leg-val{font-family:var(--serif);font-size:13px}
.leg-pct{font-family:var(--mono);font-size:10px;color:var(--ink4);width:32px;text-align:right}

/* ── FORM ── */
.form-wrap{max-width:800px;margin:0 auto}
.fsec{margin-bottom:22px}
.fsec-t{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--bd)}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.fg.c3{grid-template-columns:1fr 1fr 1fr}
.fgrp{display:flex;flex-direction:column;gap:4px}
.fgrp.span2{grid-column:1/-1}
.fl{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.fl .req{color:var(--red);margin-left:2px}
.fi{background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:8px 11px;font-size:13px;font-weight:500;color:var(--ink);outline:none;width:100%;transition:all .13s;box-shadow:none}
.fi:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.10);outline:none}
.fi::placeholder{color:var(--ink4);font-weight:400}
.fi-sel{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239a9890' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:26px}
.fi-ta{resize:vertical;min-height:70px}
.fi-range{width:100%;accent-color:var(--green);cursor:pointer}
.fi-calc{background:var(--green-bg);border:1px solid var(--green-bd);border-radius:var(--r);padding:10px 13px;display:flex;align-items:center;justify-content:space-between}
.fi-calc-v{font-family:var(--serif);font-size:22px;color:var(--green);font-style:italic}
.fi-calc-n{font-size:9px;color:var(--green);font-family:var(--mono);opacity:.7}
.prob-row{display:grid;grid-template-columns:1fr 160px 50px;align-items:center;gap:10px;padding:9px 12px;background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);margin-bottom:6px}
.prob-lbl{font-size:12px;font-weight:600;color:var(--ink)}
.prob-desc{font-size:10px;color:var(--ink4);margin-top:1px}.prob-weight{font-size:9px;font-weight:700;color:var(--green);font-family:var(--mono);background:var(--green-bg);padding:1px 6px;border-radius:4px;margin-left:6px;letter-spacing:.02em}
.prob-num{font-family:var(--mono);font-size:13px;font-weight:600;text-align:center;color:var(--green)}
.prob-note{background:var(--green-bg);border:1px solid var(--green-bd);border-radius:var(--r);padding:10px 13px;font-size:11px;color:var(--green);line-height:1.65;margin-bottom:12px}
.form-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--bd)}

/* ── BUTTONS ── */
.btn{background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:7px 16px;font-size:12px;font-weight:700;color:var(--ink2);cursor:pointer;transition:all .12s;white-space:nowrap;box-shadow:none}
.btn:hover{border-color:var(--bd2);color:var(--ink)}
.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}
.btn-primary:hover{background:var(--ink2)}
.btn-green{background:var(--green);color:#fff;border-color:var(--green);font-weight:600;}
.btn-green:hover{background:#1a7040}
.btn-danger{color:var(--red);border-color:var(--red-bd)}
.btn-danger:hover{background:var(--red-bg)}

/* ── MODAL ── */
.overlay{display:none;position:fixed;inset:0;background:rgba(23,22,14,.42);z-index:900;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.overlay.on{display:flex}
.modal{background:var(--s);border:1px solid var(--bd);border-radius:var(--r3);width:680px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:mshow .16s ease}
@keyframes mshow{from{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}
.modal::-webkit-scrollbar{width:4px}
.modal::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px}
.modal-head{padding:18px 20px 14px;border-bottom:1px solid var(--bd);display:flex;align-items:flex-start;justify-content:space-between;background:var(--s2)}
.modal-title{font-family:var(--serif);font-size:17px;font-style:italic;line-height:1.3}
.modal-sub{font-size:11px;color:var(--ink2);margin-top:3px;font-weight:500}
.mx{background:none;border:none;cursor:pointer;color:var(--ink4);font-size:19px;line-height:1;transition:color .12s;padding:2px}
.modal-tile{padding:14px 16px;background:var(--s2);border:1px solid var(--bd);border-radius:var(--r2);text-align:center}
.mx:hover{color:var(--ink)}
.modal-body{padding:18px 20px}
.modal-foot{padding:12px 20px 16px;border-top:1px solid var(--bd);display:flex;gap:8px;background:var(--s2)}
.msec-t{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--bd)}
.mrow{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--bd);font-size:12px}
.mrow:last-child{border-bottom:none}
.mrow-k{color:var(--ink2);font-weight:600}
.mrow-v{color:var(--ink);font-weight:600;text-align:right;max-width:280px;word-break:break-word}
.comp-row{display:grid;grid-template-columns:160px 1fr 50px;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--bd)}
.comp-row:last-child{border-bottom:none}
.comp-lbl{font-size:11px;color:var(--ink2);font-weight:600}
.comp-bar-bg{height:4px;background:var(--s3);border-radius:2px;overflow:hidden}
.comp-bar-fill{height:100%;border-radius:2px;background:var(--green)}
.comp-val{font-family:var(--mono);font-size:11px;font-weight:600;text-align:right;color:var(--green)}

/* ── RANKING TABLE ── */
.rank-row{display:grid;gap:10px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--bd);cursor:pointer;transition:background .12s;border-radius:var(--r)}
.rank-row:hover{background:var(--s2)}
.rank-row:last-child{border-bottom:none}
.rank-n{font-family:var(--mono);font-size:11px;color:var(--ink4);text-align:center;font-weight:600}

/* ── HEALTH SCORE ── */
.health-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--bd)}
.health-row:last-child{border-bottom:none}
.health-label{font-size:12px;font-weight:700;color:var(--ink2)}
.health-desc{font-size:11px;color:var(--ink3);margin-top:2px;line-height:1.5}
.health-right{display:flex;align-items:center;gap:8px}
.hbar-wrap{width:80px}
.hbar-bg{height:6px;background:var(--s3);border-radius:3px;overflow:hidden}
.hbar-f{height:100%;border-radius:3px}
.hpill{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;min-width:42px;text-align:center}

/* ── TIMING ROWS ── */
.trow{display:grid;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--bd);cursor:pointer;transition:background .12s;border-radius:var(--r)}
.trow:hover{background:var(--s2)}
.trow:last-child{border-bottom:none}
.thead{font-size:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink4);background:var(--s2);border-bottom:1px solid var(--bd)}

/* MISC */
.mono{font-family:var(--mono)}
.serif{font-family:var(--serif)}
.t-green{color:var(--green)}.t-amber{color:var(--amber)}.t-red{color:var(--red)}.t-blue{color:var(--blue)}.t-muted{color:var(--ink4)}
.fw7{font-weight:700}.fw8{font-weight:800}
/* ── RESPONSIVE ── */
@media(max-width:1200px){.hide-md{display:none!important}}
@media(max-width:1024px){
  .story-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px) and (min-width:769px){
  .sidebar{width:var(--sb-collapsed)}
  .sidebar .sb-wordmark{opacity:0;width:0;overflow:hidden}
  .sidebar .sb-lbl{opacity:0;height:0;overflow:hidden;padding:0}
  .sidebar .nav-txt,.sidebar .nav-ct{opacity:0;width:0;overflow:hidden}
  .sidebar .nav{padding:0;height:36px;justify-content:center}
  .sidebar .nav::before{display:none}
  .sidebar .nav-ic{width:36px;height:36px}
  .sidebar .sb-foot{padding:8px 0;justify-content:center}
  .sidebar .sb-foot-workspace,.sidebar .sb-foot-meta{display:none}
  .sidebar .sb-section{padding:0}
  .sidebar .sb-div{margin:4px 6px}
  .sidebar.expanded,.sidebar:hover{width:var(--sb)}
  .sidebar.expanded .sb-wordmark,.sidebar:hover .sb-wordmark{opacity:1;width:auto;overflow:visible}
  .sidebar.expanded .sb-lbl,.sidebar:hover .sb-lbl{opacity:1;height:auto;padding:12px 10px 5px}
  .sidebar.expanded .nav-txt,.sidebar:hover .nav-txt,
  .sidebar.expanded .nav-ct,.sidebar:hover .nav-ct{opacity:1;width:auto;overflow:visible}
  .sidebar.expanded .nav,.sidebar:hover .nav{padding:7px 10px;height:auto;justify-content:flex-start}
  .sidebar.expanded .nav-ic,.sidebar:hover .nav-ic{width:16px;height:16px}
  .sidebar.expanded .nav::before,.sidebar:hover .nav::before{display:block}
  .sidebar.expanded .sb-foot,.sidebar:hover .sb-foot{padding:12px 16px 16px;justify-content:flex-start}
  .sidebar.expanded .sb-foot-workspace,.sidebar:hover .sb-foot-workspace,
  .sidebar.expanded .sb-foot-meta,.sidebar:hover .sb-foot-meta{display:flex}
  .sidebar.expanded .sb-section,.sidebar:hover .sb-section{padding:0}
  .sidebar.expanded .sb-div,.sidebar:hover .sb-div{margin:4px 10px}
  .sidebar:not(.expanded) .sb-top{border-bottom-color:transparent}
}
@media(max-width:768px){
  /* Mobile: sidebar becomes off-canvas drawer */
  .sidebar{
    position:fixed;top:0;left:0;height:100dvh;z-index:200;width:var(--sb)!important;
    transform:translateX(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);
    box-shadow:4px 0 32px rgba(0,0,0,.4);
  }
  .sidebar.mobile-open{transform:translateX(0)!important}
  .sidebar .sb-wordmark{opacity:1!important;width:auto!important;overflow:visible!important}
  .sidebar .sb-lbl{opacity:1!important;height:auto!important;padding:12px 10px 5px!important}
  .sidebar .nav-txt,.sidebar .nav-ct{opacity:1!important;width:auto!important;overflow:visible!important}
  .sidebar .nav{padding:7px 10px!important;height:auto!important;justify-content:flex-start!important}
  .sidebar .nav::before{display:block!important}
  .sidebar .nav-ic{width:16px!important;height:16px!important}
  .sidebar .sb-foot{padding:12px 16px 16px!important;justify-content:flex-start!important}
  .sidebar .sb-foot-workspace,.sidebar .sb-foot-meta{display:flex!important}
  .sidebar .sb-section{padding:0!important}
  .sidebar .sb-div{margin:4px 10px!important}
  /* Main: pad for topbar */
  .main{padding-top:var(--mob-top)}
  .page-body{padding:16px 16px calc(var(--mob-bot) + env(safe-area-inset-bottom, 0px) + 20px);-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;}
  #pg-add .page-body{padding-bottom:calc(var(--mob-bot) + env(safe-area-inset-bottom,0px) + 80px)!important}
  .pg-header{margin:0;padding-left:16px;padding-right:14px}
  /* Show mobile elements */
  .mobile-topbar{display:flex!important}
  .bottom-nav{display:flex!important}
  .mob-backdrop{display:block!important}
  /* Grid */
  .story-grid,.g2,.g3,.g21,.g31{grid-template-columns:1fr!important}
  .kg,.kg.c5{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:600px){
  /* 5-item bottom nav — tighten labels */
  .bn-label{font-size:8px;letter-spacing:0}
  .bn-icon svg{width:18px;height:18px}
  .bn-item{padding:5px 2px 3px;gap:3px}
  .opp-filter-grid{grid-template-columns:1fr;gap:10px}
  .kanban-board{grid-template-columns:repeat(2,minmax(150px,1fr))}
  .opp-cards-grid{grid-template-columns:1fr}
  .kg,.kg.c5{grid-template-columns:1fr!important}

  .story-grid,.g2,.g3,.g21,.g31{grid-template-columns:1fr}
  .kg.c4,.kg.c5,.kg.c3,.kg.c2{grid-template-columns:1fr 1fr}
  .page-body{padding:12px 12px calc(var(--mob-bot) + env(safe-area-inset-bottom, 0px) + 12px)}
  .frow{grid-template-columns:110px 1fr 32px 80px;gap:6px;padding:5px 6px}
  .frow-lbl{font-size:10px}
  .modal{width:100vw;margin:0;border-radius:var(--r2) var(--r2) 0 0;max-height:92vh;position:fixed;bottom:0;left:0;right:0}
  
  
  .fg,.fg.c3{grid-template-columns:1fr}
  
  
  .tbl th:nth-child(3),.tbl td:nth-child(3),.tbl th:nth-child(5),.tbl td:nth-child(5),.tbl th:nth-child(10),.tbl td:nth-child(10){display:none}
  .ctrl{gap:4px}
  .chip{font-size:10px;padding:3px 8px}
  .sinput{width:140px}
}

.rep-section{margin-bottom:18px}
.rep-section h4{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink4);margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--bd)}
.rep-para{font-size:13px;line-height:1.8;color:var(--ink2);margin-bottom:10px}
.rep-para strong{color:var(--ink)}
.rep-list{margin-left:18px;margin-bottom:10px}
.rep-list li{font-size:13px;line-height:2;color:var(--ink2)}
.sus-row{display:grid;grid-template-columns:1fr 90px 80px 70px 60px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--bd);gap:10px;cursor:pointer;transition:background .12s}
.sus-row:hover{background:var(--s2)}

/* ── OPPORTUNITIES PAGE ── */
.opp-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.opp-search-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:200px;max-width:360px}
.opp-search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:var(--ink4);pointer-events:none}
.opp-search{width:100%;background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:7px 32px 7px 30px;font-size:12px;color:var(--ink);outline:none;transition:all .13s}
.opp-search:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(21,93,50,.08)}
.opp-search-clear{position:absolute;right:8px;background:none;border:none;cursor:pointer;color:var(--ink4);font-size:16px;line-height:1;padding:2px;display:none}
.opp-search-clear.show{display:block}
.view-toggle{display:flex;background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;flex-shrink:0}
.view-btn{padding:6px 11px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--ink4);transition:all .12s;border-right:1px solid var(--bd)}
.view-btn:last-child{border-right:none}
.view-btn.active{background:var(--ink);color:#fff}
.view-btn:hover:not(.active){background:var(--s3);color:var(--ink)}
.opp-sort{background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:6px 24px 6px 10px;font-size:11px;font-weight:600;color:var(--ink2);appearance:none;cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239a9890' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;white-space:nowrap}
.opp-count-strip{font-size:11px;color:var(--ink4);font-family:var(--mono);white-space:nowrap;padding:0 4px}
.opp-filter-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--s);border:1px solid var(--bd);border-radius:var(--r);font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer;transition:all .12s;margin-left:auto;white-space:nowrap;box-shadow:none}
.opp-filter-btn:hover{border-color:var(--green);color:var(--green)}
.opp-filter-btn.active{background:var(--ink);border-color:var(--ink);color:#fff}
.opp-filter-badge{background:var(--green);color:#fff;border-radius:10px;padding:1px 6px;font-size:9px;font-weight:800;font-family:var(--mono)}
.opp-filter-panel{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}
.opp-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 24px}
@media(max-width:900px){.opp-filter-grid{grid-template-columns:repeat(2,1fr);gap:12px}}
@media(max-width:600px){.opp-filter-grid{grid-template-columns:1fr}}
.opp-filter-group{}
.opp-filter-label{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink4);margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--bd)}
.opp-multi{display:flex;flex-direction:column;gap:5px}
.opp-multi label{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink2);cursor:pointer;transition:color .12s}
.opp-multi label:hover{color:var(--ink)}
.opp-multi input[type=checkbox]{accent-color:var(--green);cursor:pointer;width:13px;height:13px;flex-shrink:0}
.opp-range-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.opp-range-lbl{font-size:10px;color:var(--ink4);width:24px;flex-shrink:0}
.opp-range-row input[type=range]{flex:1;accent-color:var(--green)}
.opp-range-val{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--green);width:36px;text-align:right;flex-shrink:0}
.opp-filter-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--bd);margin-top:12px}
.opp-active-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;min-height:0}
.opp-active-chips:empty{margin-bottom:0}
.opp-chip-active{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:var(--ink);color:#fff;border-radius:20px;font-size:10px;font-weight:600;cursor:pointer;transition:background .12s}
.opp-chip-active:hover{background:var(--ink2)}
.opp-chip-active .chip-x{font-size:12px;opacity:.6;line-height:1}

/* ── TABLE VIEW ENHANCEMENTS ── */
.tbl tr.row-expanded td{background:var(--s2)}
.tbl tr.row-expanded td:first-child{box-shadow:inset 3px 0 0 var(--green)}
.deal-wv{font-family:var(--mono);font-size:11px;color:var(--green);font-weight:600}
.deal-owner{font-size:10px;color:var(--ink4);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── KANBAN VIEW ── */
.kanban-board{display:grid;grid-template-columns:repeat(8,minmax(180px,1fr));gap:10px;overflow-x:auto;padding-bottom:12px;min-height:300px}
@media(max-width:900px){.kanban-board{grid-template-columns:repeat(4,minmax(160px,1fr))}}
@media(max-width:600px){.kanban-board{grid-template-columns:repeat(2,minmax(150px,1fr))}}
.kanban-col{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r2);display:flex;flex-direction:column;min-height:120px}
.kanban-col-head{padding:10px 12px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.kanban-col-title{font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--ink2)}
.kanban-col-badge{font-family:var(--mono);font-size:10px;background:var(--bd);color:var(--ink4);padding:1px 7px;border-radius:10px;font-weight:600}
.kanban-col-body{padding:8px;display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto;max-height:420px}
.kanban-card{background:var(--s);border:1px solid var(--bd);border-radius:var(--r);padding:10px 11px;cursor:pointer;transition:all .13s;box-shadow:none}
.kanban-card:hover{box-shadow:var(--shadow);border-color:var(--bd2);transform:translateY(-1px)}
.kanban-card-name{font-size:11px;font-weight:700;color:var(--ink);line-height:1.3;margin-bottom:5px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.kanban-card-val{font-family:var(--serif);font-size:12px;margin-bottom:4px}
.kanban-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.kanban-col-total{font-size:9px;font-family:var(--mono);color:var(--ink4);padding:6px 12px;border-top:1px solid var(--bd);text-align:center;flex-shrink:0}

/* ── CARDS VIEW ── */
.opp-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:900px){.opp-cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.opp-cards-grid{grid-template-columns:1fr}}
.opp-card{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:0;box-shadow:none;cursor:pointer;transition:all .14s;overflow:hidden}
.opp-card-lost{opacity:.65;filter:grayscale(25%)}
.opp-card-lost:hover{opacity:.8}
.opp-card:hover{box-shadow:var(--shadow);border-color:var(--bd2)}
.opp-card-head{padding:13px 15px 10px;border-bottom:1px solid var(--bd);background:var(--s2)}
.opp-card-name{font-size:12px;font-weight:700;color:var(--ink);line-height:1.35;margin-bottom:3px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.opp-card-client{font-size:10px;color:var(--ink4)}
.opp-card-body{padding:12px 15px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opp-card-metric{display:flex;flex-direction:column;gap:2px}
.opp-card-metric-lbl{font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink4)}
.opp-card-metric-val{font-size:13px;font-weight:700;color:var(--ink2)}
.opp-card-footer{padding:9px 15px;border-top:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between}
.opp-card-prob-bar{height:3px;background:var(--s3);border-radius:2px;overflow:hidden;flex:1;margin:0 10px}
.opp-card-prob-fill{height:100%;border-radius:2px}

/* ── SUMMARY BAR ── */
.opp-summary-bar{background:var(--ink);color:rgba(255,255,255,.7);padding:8px 20px;display:flex;align-items:center;gap:10px;font-size:11px;font-family:var(--mono);margin:0 -24px 12px;flex-wrap:wrap;border-radius:0}
.opp-summary-bar strong{color:#fff;font-weight:800}
.opp-summary-sep{opacity:.25}

#toast{position:fixed;bottom:20px;right:20px;background:var(--ink);color:#fff;border-radius:var(--r);padding:11px 16px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;z-index:9999;box-shadow:var(--shadow-lg);transform:translateY(10px);opacity:0;transition:all .2s;max-width:300px}
#toast.show{transform:none;opacity:1}

/* ── MOBILE VARS ── */
:root{--mob-top:44px;--mob-bot:56px}

/* ── MOBILE TOPBAR ── */
.mobile-topbar{
  display:none;height:var(--mob-top);background:#0e1117;
  position:fixed;top:0;left:0;right:0;z-index:210;
  align-items:center;padding:0 14px;gap:10px;
  border-bottom:1px solid rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.mob-hamburger{background:transparent;border:none;padding:8px;cursor:pointer;
  color:rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;
  border-radius:6px;transition:all .13s}
.mob-hamburger:hover,.mob-hamburger:focus{background:rgba(255,255,255,.1);color:#fff}
.mob-page-title{font-family:var(--serif);font-size:13px;font-style:italic;color:#fff;flex:1;letter-spacing:-.02em}
.mob-sdg-mark{width:22px;height:22px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
  border-radius:4px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0}
.mob-sdg-mark span{font-family:var(--serif);font-size:7px;font-weight:800;color:rgba(255,255,255,.8);letter-spacing:.03em}
.mob-sdg-mark-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--green);opacity:.7}

/* ── MOBILE BACKDROP ── */
.mob-backdrop{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);
  z-index:190;opacity:0;transition:opacity .25s;pointer-events:none;
}
.mob-backdrop.show{opacity:1;pointer-events:auto}

/* ── BOTTOM NAV ── */
.bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;
  height:calc(var(--mob-bot) + env(safe-area-inset-bottom,0px));
  background:rgba(250,249,244,.88);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
  border-top:1px solid rgba(0,0,0,.1);
  z-index:195;
  align-items:stretch;padding-bottom:env(safe-area-inset-bottom,0px);
  /* ensure touch targets fill the full nav height */
  padding-left:0;padding-right:0;
}
.bn-item{
  flex:1;width:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:4px;cursor:pointer;border:none;
  background:transparent;padding:6px 4px 4px;color:var(--ink3);
  transition:color .12s;position:relative;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  min-height:44px;
  box-sizing:border-box;
  outline:none;
}
.bn-item.active{color:var(--green)}
.bn-item.active::after{
  content:'';position:absolute;top:0;left:20%;right:20%;
  height:2px;background:var(--green);border-radius:0 0 3px 3px;
}
.bn-icon{
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.bn-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.bn-label{font-size:9px;font-weight:700;letter-spacing:.02em;font-family:var(--mono);white-space:nowrap}

/* ── BOTTOM SHEET (More menu) ── */
.mob-sheet{
  position:fixed;bottom:calc(var(--mob-bot) + env(safe-area-inset-bottom,0px));left:0;right:0;z-index:300;
  background:rgba(252,251,247,.96);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
  backdrop-filter:blur(24px) saturate(160%);
  border-radius:16px 16px 0 0;
  box-shadow:0 -4px 24px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.06);
  transform:translateY(calc(100% + var(--mob-bot) + env(safe-area-inset-bottom,0px)));
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  max-height:calc(70dvh - var(--mob-bot));overflow-y:auto;
  padding-bottom:8px;
}
.mob-sheet.open{transform:translateY(0)}
.mob-sheet-handle{width:36px;height:4px;background:var(--bd2);border-radius:2px;margin:12px auto 4px}
.mob-sheet-item{
  display:flex;align-items:center;gap:14px;padding:14px 20px;
  cursor:pointer;font-size:13px;font-weight:600;color:var(--ink2);
  border-bottom:1px solid var(--bd);transition:background .12s;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  min-height:48px;user-select:none;
}
.mob-sheet-item:last-child{border-bottom:none}
.mob-sheet-item:hover,.mob-sheet-item:active{background:rgba(0,0,0,.04)}
.mob-sheet-item.active{color:var(--green)}
.mob-sheet-ic{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink3)}
.mob-sheet-ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ── PAGE HEADER ── */
.pg-header{
  position:relative;top:auto;z-index:10;flex-shrink:0;
  background:var(--s);border-bottom:1px solid var(--bd);
  box-shadow:0 1px 8px rgba(0,0,0,.04);
  margin:0;
  padding:0 20px 0 24px;
  height:52px;
  display:flex;align-items:center;gap:10px;
}
.pg-hd-icon{font-size:16px;flex-shrink:0;line-height:1}
.pg-hd-body{flex:1;min-width:0}
.pg-hd-title{font-family:var(--serif);font-size:16px;font-style:italic;color:var(--ink);line-height:1}
.pg-hd-sub{font-size:9px;color:var(--ink4);font-family:var(--mono);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
.pg-hd-action{flex-shrink:0;display:flex;align-items:center;gap:6px}

/* ── PAGE FOOTER (legacy — hidden, replaced by app-footer) ── */
.pg-footer{display:none!important}

/* ── APP FOOTER (shared single instance) ── */
.app-footer{
  flex-shrink:0;
  height:32px;min-height:32px;
  padding:0 24px;
  border-top:1px solid var(--bd);
  background:var(--s2);
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;
}
.af-left{font-size:9px;color:var(--ink4);font-family:var(--mono);display:flex;align-items:center;gap:6px}
.af-dot{width:5px;height:5px;border-radius:50%;background:var(--green);opacity:.7;flex-shrink:0;animation:pulse 2.5s ease-in-out infinite}
.af-page{font-size:9px;color:var(--ink4);font-family:var(--mono);padding:1px 7px;border-radius:10px;background:var(--s3);border:1px solid var(--bd)}
.af-right{font-size:9px;color:var(--ink4);font-family:var(--mono);display:flex;align-items:center;gap:10px}
.af-sep{opacity:.3}
@media(max-width:768px){.app-footer{display:none}}

/* Tablet collapsed: hide sb-top border so no line appears */


.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}



.btn-xl-dl{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:var(--green);color:#fff;border:none;border-radius:var(--r);font-size:11px;font-weight:700;font-family:var(--font);cursor:pointer;transition:background .13s;white-space:nowrap;}
.btn-xl-dl:hover{background:var(--green-bd);filter:brightness(.92);}

.f-stage-hint{transition:opacity .2s;}

/* ── TV / Presentation mode ──────────────────────────────── */
.ov-div-row + .ov-div-row { margin-top: 0; }

@media (min-width: 1400px) {
  /* Wider screens: give the division target rows more breathing room */
  #ov-div-targets .ov-div-row { padding: 20px 0; }
}

/* Division target tracker */
.div-tgt-bar-track {
  height: 8px;
  background: var(--s3);
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--bd);
}
.div-tgt-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width .7s ease;
}

/* ═══════════════════════════════════════════════════════════
   OVERVIEW — TV / Desktop / Mobile responsive
═══════════════════════════════════════════════════════════ */

/* Hero card */

/* Tiles */

/* Section cards */

/* Division tracker rows */

/* Near-close deal cards */

/* Funnel (bottom) */

/* ── TV MODE (≥1600px) ────────────────────────────────────── */
@media (min-width:1600px){
}

/* ── TABLET (≤1024px) ─────────────────────────────────────── */
@media (max-width:1024px){
}

/* ── MOBILE (≤640px) ──────────────────────────────────────── */
@media (max-width:640px){
}

.sb-brand-name{font-size:13px;font-weight:700;color:rgba(255,255,255,.88);letter-spacing:-.01em;white-space:nowrap;line-height:1.2}
.sb-brand-sub{font-size:8px;color:rgba(255,255,255,.28);font-family:var(--mono);letter-spacing:.08em;margin-top:2px;white-space:nowrap;text-transform:uppercase}


/* ═══════════════════════════════════════════════════════════
   TARGETS PAGE — Company card, Division cards, Stage chart
═══════════════════════════════════════════════════════════ */

/* Company wrapper */

/* Bar */

/* Stat strip */

/* Section divider before division cards */

/* Division cards grid */

/* Pipeline by Project Stage — pure HTML */

/* Near-close */

/* ═══════════════════════════════════════════════════════════
   OVERVIEW helpers (used by initOverview)
═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════
   MOBILE — 768px and below
═══════════════════════════════════════════════════════════ */
@media (max-width:768px) {
  /* Layout */
  .page-body{padding:12px 12px calc(var(--mob-bot) + env(safe-area-inset-bottom, 0px) + 12px)}
  .g2,.g3,.g4{grid-template-columns:1fr;gap:10px;margin-bottom:10px}
  .kg.c4{grid-template-columns:repeat(2,1fr)}
  .kg.c3{grid-template-columns:repeat(2,1fr)}
  .card-head{padding:10px 14px}

  /* Page header */
  .pg-header{padding:10px 14px;gap:8px}
  .pg-hd-action .btn{font-size:10px;padding:4px 9px}

  /* Targets — company headline */

  /* Division cards: single column on mobile */

  /* Stage chart */

  /* Near-close */

  /* Overview */
  .kg.c4.mb8,.kg.c4.mb12{grid-template-columns:repeat(2,1fr)}

  /* Form */
  .form-wrap{max-width:100%}
  .fg{grid-template-columns:1fr!important}
  .fg.c2,.fg.c3{grid-template-columns:1fr}
  .fgrp.span2{grid-column:auto}
  /* Extra padding so Save button always clears the bottom nav */
  #pg-add .page-body{padding-bottom:calc(var(--mob-bot) + env(safe-area-inset-bottom,0px) + 80px)!important}

  /* Opportunities */
  .opp-toolbar{flex-wrap:wrap;gap:8px}
  .opp-count-strip{display:none}
}

@media (max-width:480px) {
  .page-body{padding:10px 10px calc(var(--mob-bot) + env(safe-area-inset-bottom, 0px) + 20px)}
  #pg-add .page-body{padding-bottom:calc(var(--mob-bot) + env(safe-area-inset-bottom,0px) + 80px)!important}
  .kg.c4{grid-template-columns:1fr 1fr}
}

/* ═══════════════════════════════════════════════════════════
   TARGETS PAGE — Z-pattern 3-zone layout
═══════════════════════════════════════════════════════════ */

/* ZONE A: hero + chips */
.tgt-zone-a{display:grid;grid-template-columns:1fr 220px;gap:12px;margin-bottom:12px;align-items:stretch}
.tgt-hero-card{}
.tgt-chips-grid{display:grid;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr);gap:8px}
.tgt-chip{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:14px 16px}
.tgt-chip-lbl{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.tgt-chip-val{font-family:var(--serif);font-size:18px;color:var(--ink);line-height:1;margin-bottom:3px}
.tgt-chip-sub{font-size:9px;color:var(--ink4)}

/* ZONE B: 4-column division cards */
.tgt-zone-b{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:var(--r2);overflow:hidden;margin-bottom:12px}
.tgt-div-col{background:var(--s);display:flex;flex-direction:column}
.tgt-div-col-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:0}
.tgt-div-col-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.tgt-div-col-pct{font-family:var(--serif);font-size:20px;font-style:italic;font-weight:700;line-height:1}
.tgt-div-col-name{font-size:11px;font-weight:700;color:var(--ink);margin-bottom:3px;line-height:1.3}
.tgt-div-col-tgt{font-size:9px;color:var(--ink4);margin-bottom:12px}
.tgt-div-col-bar-wrap{height:8px;background:var(--s3);border-radius:4px;overflow:hidden;border:1px solid var(--bd);margin-bottom:4px;display:flex}
.tgt-div-col-bar-lbl{display:flex;justify-content:space-between;font-size:8px;color:var(--ink4);margin-bottom:12px}
.tgt-div-col-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:auto}
.tgt-div-col-stat{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:7px 8px;text-align:center}
.tgt-div-col-stat-v{font-family:var(--serif);font-size:16px;color:var(--ink);line-height:1;margin-bottom:2px}
.tgt-div-col-stat-l{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink4)}

/* ZONE C: 2-col bottom row */
.tgt-zone-c{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}

/* Stage chart */
.pstage-wrap{padding:8px 14px 12px}
.pstage-legend{display:flex;gap:14px;padding:4px 0 10px;flex-wrap:wrap;border-bottom:1px solid var(--bd);margin-bottom:8px}
.pstage-row{display:grid;grid-template-columns:88px 1fr 28px 72px;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid var(--s3)}
.pstage-row:last-child{border-bottom:none}
.pstage-lbl{font-size:10px;font-weight:600;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pstage-bar-wrap{height:14px;background:var(--s3);border-radius:3px;overflow:hidden;position:relative}
.pstage-count{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--ink);text-align:right}
.pstage-val{font-family:var(--serif);font-size:11px;color:var(--ink);text-align:right;white-space:nowrap}

/* Near-close */
.tgt-near-head{display:flex;justify-content:space-between;padding:7px 14px;background:var(--s2);border-bottom:2px solid var(--bd);font-size:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink4)}
.tgt-near-row{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--bd);cursor:pointer;transition:background .1s;gap:8px}
.tgt-near-name{flex:1;min-width:0}
.tgt-near-title{font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}
.tgt-near-meta{font-size:9px;color:var(--ink4)}
.tgt-near-right{text-align:right;flex-shrink:0}
.tgt-near-val{font-family:var(--mono);font-size:11px;font-weight:700;white-space:nowrap;margin-bottom:1px}
.tgt-near-prob{font-size:9px;font-weight:700;font-family:var(--mono)}
.tgt-near-foot{display:flex;justify-content:space-between;padding:9px 14px;background:var(--s2);border-top:2px solid var(--bd);font-size:10px;font-weight:700;color:var(--ink3)}

/* ov- helpers for overview page */
.ov-hero-card{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:20px 24px;margin-bottom:14px}
.ov-tiles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.ov-tile{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);padding:16px 18px}
.ov-tile-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink4);margin-bottom:8px}
.ov-tile-val{font-family:var(--serif);font-size:24px;font-style:italic;line-height:1;margin-bottom:5px}
.ov-tile-sub{font-size:9px;color:var(--ink4);line-height:1.4}
.ov-tracker-row{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--bd)}
.ov-tracker-row:last-child{border-bottom:none}
.ov-tracker-meta{display:flex;align-items:center;gap:10px}
.ov-tracker-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.ov-tracker-info{flex:1;min-width:0}
.ov-tracker-name{font-size:11px;font-weight:700;color:var(--ink2);margin-bottom:2px}
.ov-tracker-stats{font-size:9px;color:var(--ink4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-tracker-pct{font-family:var(--serif);font-size:18px;font-style:italic;font-weight:700;flex-shrink:0;min-width:48px;text-align:right}
.ov-tracker-bars{display:flex;flex-direction:column;gap:7px}
.ov-tracker-bar-row{display:grid;grid-template-columns:48px 1fr 64px;gap:8px;align-items:center}
.ov-tracker-bar-lbl{font-size:8px;font-weight:700;text-transform:uppercase;color:var(--ink4);text-align:right}
.ov-tracker-bar-track{height:10px;background:var(--s3);border-radius:5px;overflow:hidden;border:1px solid var(--bd)}
.ov-tracker-bar-fill{height:100%;border-radius:5px;transition:width .8s ease}
.ov-tracker-bar-tgt{font-size:8px;color:var(--ink4);font-family:var(--mono);white-space:nowrap}
.ov-deals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ov-deal-card{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:12px 14px;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow-xs)}
.ov-deal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
.ov-deal-name{font-size:11px;font-weight:700;color:var(--ink);line-height:1.3;flex:1;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ov-deal-val{font-family:var(--serif);font-size:15px;color:var(--ink);flex-shrink:0}
.ov-deal-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px;font-size:9px;color:var(--ink4)}
.ov-deal-foot{display:flex;align-items:center;gap:8px}
.ov-prob-bar-track{flex:1;height:3px;background:var(--s3);border-radius:2px;overflow:hidden}
.ov-prob-bar-fill{height:100%;border-radius:2px;transition:width .6s}
.ov-prob-num{font-family:var(--mono);font-size:10px;font-weight:800;flex-shrink:0;min-width:28px;text-align:right}
.ov-funnel-wrap{padding:4px 8px 8px}
.ov-funnel-head{display:grid;grid-template-columns:150px 1fr 48px 80px;gap:8px;padding:6px 8px;border-bottom:1px solid var(--bd)}
.ov-funnel-th{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink4)}
.ov-funnel-th-n,.ov-funnel-th-v{font-size:8px;font-weight:700;text-transform:uppercase;color:var(--ink4);text-align:right}
.ov-funnel-row{display:grid;grid-template-columns:150px 1fr 48px 80px;gap:8px;padding:7px 8px;border-radius:4px;align-items:center;transition:background .1s}
.ov-funnel-lbl{font-size:11px;font-weight:600;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-funnel-bar-wrap{height:14px;background:var(--s3);border-radius:3px;overflow:hidden}
.ov-funnel-bar{height:100%;border-radius:3px;transition:width .6s ease}
.ov-funnel-n{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink);text-align:right}
.ov-funnel-v{font-family:var(--serif);font-size:12px;color:var(--ink);text-align:right}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — 768px and below
═══════════════════════════════════════════════════════════ */
@media (max-width:768px) {
  .page-body{padding:12px 12px calc(var(--mob-bot) + env(safe-area-inset-bottom, 0px) + 12px)}
  .g2,.g3,.g4{grid-template-columns:1fr;gap:10px;margin-bottom:10px}
  .kg.c4{grid-template-columns:repeat(2,1fr)}
  .kg.c3{grid-template-columns:repeat(2,1fr)}
  .card-head{padding:10px 14px}
  .pg-header{padding:10px 14px;gap:8px}
  .pg-hd-action .btn{font-size:10px;padding:4px 9px}

  /* Targets zones */
  .tgt-zone-a{grid-template-columns:1fr;gap:10px}
  .tgt-chips-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:auto}
  .tgt-zone-b{grid-template-columns:repeat(2,1fr)}
  .tgt-zone-c{grid-template-columns:1fr;gap:10px}
  .tgt-div-col-stats{grid-template-columns:repeat(3,1fr)}
  .pstage-row{grid-template-columns:80px 1fr 24px 60px;gap:6px}
  .pstage-lbl{font-size:9px}
  .tgt-near-head,.tgt-near-row{font-size:9px}

  /* Overview */
  .ov-tiles-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .kg.c4.mb8,.kg.c4.mb12{grid-template-columns:repeat(2,1fr)}
  .ov-deals-grid{grid-template-columns:1fr}
  .ov-tracker-row{grid-template-columns:1fr;gap:8px}
  .ov-tracker-meta{justify-content:space-between}
  .ov-funnel-head,.ov-funnel-row{grid-template-columns:110px 1fr 36px 64px}

  /* Form */
  .form-wrap{max-width:100%}
  .fg{grid-template-columns:1fr!important}
  .fg.c2,.fg.c3{grid-template-columns:1fr}
  .fgrp.span2{grid-column:auto}
  .opp-toolbar{flex-wrap:wrap;gap:8px}
  .opp-count-strip{display:none}
}

@media (max-width:480px) {
  .page-body{padding:10px 10px calc(var(--mob-bot) + env(safe-area-inset-bottom, 0px) + 12px)}
  .tgt-zone-b{grid-template-columns:1fr}
  .tgt-chips-grid{grid-template-columns:1fr 1fr}
  .tgt-chip-val{font-size:15px}
  .kg.c4{grid-template-columns:1fr 1fr}
  .ov-tiles-grid{grid-template-columns:1fr 1fr;gap:6px}
  .pstage-row{grid-template-columns:72px 1fr 22px 52px}
  .pstage-lbl{font-size:8px}
}

/* Stage chart target reference line */
.pstage-tgt-line{
  position:absolute;top:0;height:100%;width:2px;
  background:var(--red);opacity:.7;
  border-left:2px dashed var(--red);
  pointer-events:none;
  z-index:2;
}

.fg.c2{grid-template-columns:1fr 1fr}
.heatmap-row:hover{background:var(--s2)}

/* Targets page containers */
.tgt-company{background:var(--s);border:1px solid var(--bd);border-radius:var(--r2);margin-bottom:12px}
.tgt-div-rows{border-top:0}
.tgt-near-head{display:flex;justify-content:space-between;padding:7px 16px;background:var(--s2);border-bottom:2px solid var(--bd);font-size:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink4)}
.tgt-near-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--bd);cursor:pointer;transition:background .1s;gap:12px}
.tgt-near-row:hover{background:var(--s2)}
.tgt-near-name{flex:1;min-width:0}
.tgt-near-title{font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}
.tgt-near-meta{font-size:9px;color:var(--ink4)}
.tgt-near-right{text-align:right;flex-shrink:0}
.tgt-near-val{font-family:var(--serif);font-size:16px;line-height:1;margin-bottom:1px}
.tgt-near-prob{font-size:11px;font-weight:800;font-family:var(--mono)}
.tgt-near-foot{display:flex;justify-content:space-between;padding:9px 16px;background:var(--s2);border-top:2px solid var(--bd);font-size:10px;font-weight:700}

/* ── OVERVIEW GAUGE ROW RESPONSIVE ──────────────── */
.ov-gauge-row{display:grid;grid-template-columns:300px 1fr;gap:10px;align-items:center}
@media(max-width:900px){
  .ov-gauge-row{grid-template-columns:1fr}
  .ov-gauge-card{order:2}
  .ov-kpis-top-wrap{order:1}
}
@media(max-width:768px){
  .ov-division-near-row{grid-template-columns:1fr!important}
}



/* ═══════════════════════════════════════════════════════════
   FOOTER — centre label (only defined once)
═══════════════════════════════════════════════════════════ */
.af-center{
  font-size:9px;color:var(--ink4);font-family:var(--mono);
  position:absolute;left:50%;transform:translateX(-50%);
  white-space:nowrap;
}
.app-footer{position:relative}

/* ═══════════════════════════════════════════════════════════
   REVENUE PAGE
   Scoped entirely to #pg-revenue and .rv-* classes.
   No overrides of global classes (modal, page-body, etc.)
═══════════════════════════════════════════════════════════ */

/* ── toolbar ── */
.rv-toolbar{
  padding:14px 16px 10px;
  border-bottom:1px solid var(--bd);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.rv-toolbar-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.rv-toolbar-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

/* search */
.rv-search-wrap{
  position:relative;
  flex:1;
  min-width:160px;
  max-width:260px;
}
.rv-search-icon{
  position:absolute;left:9px;top:50%;transform:translateY(-50%);
  opacity:.35;pointer-events:none;
}
.rv-search-inp{
  width:100%;
  padding:7px 28px 7px 28px;
  font-size:11px;
  font-family:var(--mono);
  border:1px solid var(--bd);
  border-radius:var(--r);
  background:var(--s2);
  color:var(--ink);
  outline:none;
  transition:border-color .12s,box-shadow .12s;
  box-sizing:border-box;
}
.rv-search-inp:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(22,163,74,.1);
}
.rv-search-inp::placeholder{color:var(--ink4);opacity:.6}

/* filter chips */
.rv-chips{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap}
.rv-chips .chip{font-size:9px;padding:4px 12px}
/* semantic color for active status chips */
#rv-chip-paid.on{background:#16a34a;border-color:#16a34a}
#rv-chip-pending.on{background:#2563eb;border-color:#2563eb}
#rv-chip-running.on{background:#d97706;border-color:#d97706}
/* division chip colors when active */
#rv-dchip-CI.on{background:var(--c-ci);border-color:var(--c-ci)}
#rv-dchip-MF.on{background:var(--c-mf);border-color:var(--c-mf)}
#rv-dchip-EA.on{background:var(--c-ea);border-color:var(--c-ea)}
#rv-dchip-DM.on{background:var(--c-dm);border-color:var(--c-dm)}
#rv-dchip-ALM.on{background:#0e7490;border-color:#0e7490}

/* select controls */
.rv-sort-sel{
  font-size:10px;
  padding:6px 10px;
  border:1px solid var(--bd);
  border-radius:var(--r);
  background:var(--s2);
  color:var(--ink3);
  font-family:var(--mono);
  cursor:pointer;
  flex-shrink:0;
  outline:none;
  transition:border-color .12s,color .12s;
}
.rv-sort-sel:hover,.rv-sort-sel:focus{border-color:var(--bd2);color:var(--ink)}

/* ── table ── */
.rv-table{width:100%;border-collapse:collapse;font-size:11px}
.rv-thead-row{border-bottom:2px solid var(--bd);background:var(--s2)}
.rv-row{cursor:pointer;transition:background .1s}
.rv-row:hover{background:var(--s2)}
.rv-row:active{background:var(--s3)}

/* ── modal form inputs ── */
.rv-lbl{
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.09em;
  color:var(--ink4);
  margin-bottom:5px;
}
.rv-inp{
  width:100%;
  box-sizing:border-box;
  padding:8px 10px;
  font-size:12px;
  font-family:var(--font);
  border:1px solid var(--bd);
  border-radius:var(--r);
  background:var(--s2);
  color:var(--ink);
  outline:none;
  transition:border-color .12s,box-shadow .12s;
  -webkit-appearance:none;
  appearance:none;
}
.rv-inp:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(22,163,74,.11);
}
.rv-inp::placeholder{color:var(--ink4);opacity:.6}
select.rv-inp{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23706d65'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  padding-right:28px;
}

/* modal — widen invoice modal only (class set by rvOpenForm) */
@media(min-width:601px){
  .modal-rv{width:min(660px,92vw)!important}
}

/* ═══════════════════════════════════════════════════════════
   REVENUE RESPONSIVE — scoped to rv-* only.
   Never override global classes (page-body, modal, pg-hd-*).
═══════════════════════════════════════════════════════════ */

/* ≤900px: tablet landscape — hide secondary columns */
@media(max-width:900px){
  .rv-col-entity,.rv-col-payment{display:none}
  #rv-kpis.kg.c5{grid-template-columns:repeat(3,1fr)!important}
  .rv-search-wrap{max-width:none;flex:1}
}

/* ≤768px: tablet portrait */
@media(max-width:768px){
  .rv-toolbar-controls{flex-wrap:wrap;gap:6px}
  .rv-chips .chip{font-size:9px;padding:2px 8px}
  #rv-kpis.kg.c5{grid-template-columns:repeat(2,1fr)!important}
}

/* ≤600px: phone landscape / large phone */
@media(max-width:600px){
  .rv-col-div,.rv-col-qtr{display:none}
  .rv-toolbar-controls{flex-direction:column;align-items:stretch;gap:6px}
  .rv-search-wrap{max-width:none;min-width:0;width:100%}
  .rv-chips{justify-content:flex-start}
  .rv-sort-sel{width:100%}
  .rv-modal-grid{grid-template-columns:1fr!important}
  #rv-kpis.kg.c5{grid-template-columns:1fr 1fr!important}
}

/* ≤480px: small phone */
@media(max-width:480px){
  #rv-kpis.kg.c5{grid-template-columns:1fr!important}
}
