/* Silo Finance v2 — Ported from v1 dashboard */
:root {
  --bg: #0f0f14;
  --surface: #161620;
  --surface2: #1e1e2a;
  --surface3: #272736;
  --border: rgba(255,255,255,.07);
  --border-hover: rgba(255,255,255,.14);
  --text: #f2f2f6;
  --text2: #9898b0;
  --text3: #52526a;
  --accent: #34d399;
  --accent-soft: rgba(52,211,153,.12);
  --accent-glow: rgba(52,211,153,.04);
  --accent-dim: rgba(52,211,153,.5);
  --green: #5eead4;
  --green-soft: rgba(94,234,212,.12);
  --red: #f87171;
  --red-soft: rgba(248,113,113,.12);
  --blue: #7cb8ff;
  --blue-soft: rgba(124,184,255,.12);
  --purple: #b8a4fb;
  --purple-soft: rgba(184,164,251,.12);
  --yellow: #fcd34d;
  --teal: #5eead4;
  --orange: #fbbf24;
  --chart-text: #8a8a96;
  --radius: 12px;
  --radius-sm: 8px;
  --font: 'DM Sans', -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
  --sidebar-w: 180px;
}
[data-theme="light"] {
  --bg: #f2ebe0;
  --surface: #ede5d8;
  --surface2: #e4dace;
  --surface3: #d8cfc2;
  --border: rgba(0,0,0,.08);
  --border-hover: rgba(0,0,0,.14);
  --text: #1c180e;
  --text2: #5a4e3c;
  --text3: #9a8a78;
  --accent: #166534;
  --accent-soft: rgba(22,101,52,.09);
  --accent-glow: rgba(22,101,52,.04);
  --accent-dim: rgba(5,150,105,.4);
  --green: #16a34a;
  --green-soft: rgba(22,163,74,.1);
  --red: #dc2626;
  --red-soft: rgba(220,38,38,.1);
  --blue: #2563eb;
  --blue-soft: rgba(37,99,235,.1);
  --purple: #7c3aed;
  --yellow: #d97706;
  --teal: #0d9488;
  --orange: #c05621;
  --chart-text: #666;
}
.sidebar-collapsed { --sidebar-w: 62px; }
*{margin:0;padding:0;box-sizing:border-box}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.45}
a{cursor:pointer}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}
select{appearance:none;-webkit-appearance:none;background-color:var(--surface2);border:1px solid var(--border);color:var(--text2);border-radius:8px;padding:6px 28px 6px 10px;font-size:15px;font-family:var(--font);font-weight:500;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;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='%23666'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:10px 6px}
select:hover{border-color:var(--border-hover);background-color:var(--surface3)}
select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(52,211,153,.1)}
select option{background:var(--bg);color:var(--text);padding:4px 8px}
.app-sel-sm{appearance:none!important;-webkit-appearance:none!important;font-size:14px!important;padding:6px 26px 6px 8px!important;border-radius:6px!important}
.app{display:flex;min-height:100vh}

/* TOP BAR */
/* ── Topbar v2 ── */
.topbar{position:fixed;top:0;left:0;right:0;height:52px;background:rgba(12,12,16,.88);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;z-index:30;-webkit-app-region:drag}
[data-theme="light"] .topbar{background:rgba(242,235,224,.92)}
[data-theme="walnut"] .topbar{background:rgba(18,14,10,.88)}
.topbar button,.topbar input,.topbar select,.topbar a,.topbar .btn,.topbar-right,.topbar-nav{-webkit-app-region:no-drag}

/* Left: logo + save dot */
.topbar-left{position:absolute;left:16px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:10px}
.topbar-brand{display:flex;align-items:center;position:relative}
.topbar-brand img{width:26px;height:26px;border-radius:7px;flex-shrink:0}
.tb-save-dot{position:absolute;top:-1px;right:-1px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid rgba(12,12,16,.88);transition:background .3s}
[data-theme="light"] .tb-save-dot{border-color:rgba(242,235,224,.92)}

/* Greeting (hidden in v2, kept for JS) */
.topbar-greeting-wrap{display:none}

/* Center nav */
.topbar-nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:2px}
.tb-nav-item{background:none;border:none;padding:7px 16px;font-size:13px;font-weight:500;color:var(--text3);font-family:var(--font);cursor:pointer;border-radius:20px;transition:all .2s;letter-spacing:.01em}
.tb-nav-item:hover{background:rgba(255,255,255,.05);color:var(--text)}
.tb-nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:0 0 12px rgba(52,211,153,.08)}

/* Right side */
.topbar-right{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:10px}

/* Add button — ghost/outline style */
.tb-add-btn{background:none;border:1px solid var(--border);color:var(--text2);padding:6px 14px;font-size:13px;font-weight:600;font-family:var(--font);border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}
.tb-add-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(52,211,153,.04)}
[data-theme="light"] .tb-add-btn{border-color:rgba(0,0,0,.12);color:var(--text2)}
[data-theme="light"] .tb-add-btn:hover{border-color:var(--accent);color:var(--accent)}

/* Account pill */
.topbar-account{position:relative}
.topbar-account-btn{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:5px 12px 5px 5px;cursor:pointer;transition:all .2s;color:var(--text)}
.topbar-account-btn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
.tb-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#000;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-transform:uppercase}
.tb-account-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}
.tb-chevron{font-size:10px;color:var(--text3);margin-left:-2px}

/* Account dropdown */
.topbar-account-drop{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:220px;box-shadow:0 8px 32px rgba(0,0,0,.4);z-index:200;overflow:hidden}
.topbar-account-drop-header{padding:14px 16px;border-bottom:1px solid var(--border)}
.topbar-account-drop-name{font-size:14px;font-weight:600;color:var(--text)}
.topbar-account-drop-email{font-size:12px;color:var(--text3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-account-drop-plan{font-size:11px;color:var(--accent);margin-top:4px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.tb-drop-section{padding:10px 16px;border-bottom:1px solid var(--border)}
.tb-drop-section-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.tb-drop-section-btns{display:flex;gap:4px}
.tb-drop-section-btn{flex:1;padding:6px 8px;font-size:13px;font-weight:500;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text3);cursor:pointer;font-family:var(--font);transition:all .15s;text-align:center}
.tb-drop-section-btn.active{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.tb-drop-section-btn:hover:not(.active){background:var(--surface2);color:var(--text)}
.tb-drop-nav{padding:4px 0}
.topbar-account-drop-btn{width:100%;padding:9px 16px;background:none;border:none;color:var(--text2);font-family:var(--font);font-size:13px;cursor:pointer;text-align:left;transition:all .15s;display:flex;align-items:center}
.topbar-account-drop-btn:hover{background:var(--surface2);color:var(--text)}
.tb-drop-divider{height:1px;background:var(--border)}
.tb-drop-signout-btn{color:var(--red)!important}
.tb-drop-signout-btn:hover{background:rgba(248,113,113,.08)!important}

/* Section toggle — always hidden in topbar, lives in account dropdown only */
#sectionToggleWrap{display:none!important}
/* Section toggle (kept for JS compat) */
.tg-btn{position:relative;z-index:2;padding:6px 20px;font-size:14px;font-weight:600;border:none;background:none;color:var(--text3);cursor:pointer;font-family:var(--font);transition:color .2s;border-radius:6px;letter-spacing:.02em;text-transform:uppercase}
.tg-btn.active{color:var(--text)}
.tg-slider{position:absolute;top:3px;left:3px;width:calc(50% - 4px);height:calc(100% - 6px);background:var(--surface3);border-radius:6px;transition:transform .25s ease;z-index:1;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.tg-slider.right{transform:translateX(calc(100% + 2px))}

/* Light theme overrides */
[data-theme="light"] .topbar-account-btn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.08)}
[data-theme="light"] .topbar-account-btn:hover{background:rgba(0,0,0,.07)}

/* Hide sidebar + dock — nav moved to topbar */
.sidebar{display:none!important}
#siloDockFloat{display:none!important}
.main{margin-left:0!important;width:100vw!important;padding-top:72px!important}

/* Menu bubble */
.menu-wrap{position:relative}
.menu-trigger{width:36px;height:36px;border-radius:8px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;transition:all .15s}
.menu-trigger:hover{border-color:var(--border-hover);background:var(--surface3)}
.menu-drop{position:absolute;top:40px;left:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px;min-width:200px;box-shadow:0 8px 30px rgba(0,0,0,.3);display:none;z-index:50}
.menu-drop.show{display:block}
.menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:15px;font-weight:500;color:var(--text2);cursor:pointer;transition:all .15s}
.menu-item:hover{background:var(--surface2);color:var(--text)}
.menu-sep{height:1px;background:var(--border);margin:4px 6px}
.save-ind{display:flex;align-items:center;gap:6px;font-size:15px;color:var(--text3)}
.save-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}

/* SIDEBAR */
.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;position:fixed;top:52px;height:calc(100vh - 52px);overflow-y:auto;overflow-x:visible;z-index:25;transition:width .3s cubic-bezier(.4,0,.2,1);box-shadow:1px 0 20px rgba(0,0,0,.08)}
.sidebar-collapsed .sidebar{overflow:visible}
.sidebar-logo{font-size:11px;font-weight:500;color:var(--text3);padding:10px 8px 8px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:visible;transition:padding .3s cubic-bezier(.4,0,.2,1);opacity:.5}
.sidebar-collapsed .sidebar-logo{padding:8px 0 8px}
.tab-switch{display:flex;gap:2px;padding:2px;background:var(--surface2);border-radius:6px;margin:0 4px 8px}
.sidebar-collapsed .tab-switch{flex-direction:column}
.tab-btn{flex:1;padding:4px;font-size:12px;font-weight:600;text-align:center;border-radius:5px;cursor:pointer;color:var(--text3);transition:all .2s;border:none;background:none;font-family:var(--font);white-space:nowrap;overflow:hidden}
.tab-btn.active{background:var(--surface3);color:var(--text)}
.sidebar-collapsed .tab-btn{font-size:12px;padding:4px 2px}

/* NAV ITEMS — expanded state */
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-size:16px;font-weight:500;color:var(--text2);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap;overflow:hidden;position:relative;transform-origin:left center}
.nav-item::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--accent);transition:transform .25s cubic-bezier(.4,0,.2,1);opacity:0}
.nav-item.active::before{transform:translateY(-50%) scaleY(1);opacity:1}
.nav-item:hover{background:var(--surface2);color:var(--text)}
.nav-item:active{transform:scale(.97);transition-duration:.1s}
.nav-item.active{background:var(--accent-soft);color:var(--accent)}
.nav-item.active:hover{background:var(--accent-soft)}
.nav-item .ni{font-size:20px;min-width:22px;text-align:center;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.nav-item:hover .ni{transform:scale(1.1)}
.nav-item:active .ni{transform:scale(.92)}
.nav-item .ni svg,.theme-toggle .ni svg,.collapse-btn .ni svg{width:18px;height:18px;stroke-width:1.75}

/* Active glow pulse (subtle) */
@keyframes navGlow{0%,100%{box-shadow:0 0 0 rgba(52,211,153,0)}50%{box-shadow:0 0 12px rgba(52,211,153,.08)}}
.nav-item.active{animation:navGlow 3s ease-in-out infinite}

/* NAV ITEMS — collapsed state: icon + tiny label stacked, dock bubble on hover */
.sidebar-collapsed .nav-item{
  flex-direction:column;justify-content:center;align-items:center;
  gap:3px;padding:10px 4px;overflow:visible;
  transform-origin:center center;
  width:100%;background:none;border-radius:10px;
}
.sidebar-collapsed .nav-item::before{left:0;width:3px;height:14px;border-radius:0 3px 3px 0}
.sidebar-collapsed .nav-item.active{
  background:var(--accent-soft);
}
.sidebar-collapsed .nav-item:hover{
  transform:scale(1.22);
  box-shadow:0 6px 24px rgba(0,0,0,.28);
  z-index:10;
  background:var(--surface2);
}
.sidebar-collapsed .nav-item.active:hover{
  transform:scale(1.22);
  background:var(--accent-soft);
  box-shadow:0 6px 24px rgba(52,211,153,.15);
}
/* neighbour magnification via JS class .dock-near */
.sidebar-collapsed .nav-item.dock-near{
  transform:scale(1.10);
  transition:transform .2s cubic-bezier(.34,1.56,.64,1);
}
/* Second-neighbour magnification */
.sidebar-collapsed .nav-item.dock-far{
  transform:scale(1.04);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
/* Show icon label (the span with page name) as tiny text under icon when collapsed */
.sidebar-collapsed .nav-item span:not(.ni){
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--text3);
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:52px;
  line-height:1.1;
  opacity:.7;
  transition:opacity .2s, transform .2s;
  transform:translateY(0);
}
.sidebar-collapsed .nav-item:hover span:not(.ni){opacity:1;transform:translateY(1px)}
.sidebar-collapsed .nav-item.active span:not(.ni){opacity:1;color:var(--accent)}

/* Remove old tooltip ::after for nav-items in collapsed state (labels replace them) */
.nav-item::after{display:none}

/* Footer items in collapsed mode */
.sidebar-collapsed .theme-toggle{flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px}
.sidebar-collapsed .theme-toggle span:not(.ni){display:block;font-size:12px;font-weight:600;color:var(--text3);text-align:center;letter-spacing:.02em}
.sidebar-collapsed .collapse-btn{flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px}
.sidebar-collapsed .collapse-btn span:not(.ni){display:block;font-size:12px;font-weight:600;color:var(--text3);text-align:center;letter-spacing:.02em}

/* Sidebar investment loading indicator */
.nav-item .nav-status{display:none;margin-left:auto;width:16px;height:16px;flex-shrink:0}
.sidebar-collapsed .nav-item .nav-status{display:none!important}
.nav-item.loading .nav-status{display:block}
.nav-item.loading .nav-status .spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:navSpin .6s linear infinite}
.nav-item.load-done .nav-status{display:block}
.nav-item.load-done .nav-status .checkmark{width:14px;height:14px;color:var(--accent);animation:navCheck .4s ease forwards}
@keyframes navSpin{to{transform:rotate(360deg)}}
@keyframes navCheck{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}100%{opacity:1;transform:scale(1)}}
.sidebar-footer{padding-top:8px;border-top:1px solid var(--border)}
.sidebar-nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;position:relative}
.sidebar-collapsed .sidebar-nav{overflow:visible;gap:6px}
.sidebar-collapsed .sidebar-footer{overflow:visible;gap:2px;display:flex;flex-direction:column}
#licenseBadge .badge-short{display:none}
.sidebar-collapsed #licenseBadge .badge-full{display:none}
.sidebar-collapsed #licenseBadge .badge-short{display:inline}
.collapse-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;border-radius:8px;font-size:15px;color:var(--text3);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;overflow:hidden;border:1px solid transparent;background:transparent;margin-top:6px}
.collapse-btn:hover{background:var(--surface2);color:var(--text);border-color:var(--border)}
.collapse-btn:active{transform:scale(.95);transition-duration:.1s}
.collapse-btn .ni{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.collapse-btn:hover .ni{transform:translateX(-2px)}
.sidebar-collapsed .collapse-btn:hover .ni{transform:translateX(2px)}
.theme-toggle{display:flex;align-items:center;gap:8px;padding:7px 8px;font-size:15px;color:var(--text2);cursor:pointer;border-radius:8px;transition:all .2s;white-space:nowrap;overflow:hidden}
.theme-toggle:hover{background:var(--surface2);color:var(--text)}
.theme-toggle:active{transform:scale(.95);transition-duration:.1s}
.theme-toggle .ni{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.theme-toggle:hover .ni{transform:rotate(-15deg) scale(1.1)}

/* TEXT READABILITY — bump smallest fonts */
.main{--min-font:10px}
.acc-sublabel,.stat-detail span,.top3-val,.top3-label,.isp-acct-meta span,.asp-bank-type,.asp-cc-inst,.rq-reason,.rq-acct,.pb-count,.pb-amount,.pb-tag,.lr-type,.ledger-section-label{font-size:12px !important}
/* MAIN */
.main{margin-left:var(--sidebar-w);padding:64px 28px 24px;width:calc(100vw - var(--sidebar-w));transition:margin-left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1)}
.page{display:none;opacity:0;transition:opacity 0.25s ease}.page.active{display:block;opacity:1}.page.page-fade-out{opacity:0}
.main-inner{max-width:1100px;margin:0 auto}
.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;flex-wrap:wrap;gap:12px}
.page-title{font-size:25px;font-weight:700;letter-spacing:-.03em}
.page-insight{font-size:15px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px 12px;white-space:nowrap;max-width:400px;overflow:hidden;text-overflow:ellipsis}
.page-insight:empty{display:none}
/* Inline category budget rows */
.scb-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:6px;transition:border-color .2s}
.scb-row:hover{border-color:var(--border-hover)}
.scb-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.scb-name{font-size:16px;font-weight:600;color:var(--text);min-width:100px}
.scb-bar-wrap{flex:1;height:6px;background:var(--surface3);border-radius:3px;position:relative;min-width:80px}
.scb-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}
.scb-spent{font-size:15px;font-weight:700;color:var(--text);min-width:70px;text-align:right}
.scb-limit{font-size:15px;color:var(--text3);min-width:50px;text-align:right}
.scb-pct{font-size:14px;font-weight:700;padding:2px 7px;border-radius:4px;min-width:42px;text-align:center}
.scb-input{width:80px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:15px;color:var(--text);font-family:var(--mono);outline:none;text-align:right}
.scb-input:focus{border-color:var(--accent)}
.scb-add{font-size:14px;color:var(--accent);cursor:pointer;font-weight:600;padding:2px 8px;border-radius:4px;border:1px dashed var(--accent);opacity:.6;transition:opacity .2s}
.scb-add:hover{opacity:1}
.page-sub{font-size:16px;color:var(--text2);margin-top:3px}
.period-pill{display:flex;gap:1px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.period-pill button{padding:5px 11px;font-size:13px;font-weight:500;border:none;background:none;color:var(--text3);border-radius:7px;cursor:pointer;font-family:var(--font);transition:all .15s}
.period-pill button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.period-pill button:hover:not(.active){color:var(--text);background:rgba(255,255,255,.05)}
#btnCustomRange{padding:5px 8px;display:flex;align-items:center;justify-content:center}
#btnCustomRange svg{opacity:.5;transition:opacity .15s}
#btnCustomRange:hover svg{opacity:1}
.rolling-toggle{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text3);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.rolling-toggle.active{background:var(--accent-soft);color:var(--accent);border-color:rgba(52,211,153,.2)}
.rolling-toggle:hover:not(.active){color:var(--text);background:var(--surface2)}
[data-tooltip]{position:relative}
[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:14px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:99999;box-shadow:0 4px 12px rgba(0,0,0,.3);opacity:1;font-family:var(--font)}
[data-tooltip]:hover::before{content:'';position:absolute;bottom:calc(100% + 1px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--surface2);pointer-events:none;z-index:99999}
[data-tooltip-pos="below"]:hover::after{bottom:auto;top:calc(100% + 6px)}
[data-tooltip-pos="below"]:hover::before{bottom:auto;top:calc(100% + 1px);border-top-color:transparent;border-bottom-color:var(--surface2)}
.silo-learned-tip{display:none;position:absolute;bottom:calc(100% + 10px);right:0;width:260px;background:var(--surface2);color:var(--text2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:400;line-height:1.6;white-space:normal;pointer-events:none;z-index:110;box-shadow:0 8px 24px rgba(0,0,0,.35);opacity:0;transition:opacity .2s ease}
#siloLearnedBadge:hover .silo-learned-tip{display:block;opacity:1}
.btn{padding:7px 16px;font-size:15px;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);transition:all .15s;display:inline-flex;align-items:center;gap:5px}
.btn-primary{background:var(--accent);color:#000}.btn-primary:hover{filter:brightness(1.1)}
.btn-ghost{background:none;border:1px solid var(--border);color:var(--text2)}.btn-ghost:hover{border-color:var(--border-hover);color:var(--text)}

/* STAT CARDS */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.stat-card:hover{border-color:var(--border-hover);transform:translateY(-1px)}
.top3-row:hover{background:var(--surface2);border-radius:4px;margin:0 -4px;padding:0 4px}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.stat-card.c-green::before{background:var(--green)}.stat-card.c-red::before{background:var(--red)}.stat-card.c-blue::before{background:var(--blue)}.stat-card.c-accent::before{background:var(--accent)}
.stat-label{font-size:14px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.stat-value{font-size:26px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.c-green .stat-value{color:var(--green)}.c-red .stat-value{color:var(--red)}.c-blue .stat-value{color:var(--blue)}.c-accent .stat-value{color:var(--accent)}
.stat-detail{font-size:16px;color:var(--text2);margin-top:6px;line-height:1.5}
.stat-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:5px;font-size:15px;font-weight:700}
.tag-up{background:var(--green-soft);color:var(--green)}.tag-down{background:var(--red-soft);color:var(--red)}
.stat-top3{margin-top:8px;border-top:1px solid var(--border);padding-top:7px}
.top3-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:15px}
.top3-label{color:var(--text2);display:flex;align-items:center;gap:5px}
.top3-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.top3-val{color:var(--text2);font-variant-numeric:tabular-nums;font-weight:600}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color .2s,transform .2s}
.card:hover{border-color:var(--border-hover);transform:translateY(-1px)}
.card:hover .acct-hint{opacity:1 !important}
.invest-tx-open #investTxList{display:block!important}
.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.card-title{font-size:16px;font-weight:600;color:var(--text)}.card-link{font-size:14px;color:var(--text2);cursor:pointer}.card-link:hover{color:var(--accent)}
.grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:10px;margin-bottom:16px;align-items:stretch;overflow:hidden}
.grid-2>.card{min-width:0}
.grid-2e{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}

/* SVG CHARTS — improved readability */
.axis-label{font-size:12px;fill:var(--text2);font-family:var(--font);font-weight:500}
.axis-label-y{font-size:12px;fill:var(--text2);font-family:var(--font);text-anchor:end;font-weight:500}
.grid-line{stroke:var(--border);stroke-width:1}
.chart-bar-el{transition:opacity .15s,filter .15s;cursor:pointer}.chart-bar-el:hover{opacity:1 !important;filter:brightness(1.3)}

.donut-wrap{display:flex;align-items:flex-start;gap:10px;padding:0;overflow:visible;flex:1}.donut-wrap svg{flex-shrink:0}
.donut-wrap svg circle[data-cat]{cursor:pointer}
.donut-magnify{position:relative;overflow:visible;flex-shrink:0;width:160px;height:160px;z-index:2}
.donut-magnify svg{transform-origin:center center;transition:transform .15s ease-out;will-change:transform}.donut-legend{display:flex;flex-direction:column;gap:1px;flex:1;overflow-y:auto;scrollbar-width:thin;padding:2px 0;max-height:260px}
.legend-item{display:flex;align-items:center;gap:5px;font-size:14px;color:var(--text);padding:3px 6px;border-radius:6px;cursor:pointer;transition:background .15s}
.legend-item:hover{background:var(--surface2)}
.legend-dot{width:8px;height:8px;border-radius:4px;flex-shrink:0}
.legend-val{margin-left:auto;font-weight:600;color:var(--text);font-size:14px;font-variant-numeric:tabular-nums}
.legend-pct{font-size:12px;color:var(--text2);margin-left:4px}

/* BUDGET */
.budget-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;justify-content:center}
.budget-grid .bcard{flex:0 1 calc(25% - 8px);min-width:220px;max-width:300px}
.bcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:all .2s}
@keyframes budgetFlash{0%,100%{box-shadow:0 0 0 0 rgba(248,113,113,0),inset 0 0 0 0 rgba(248,113,113,0)}50%{box-shadow:0 0 16px 4px rgba(248,113,113,.3),inset 0 0 20px rgba(248,113,113,.08)}}
.bcard-flash{animation:budgetFlash 1.6s ease-in-out infinite}
.trends-legend-item{transition:opacity .2s ease}
.bcard:hover{border-color:var(--border-hover);transform:translateY(-1px)}
.bcard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.bcard-cat{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:600;color:var(--text)}
.bcard-pct{font-size:12px;font-weight:700;padding:3px 6px;border-radius:4px}
.bcard-row{display:flex;justify-content:space-between;font-size:15px;margin-bottom:5px}
.bcard-spent{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.bcard-lim{color:var(--text2)}
.bcard-avg{font-size:12px;color:var(--text3);margin-bottom:5px}
.bbar{height:3px;background:var(--surface3);border-radius:2px;overflow:hidden}.bfill{height:100%;border-radius:2px}
.bcrb-btn{background:none;border:none;color:var(--text3);font-size:12px;font-family:var(--font);padding:4px 10px;border-radius:16px;cursor:pointer;transition:all .25s ease;font-weight:500;white-space:nowrap}
.bcrb-btn:hover{color:var(--text2)}
.bcrb-btn.active{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.collapse-bubble{display:flex;align-items:center;gap:0;background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:2px;overflow:hidden;transition:all .5s cubic-bezier(.25,.1,.25,1)}
.collapse-bubble .cb-btn{max-width:0;opacity:0;padding:4px 0;border:none;background:none;color:var(--text3);font-size:12px;font-family:var(--font);border-radius:16px;cursor:pointer;transition:max-width .45s cubic-bezier(.25,.1,.25,1),opacity .4s ease,padding .45s cubic-bezier(.25,.1,.25,1),background .2s ease,color .2s ease;font-weight:500;white-space:nowrap;overflow:hidden}
.collapse-bubble .cb-btn.active{max-width:80px;opacity:1;padding:4px 12px;background:var(--accent);color:#fff;font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.collapse-bubble:hover .cb-btn{max-width:80px;opacity:1;padding:4px 10px}
.collapse-bubble:hover .cb-btn:hover{color:var(--text);background:var(--surface3);border-radius:16px}
.collapse-bubble:hover .cb-btn.active{padding:4px 12px;background:var(--accent);color:#fff}

/* TX TABLE */
.search-wrap{position:relative}.search-wrap::before{content:'⌕';position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--text3)}
.search-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px 7px 28px;font-size:14px;color:var(--text);width:360px;font-family:var(--font);outline:none}
.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text3)}
table{width:100%;border-collapse:collapse}
th{font-size:12px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:7px 8px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:2}
td{font-size:14px;color:var(--text2);padding:8px;border-bottom:1px solid var(--border)}
tr{transition:background .1s}tr:hover{background:var(--accent-glow)}
.tx-desc{color:var(--text);font-weight:500}
.tx-amt{font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:15px}
/* TRANSACTION POPUP */
/* IMPORT REVIEW MODAL */
.review-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:110;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.review-overlay.show{opacity:1;pointer-events:all}
.review-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:1100px;max-width:96vw;height:97vh;max-height:97vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.5);overflow:hidden}
.review-head{padding:12px 22px 10px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.review-head h3{font-size:17px;font-weight:700;margin:0}
.review-head .review-count{font-size:14px;color:var(--text2);font-weight:500}
.review-body{overflow:hidden;flex:1;padding:0;min-height:0}
.review-row{display:flex;align-items:center;gap:8px;padding:7px 22px;border-bottom:1px solid var(--border);transition:background .15s;font-size:15px}
.review-row:nth-child(even){background:rgba(255,255,255,.015)}
.review-row:hover{background:rgba(52,211,153,.04)}
.review-row.is-dupe{opacity:.4}
.review-row .rv-check{width:16px;flex-shrink:0}
.review-row .rv-date{width:74px;flex-shrink:0;color:var(--text2);font-size:14px;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.review-row .rv-desc{flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;min-width:0;cursor:pointer}
.review-row .rv-desc:hover{color:var(--accent)}
.review-row .rv-amt{width:90px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:15px}
.review-row .rv-cat{width:120px;flex-shrink:0;display:flex;align-items:center;gap:3px}
.review-row .rv-cat select{border-radius:10px;padding:3px 16px 3px 8px;font-size:12px;line-height:1.2;font-family:var(--font);cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;background:var(--surface2);border:1.5px solid var(--border);color:var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23aaa'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 5px center;max-width:110px;text-align:center;text-align-last:center;transition:border-color .15s}
.review-row .rv-cat select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(52,211,153,.1)}
.review-row .rv-type{width:75px;flex-shrink:0}
.review-row .rv-type select{border-radius:6px;padding:3px 6px;font-size:12px;font-family:var(--font);cursor:pointer;outline:none;background:var(--surface2);border:1px solid var(--border);color:var(--text);text-align:center;text-align-last:center;width:100%;transition:border-color .15s}
.review-row .rv-type select:focus{border-color:var(--accent)}
.review-row .rv-remove{background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;transition:color .15s;opacity:.5}
.review-row .rv-remove:hover{color:var(--red);opacity:1}
/* Other category trainer */
.trainer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:250;display:flex;align-items:center;justify-content:center;animation:fadeIn .25s ease}
.trainer-card{background:var(--bg);border:1px solid var(--border);border-radius:20px;width:580px;max-width:92vw;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.trainer-header{padding:24px 24px 16px;border-bottom:1px solid var(--border)}
.trainer-body{flex:1;overflow-y:auto;padding:16px 24px}
.trainer-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}
.trainer-group{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:8px;transition:all .2s;overflow:hidden}
.trainer-group.resolved{border-color:var(--accent);background:rgba(52,211,153,.05)}
.trainer-group-head{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer}
.trainer-group-head:hover{background:rgba(255,255,255,.02)}
.trainer-group .t-expand{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:var(--surface2);color:var(--text3);font-size:14px;flex-shrink:0;transition:all .2s;border:1px solid var(--border)}
.trainer-group.open .t-expand{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);transform:rotate(90deg)}
.trainer-group .t-desc{flex:1;min-width:0}
.trainer-group .t-desc-name{font-size:16px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trainer-group .t-desc-meta{font-size:12px;color:var(--text3);margin-top:2px}
.trainer-group select{background:var(--surface2);border:1.5px solid var(--border);border-radius:8px;padding:6px 10px;font-size:15px;color:var(--text);font-family:var(--font);cursor:pointer;outline:none;min-width:130px;transition:border-color .15s}
.trainer-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(52,211,153,.08)}
.trainer-txlist{display:none;border-top:1px solid var(--border);background:var(--bg)}
.trainer-group.open .trainer-txlist{display:block}
.trainer-tx{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 46px;font-size:15px;border-bottom:1px solid var(--border)}
.trainer-tx:last-child{border-bottom:none}
.trainer-tx .tt-date{width:80px;flex-shrink:0;color:var(--text3);font-family:var(--mono);font-size:14px}
.trainer-tx .tt-desc{flex:1;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.trainer-tx .tt-amt{width:80px;text-align:right;font-family:var(--mono);font-weight:600;font-size:15px;flex-shrink:0}
.trainer-progress{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden;margin-top:12px}
.trainer-progress-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}
/* Import progress overlay */
.import-progress-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:260;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}
.import-progress-overlay.visible{opacity:1}
.import-progress-card{background:var(--bg);border:1px solid var(--border);border-radius:18px;width:420px;max-width:90vw;padding:32px 28px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.5);transform:scale(.92);transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}
.import-progress-overlay.visible .import-progress-card{transform:scale(1)}
.import-bar-track{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;margin:20px 0 16px}
.import-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#6ee7b7);border-radius:3px;width:0%;transition:width .15s linear}
.import-bar-fill.done{background:var(--accent);transition:width .3s ease}
.import-progress-card .ip-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px}
.import-progress-card .ip-sub{font-size:15px;color:var(--text2);line-height:1.5}
.import-progress-card .ip-count{font-size:14px;color:var(--text3);font-family:var(--mono);margin-bottom:4px}
.import-progress-card .ip-actions{display:flex;justify-content:center;gap:10px;margin-top:8px}
.import-done-check{width:44px;height:44px;border-radius:50%;background:rgba(52,211,153,.12);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;opacity:0;transform:scale(0);transition:all .35s cubic-bezier(.175,.885,.32,1.275)}
.import-done-check.show{opacity:1;transform:scale(1)}
@keyframes ipPulse{0%,100%{opacity:.7}50%{opacity:1}}
/* ═══ NEW IMPORT FLOW ═══ */
.scan-phase{animation:fadeInUp .5s cubic-bezier(.16,1,.3,1)}
@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.scan-phase .scan-welcome{font-size:29px;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:4px;line-height:1.2}
.scan-phase .scan-welcome-sub{font-size:17px;color:var(--text3);margin-bottom:32px;line-height:1.5;max-width:420px;margin-left:auto;margin-right:auto}
.scan-ring{margin:0}
.scan-ring circle{transition:stroke-dasharray 1.4s cubic-bezier(.16,1,.3,1) .4s}
.scan-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0;text-align:left}
.scan-stat{padding:14px 18px;background:linear-gradient(135deg,var(--surface) 0%,rgba(255,255,255,.02) 100%);border:1px solid var(--border);border-radius:12px;transition:transform .2s,border-color .2s}
.scan-stat:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.1)}
.scan-stat .ss-label{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.scan-stat .ss-val{font-size:20px;font-weight:800;color:var(--text);margin-top:4px}
.scan-stat .ss-val.green{color:var(--accent)}
.scan-stat .ss-val.red{color:var(--red)}
.scan-stat .ss-val.yellow{color:var(--yellow)}
.scan-acct-row{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:14px 0}
.scan-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}
.scan-actions .btn{min-width:140px}
/* ── Step indicator for import phases ── */
.import-steps{display:flex;align-items:center;justify-content:center;gap:0;margin:4px auto 6px;padding:0 20px;max-width:500px}
.import-step{display:flex;align-items:center;gap:10px;padding:8px 18px;border-radius:10px;font-size:16px;font-weight:700;color:var(--text3);transition:all .3s;position:relative}
.import-step.active{color:var(--accent);background:rgba(52,211,153,.08)}
.import-step.done{color:var(--text3);opacity:.5}
.import-step .is-num{width:26px;height:26px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;font-family:var(--mono);flex-shrink:0;transition:all .3s}
.import-step.active .is-num{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.import-step.done .is-num{background:transparent;border-color:var(--text3)}
.import-step-line{width:32px;height:2px;background:rgba(255,255,255,.08);flex-shrink:0;border-radius:1px}
.asm-activity-log{margin:0 20px 10px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.04);border-radius:10px;padding:6px 12px;overflow:hidden;position:relative;display:flex;align-items:center;gap:10px}
.asm-activity-log .aal-label{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);flex-shrink:0;display:flex;align-items:center;gap:5px;white-space:nowrap}
.asm-activity-log .aal-label .aal-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:aalPulse 2s ease infinite}
@keyframes aalPulse{0%,100%{opacity:.4}50%{opacity:1}}
.asm-activity-log .aal-ticker{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;gap:6px;align-items:center;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.asm-activity-log .aal-ticker::-webkit-scrollbar{display:none}
.asm-activity-log .aal-entry{font-size:15px;color:var(--text3);display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;white-space:nowrap;flex-shrink:0;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.03);transition:all .3s ease;animation:aalSlideIn .3s cubic-bezier(.16,1,.3,1) both}
.asm-activity-log .aal-entry.aal-latest{color:var(--text1);background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.12)}
.asm-activity-log .aal-entry .aal-icon{font-size:15px;flex-shrink:0;opacity:.6}
.asm-activity-log .aal-entry .aal-text{white-space:nowrap}
.asm-activity-log .aal-entry .aal-time{font-size:15px;color:var(--text3);opacity:.3;font-family:var(--mono);flex-shrink:0;margin-left:2px}
@keyframes aalSlideIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}
/* Teach mode */
/* ═══════════════════════════════════════════════════════
   TEACH MODE — Co-Processing Split-Pane Dashboard
   ═══════════════════════════════════════════════════════ */
/* ── Progress bar — spans full width above everything ── */
.teach-progress-bar{position:absolute;top:0;left:0;right:0;height:2px;z-index:20;background:rgba(255,255,255,.03);border-radius:0 0 16px 16px}
.teach-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),rgba(124,184,255,.6),var(--accent));background-size:200% 100%;animation:progressShimmer 3s ease infinite;border-radius:0 2px 2px 0;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px rgba(52,211,153,.3)}
@keyframes progressShimmer{0%{background-position:0% 0}50%{background-position:100% 0}100%{background-position:0% 0}}
/* ── Main split-pane container ── */
.teach-dashboard{display:flex;height:calc(100vh - 120px);gap:1px;border-radius:16px;overflow:hidden;background:var(--bg);position:relative}
/* ── LEFT: Ledger (68%) ── */
.teach-ledger{width:56%;display:flex;flex-direction:column;background:var(--surface);overflow:hidden;position:relative}
.ledger-header{display:flex;align-items:center;padding:14px 20px;background:var(--surface2);border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;gap:12px;position:sticky;top:0;z-index:5}
.ledger-header .lh-title{font-size:16px;font-weight:800;color:var(--text);letter-spacing:-.01em;flex:1}
.ledger-header .lh-stats{font-size:14px;color:var(--text3);font-weight:600;display:flex;align-items:center;gap:8px}
.ledger-header .lh-stats .lh-auto{color:var(--accent);font-weight:700}
.ledger-header .lh-stats .lh-manual{color:var(--yellow);font-weight:700}
.ledger-body{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}
.ledger-body::-webkit-scrollbar{width:5px}
.ledger-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:3px}
.ledger-row{display:flex;align-items:center;padding:12px 20px;gap:12px;border-bottom:1px solid rgba(255,255,255,.025);transition:all .3s ease;animation:rowFadeIn .35s ease both;cursor:default;position:relative}
.ledger-row:hover{background:rgba(255,255,255,.025)}
.ledger-row .lr-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:all .4s ease}
.ledger-row .lr-dot.pending{background:rgba(255,255,255,.12)}
.ledger-row .lr-dot.resolving{background:var(--accent);animation:dotPulse 1s ease-in-out infinite}
.ledger-row .lr-dot.resolved{background:var(--accent);box-shadow:0 0 6px rgba(52,211,153,.4)}
.ledger-row .lr-merchant{flex:1;min-width:0;font-size:16px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ledger-row .lr-count{font-size:14px;color:var(--text3);font-family:var(--mono);font-weight:600;flex-shrink:0;min-width:32px;text-align:center}
.ledger-row .lr-amount{font-size:15px;font-weight:700;font-family:var(--mono);flex-shrink:0;min-width:72px;text-align:right}
.ledger-row .lr-badge{flex-shrink:0;font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px;white-space:nowrap;opacity:0;transform:scale(.8);transition:all .35s cubic-bezier(.175,.885,.32,1.275)}
.ledger-row .lr-badge.visible{opacity:1;transform:scale(1)}
.ledger-row .lr-type{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;flex-shrink:0}
/* Resolving state — shimmer sweep */
.ledger-row.resolving{background:linear-gradient(90deg,transparent 0%,rgba(52,211,153,.04) 50%,transparent 100%);background-size:200% 100%;animation:rowFadeIn .35s ease both,shimmerResolve 1.5s ease-in-out infinite}
.ledger-row.resolving .lr-merchant{color:var(--accent)}
/* Resolved state */
.ledger-row.resolved{opacity:.55;transition:opacity .5s ease;cursor:pointer}
.ledger-row.resolved:hover{opacity:.85;background:rgba(255,255,255,.03)}
.ledger-row.resolved .lr-merchant{color:var(--text2)}
/* Expanded row — shows individual transactions */
.ledger-row-expand{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(.4,0,.2,1);background:rgba(0,0,0,.2);border-bottom:1px solid rgba(255,255,255,.04)}
.ledger-row-expand.open{max-height:600px;overflow-y:auto}
.ledger-row-expand .lre-inner{padding:8px 12px 8px 32px}
.ledger-row-expand .lre-tx{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:14px;transition:background .15s}
.ledger-row-expand .lre-tx:hover{background:rgba(255,255,255,.04)}
.ledger-row-expand .lre-date{width:64px;color:var(--text3);font-family:var(--mono);font-size:12px;flex-shrink:0}
.ledger-row-expand .lre-desc{flex:1;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ledger-row-expand .lre-amt{width:70px;text-align:right;font-family:var(--mono);font-weight:600;font-size:12px;flex-shrink:0}
.ledger-row-expand .lre-cat{flex-shrink:0;position:relative}
.ledger-row-expand .lre-recat{display:flex;align-items:center;gap:8px;padding:10px 8px 6px;position:relative}
.ledger-row-expand .lre-recat-label{font-size:14px;color:var(--text3);font-weight:600;flex-shrink:0}
/* Ledger command bar inputs */
.lre-cmd{width:100%;padding:6px 10px;font-size:14px;background:rgba(10,10,12,.8);border:1px solid transparent;border-radius:7px;color:var(--text);font-family:var(--font);outline:none;box-sizing:border-box;transition:all .25s;position:relative;z-index:1}
.lre-cmd:focus{background:rgba(10,10,12,.95);border-color:transparent}
.lre-cmd-group{flex:1;padding:7px 12px;font-size:15px;border-radius:8px}
.lre-cmd-assigned{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;min-width:80px}
.lre-cmd-assigned:hover{opacity:.75}
.lre-sug{position:absolute;left:0;right:0;top:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;max-height:180px;overflow-y:auto;z-index:20;margin-top:3px;box-shadow:0 8px 24px rgba(0,0,0,.5);display:none}
.lre-sug.open{display:block}
.lre-sug-item{padding:6px 10px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .1s}
.lre-sug-item:hover{background:rgba(255,255,255,.05)}
.lre-sug-item.top{color:var(--accent);font-weight:700}
.ledger-row.expanded{opacity:.9!important;background:rgba(52,211,153,.03)!important}
.ledger-row.expanded .lr-merchant{color:var(--accent)!important}
/* Assign animation — flash color then slide left */
@keyframes rowAssigned{0%{background:rgba(52,211,153,.15);transform:translateX(0)}30%{background:rgba(52,211,153,.2);transform:translateX(0)}100%{background:rgba(52,211,153,.02);transform:translateX(-8px);opacity:.55}}
.ledger-row.row-assigned{animation:rowAssigned .5s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}
/* ── Teach Tutorial Overlay (Interactive Step-by-Step) ── */
.teach-tutorial-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;pointer-events:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.teach-tutorial-overlay.show{opacity:1;pointer-events:all}
.teach-tutorial{background:linear-gradient(180deg,rgba(22,22,28,1) 0%,rgba(16,16,20,1) 100%);border:1px solid rgba(255,255,255,.06);border-radius:24px;width:min(560px,92vw);max-height:85vh;overflow-y:auto;overflow-x:hidden;padding:0;box-shadow:0 32px 100px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.03) inset;position:relative;animation:tutorialIn .4s cubic-bezier(.16,1,.3,1)}
@keyframes tutorialIn{from{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ttSlideIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes ttSlideOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-40px)}}
@keyframes ttTypeChar{from{width:0}to{width:100%}}
@keyframes ttCursorBlink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes ttPulseGlow{0%,100%{box-shadow:0 0 0 0 rgba(52,211,153,.3)}50%{box-shadow:0 0 0 8px rgba(52,211,153,0)}}
@keyframes ttBounceIn{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}100%{opacity:1;transform:scale(1)}}
@keyframes ttFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.teach-tutorial .tt-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.03);color:var(--text3);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:5}
.teach-tutorial .tt-close:hover{background:rgba(255,255,255,.08);color:var(--text);border-color:rgba(255,255,255,.12)}
.tt-step-dots{display:flex;gap:6px;justify-content:center;padding:16px 0 0}
.tt-step-dots .tt-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.1);transition:all .3s}
.tt-step-dots .tt-dot.active{background:var(--accent);box-shadow:0 0 8px rgba(52,211,153,.4)}
.tt-step-dots .tt-dot.done{background:rgba(52,211,153,.3)}
.tt-step-body{padding:24px 32px 20px;min-height:280px;display:flex;flex-direction:column}
.tt-step-body .tt-step-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;animation:ttBounceIn .5s cubic-bezier(.175,.885,.32,1.275)}
.tt-step-body .tt-step-title{font-size:21px;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:6px}
.tt-step-body .tt-step-desc{font-size:15px;color:var(--text2);line-height:1.7;margin-bottom:16px}
.tt-step-body .tt-step-desc strong{color:var(--text);font-weight:700}
.tt-step-body .tt-step-desc code{background:rgba(52,211,153,.08);padding:2px 7px;border-radius:5px;font-family:var(--mono);font-size:14px;color:var(--accent)}
.tt-demo-bar{position:relative;margin:8px 0 14px;padding:12px 16px 12px 38px;border-radius:12px;background:rgba(8,8,12,.9);border:1px solid rgba(255,255,255,.08);font-size:16px;color:var(--text);font-family:var(--mono);overflow:hidden}
.tt-demo-bar svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text3)}
.tt-demo-bar .tt-typed{display:inline;overflow:hidden;white-space:nowrap;border-right:2px solid var(--accent);animation:ttCursorBlink .8s infinite;font-weight:600}
.tt-demo-bar .tt-ghost{color:var(--text3);opacity:.4}
.tt-demo-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:8px;font-size:14px;font-weight:700;cursor:default;animation:ttFadeUp .4s ease both}
.tt-demo-grid{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.tt-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 32px 20px;border-top:1px solid rgba(255,255,255,.04)}
.tt-nav button{padding:10px 22px;border-radius:10px;font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;transition:all .2s;border:none}
.tt-nav .tt-back{background:rgba(255,255,255,.04);color:var(--text2);border:1px solid rgba(255,255,255,.06)}
.tt-nav .tt-back:hover{background:rgba(255,255,255,.08)}
.tt-nav .tt-next{background:linear-gradient(135deg,var(--accent),#2ac48a);color:var(--bg);font-weight:800;box-shadow:0 4px 16px rgba(52,211,153,.2)}
.tt-nav .tt-next:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(52,211,153,.3)}
.tt-nav .tt-skip{background:none;color:var(--text3);font-weight:600;padding:10px 14px}
.tt-nav .tt-skip:hover{color:var(--text2)}
/* Command bar demo in tutorial (legacy compat) */
.tt-cmd-demo{position:relative;margin:12px 0 18px;padding:14px 18px 14px 40px;border-radius:14px;background:rgba(8,8,12,.9);border:1px solid transparent;font-size:17px;color:var(--text3);font-family:var(--font);overflow:hidden}
.tt-cmd-demo::before{content:'';position:absolute;inset:-1px;border-radius:15px;padding:1px;background:linear-gradient(135deg,rgba(52,211,153,.5),rgba(124,184,255,.4),rgba(167,139,250,.5),rgba(251,191,36,.3),rgba(248,113,113,.3),rgba(52,211,153,.5));background-size:400% 400%;animation:cmdGlow 4s ease infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.tt-cmd-demo::after{content:'';position:absolute;inset:-8px;border-radius:20px;background:linear-gradient(135deg,rgba(52,211,153,.12),rgba(124,184,255,.1),rgba(167,139,250,.12));background-size:400% 400%;animation:cmdGlow 4s ease infinite;filter:blur(14px);pointer-events:none;opacity:.6}
.tt-cmd-demo svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text3);z-index:1}
.tt-cmd-demo .demo-text{position:relative;z-index:1}
/* Help button in triage header */
.triage-help-btn{width:26px;height:26px;border-radius:7px;border:1px solid rgba(52,211,153,.15);background:rgba(52,211,153,.04);color:var(--accent);font-size:15px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;font-family:var(--font)}
.triage-help-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(52,211,153,.1);box-shadow:0 0 12px rgba(52,211,153,.15)}
/* Active manual item — highlighted with accent left border */
.ledger-row.active-manual{background:rgba(52,211,153,.04);border-left:3px solid var(--accent);padding-left:17px;opacity:1!important;box-shadow:0 2px 12px rgba(52,211,153,.06)}
.ledger-row.active-manual .lr-merchant{color:var(--accent);font-weight:800}
/* Manual pending — subtle indicator */
.ledger-row.manual-pending .lr-dot.pending{background:var(--yellow);opacity:.5}
/* Section dividers */
.ledger-section-label{padding:8px 20px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);background:rgba(255,255,255,.02);border-bottom:1px solid rgba(255,255,255,.04);opacity:.6}
/* ── RIGHT: Triage Zone (32%) ── */
.teach-triage{width:44%;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid rgba(255,255,255,.06);overflow:hidden;position:relative}
.triage-header{padding:16px 20px 12px;border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,rgba(255,255,255,.015) 0%,transparent 100%)}
.triage-header .th-progress{font-size:17px;font-weight:800;color:var(--text);flex:1;letter-spacing:-.01em}
.triage-header .th-count{font-size:15px;color:var(--text3);font-weight:600}
.triage-header .th-streak{font-size:16px;font-weight:900;color:var(--accent);font-family:var(--mono)}
.triage-header .th-streak.fire{color:var(--yellow);text-shadow:0 0 12px rgba(251,191,36,.4)}
.triage-context-bar{display:flex;align-items:center;gap:8px;padding:8px 18px;background:rgba(255,255,255,.02);border-bottom:1px solid rgba(255,255,255,.04);flex-shrink:0;min-height:0;transition:all .25s ease}
.triage-context-bar:empty{display:none}
.tcb-section{font-size:12px;font-weight:700;padding:3px 9px;border-radius:5px;letter-spacing:.03em;text-transform:uppercase}
.tcb-sep{font-size:12px;color:var(--text3);opacity:.4}
.tcb-account{font-size:14px;font-weight:600;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.tcb-acct-icon{font-size:15px;flex-shrink:0}
.triage-card-wrap{flex:1;overflow-y:auto;overflow-x:hidden;padding:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent;position:relative}
.triage-card-wrap::-webkit-scrollbar{width:5px}
.triage-card-wrap::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:3px}
/* Triage card — content swaps in place */
.triage-card{padding:18px 22px;animation:triageCardIn .3s cubic-bezier(.16,1,.3,1)}
.triage-card.exiting{animation:triageCardOut .2s ease forwards}
/* Merchant info in triage */
.triage-merchant{margin-bottom:14px}
.triage-merchant .tm-name{font-size:21px;font-weight:900;color:var(--text);letter-spacing:-.02em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.triage-merchant .tm-meta{font-size:14px;color:var(--text3);margin-top:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.triage-merchant .tm-amount{font-size:20px;font-weight:900;font-family:var(--mono);letter-spacing:-.02em;margin-top:6px}
.triage-merchant .tm-type-badge{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:5px;display:inline-block;margin-left:8px}
/* Hero suggestion pill */
.triage-hero-pill{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:2px solid rgba(52,211,153,.4);background:linear-gradient(135deg,rgba(52,211,153,.08) 0%,rgba(52,211,153,.02) 100%);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);margin-bottom:8px;width:100%;box-sizing:border-box;position:relative;overflow:hidden}
.triage-hero-pill::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(52,211,153,.05) 50%,transparent 100%);animation:heroShimmer 3s ease-in-out infinite;pointer-events:none}
@keyframes heroShimmer{0%,100%{transform:translateX(-100%)}50%{transform:translateX(100%)}}
.triage-hero-pill:hover{background:linear-gradient(135deg,rgba(52,211,153,.15) 0%,rgba(52,211,153,.06) 100%);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 24px rgba(52,211,153,.12)}
.triage-hero-pill:active{transform:translateY(0);transition-duration:.1s}
.triage-hero-pill .thp-color{width:4px;height:28px;border-radius:3px;flex-shrink:0}
.triage-hero-pill .thp-name{font-size:17px;font-weight:800;color:var(--accent)}
.triage-hero-pill .thp-sub{font-size:12px;color:var(--text3);margin-left:4px;font-weight:600}
.triage-hero-pill .thp-key{margin-left:auto;font-size:12px;font-weight:800;color:var(--bg);background:var(--accent);padding:3px 8px;border-radius:5px;font-family:var(--mono);flex-shrink:0}
.triage-hero-pill.arrow-active{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(52,211,153,.25),0 6px 24px rgba(52,211,153,.15)!important;transform:translateY(-2px)!important}
/* Quick picks row */
.triage-quick-picks{display:flex;gap:5px;margin-bottom:8px}
.triage-quick-pick{flex:1;display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;border:1.5px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);cursor:pointer;transition:all .15s;min-width:0}
.triage-quick-pick:hover{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.06);transform:translateY(-1px)}
.triage-quick-pick:active{transform:translateY(0)}
.triage-quick-pick .tqp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.triage-quick-pick .tqp-name{font-size:14px;font-weight:700;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.triage-quick-pick .tqp-key{font-size:12px;font-weight:800;color:var(--text3);background:rgba(255,255,255,.06);padding:2px 6px;border-radius:4px;font-family:var(--mono);flex-shrink:0}
.triage-quick-pick.arrow-active{border-color:var(--accent)!important;background:rgba(52,211,153,.1)!important;box-shadow:0 0 0 2px rgba(52,211,153,.2),0 4px 12px rgba(52,211,153,.08)!important;transform:translateY(-1px)!important}
/* Category search in triage */
.triage-cat-search-wrap{position:relative;margin-bottom:6px;background:rgba(10,10,12,.85);border-radius:10px}
.triage-cat-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text3);pointer-events:none;z-index:2}
@keyframes cmdGlow{0%{background-position:0% 50%}25%{background-position:50% 100%}50%{background-position:100% 50%}75%{background-position:50% 0%}100%{background-position:0% 50%}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes cmdPulse{0%,100%{opacity:.5}50%{opacity:.85}}
.triage-cat-search-wrap{--glow-dim:1}
.triage-cat-search-wrap::before{content:'';position:absolute;inset:-2px;border-radius:12px;padding:2px;background:linear-gradient(135deg,rgba(52,211,153,.6),rgba(124,184,255,.55),rgba(167,139,250,.6),rgba(251,191,36,.5),rgba(248,113,113,.45),rgba(52,211,153,.6));background-size:400% 400%;animation:cmdGlow 3s ease infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:calc(.7 * var(--glow-dim));transition:opacity .4s}
.triage-cat-search-wrap:focus-within::before{opacity:calc(1 * var(--glow-dim))}
.triage-cat-search-wrap::after{content:'';position:absolute;inset:-10px;border-radius:20px;background:linear-gradient(135deg,rgba(52,211,153,.15),rgba(124,184,255,.13),rgba(167,139,250,.15),rgba(251,191,36,.1),rgba(248,113,113,.08),rgba(52,211,153,.15));background-size:400% 400%;animation:cmdGlow 3s ease infinite;filter:blur(16px);pointer-events:none;opacity:calc(.45 * var(--glow-dim));transition:opacity .4s}
.triage-cat-search-wrap:focus-within::after{opacity:calc(.9 * var(--glow-dim))}
/* ── Mini enchanted glow for per-tx command bars ── */
.cmd-glow-mini{position:relative}
.cmd-glow-mini::before{content:'';position:absolute;inset:-1px;border-radius:9px;padding:1px;background:linear-gradient(135deg,rgba(52,211,153,.4),rgba(124,184,255,.35),rgba(167,139,250,.4),rgba(251,191,36,.3),rgba(248,113,113,.25),rgba(52,211,153,.4));background-size:400% 400%;animation:cmdGlow 4s ease infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.45;transition:opacity .3s}
.cmd-glow-mini:focus-within::before{opacity:1}
.cmd-glow-mini::after{content:'';position:absolute;inset:-5px;border-radius:14px;background:linear-gradient(135deg,rgba(52,211,153,.08),rgba(124,184,255,.07),rgba(167,139,250,.08),rgba(251,191,36,.05),rgba(248,113,113,.04),rgba(52,211,153,.08));background-size:400% 400%;animation:cmdGlow 4s ease infinite;filter:blur(8px);pointer-events:none;opacity:.25;transition:opacity .3s}
.cmd-glow-mini:focus-within::after{opacity:.7}
.cmd-glow-mini input{position:relative;z-index:1}
.triage-cat-search{width:100%;padding:11px 14px 11px 34px;font-size:17px;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text);font-family:var(--font);outline:none;transition:all .2s;box-sizing:border-box;position:relative;z-index:2}
.triage-cat-search:focus{border-color:transparent}
.triage-cat-ghost{position:absolute;left:34px;top:50%;transform:translateY(-50%);font-size:17px;font-family:var(--font);color:rgba(255,255,255,.25);pointer-events:none;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px);transition:color .2s,opacity .15s;z-index:1}
.triage-cat-ghost.snap{color:#36d39a!important;opacity:1!important;animation:ghostSnap .3s cubic-bezier(.16,1,.3,1)}
@keyframes ghostSnap{0%{transform:translateY(-50%) scale(1.04);filter:brightness(1.4)}100%{transform:translateY(-50%) scale(1);filter:brightness(1)}}
.triage-tab-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .2s;pointer-events:none;display:flex;align-items:center;gap:4px}
.triage-tab-hint kbd{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.2);padding:2px 6px;border-radius:4px;font-family:var(--mono);font-size:12px;font-weight:800;color:var(--accent)}
.triage-tab-hint .tab-icon{width:14px;height:14px;opacity:.5}
.triage-cat-search-wrap.has-ghost .triage-tab-hint{opacity:1}
/* Ghost text tooltip on first use */
.ghost-tooltip{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--surface);border:1px solid rgba(52,211,153,.2);border-radius:8px;padding:6px 10px;font-size:14px;font-weight:600;color:var(--accent);white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(4px);transition:all .25s;box-shadow:0 4px 16px rgba(0,0,0,.4);z-index:10}
.ghost-tooltip.visible{opacity:1;transform:translateY(0)}
.ghost-tooltip::after{content:'';position:absolute;top:100%;right:16px;border:5px solid transparent;border-top-color:rgba(52,211,153,.2)}
/* ── Evolutionary Orb ── */
.silo-orb{position:relative;width:28px;height:28px;border-radius:50%;flex-shrink:0;cursor:default;display:flex;align-items:center;justify-content:center}
.silo-orb-core{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(52,211,153,.6),rgba(52,211,153,.2));box-shadow:0 0 12px rgba(52,211,153,.15);animation:orbBreathe 3s ease-in-out infinite;transition:all .5s}
.silo-orb-ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(52,211,153,.15);animation:orbRingSpin 8s linear infinite;transition:all .5s}
.silo-orb.phase2 .silo-orb-core{width:18px;height:18px;background:radial-gradient(circle at 40% 35%,rgba(52,211,153,.8),rgba(124,184,255,.3));box-shadow:0 0 18px rgba(52,211,153,.25);animation:orbBreathe 1.8s ease-in-out infinite}
.silo-orb.phase2 .silo-orb-ring{border-color:rgba(52,211,153,.3);animation:orbRingSpin 4s linear infinite}
.silo-orb.phase3 .silo-orb-core{width:20px;height:20px;background:radial-gradient(circle at 40% 35%,rgba(52,211,153,1),rgba(124,184,255,.5),rgba(167,139,250,.3));box-shadow:0 0 24px rgba(52,211,153,.35);animation:orbBreathe 1.2s ease-in-out infinite}
.silo-orb.phase3 .silo-orb-ring{border-width:2px;border-color:rgba(52,211,153,.5);animation:orbRingSpin 2.5s linear infinite}
@keyframes orbBreathe{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}
@keyframes orbRingSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.orb-synced{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.2);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap;pointer-events:none;opacity:0;animation:orbSyncFade 2s ease forwards}
@keyframes orbSyncFade{0%{opacity:0;transform:translateX(-50%) translateY(4px)}15%{opacity:1;transform:translateX(-50%) translateY(0)}85%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-6px)}}
/* ── Spotlight dimming for active row ── */
.teach-ledger.spotlight .ledger-row{opacity:.35;transition:opacity .3s ease}
.teach-ledger.spotlight .ledger-row.active-manual{opacity:1!important;background:rgba(52,211,153,.06)!important;border-left:3px solid var(--accent)!important;padding-left:17px!important;box-shadow:0 0 20px rgba(52,211,153,.06)!important}
.teach-ledger.spotlight .ledger-row.active-manual .lr-merchant{color:var(--accent)!important;font-weight:800!important}
.teach-ledger.spotlight .ledger-row:hover{opacity:.6}
.teach-ledger.spotlight .ledger-row.active-manual:hover{opacity:1!important}
.teach-ledger.spotlight .ledger-row.resolved{opacity:.25}
.teach-ledger.spotlight .ledger-section-label{opacity:.4}
/* ── Cross-fade transition ── */
.teach-crossfade{animation:crossFadeIn .45s cubic-bezier(.16,1,.3,1)}
@keyframes crossFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.teach-crossfade-out{animation:crossFadeOut .25s ease forwards}
@keyframes crossFadeOut{to{opacity:0;transform:translateY(-8px)}}
/* ── Memory synced notification ── */
.memory-synced-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);background:rgba(10,10,12,.92);border:1px solid rgba(52,211,153,.25);border-radius:14px;padding:16px 24px;z-index:10001;display:flex;align-items:center;gap:10px;pointer-events:none;opacity:0;animation:memorySyncIn .6s cubic-bezier(.16,1,.3,1) forwards;box-shadow:0 12px 40px rgba(0,0,0,.5)}
@keyframes memorySyncIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.95) translateY(-10px)}}
/* ── Undo reverse particles ── */
.undo-particle{position:absolute;border-radius:50%;pointer-events:none;z-index:100}
@keyframes undoParticle{0%{opacity:0;transform:translate(var(--vx),var(--vy)) scale(0)}50%{opacity:1}100%{opacity:0;transform:translate(0,0) scale(1)}}
/* ══════════════════════════════════════════════════════════════
   SILO TERMINAL — CENTER-FOCUSED CARD FLOW LAYOUT
   ══════════════════════════════════════════════════════════════ */
.assembly-line{display:flex;flex-direction:column;height:100%;min-height:0;position:relative;overflow:hidden}
.assembly-col{display:none}
/* ── Left: Pending Queue (hidden in new layout, CSS kept for compatibility) ── */
.assembly-pending{display:none}
.pending-batch{padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.04);margin-bottom:5px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);background:rgba(255,255,255,.015);position:relative;animation:batchSlideIn .35s cubic-bezier(.16,1,.3,1) both}
.pending-batch:hover{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1);transform:translateX(2px)}
.pending-batch.next-up{border-color:rgba(52,211,153,.18);background:rgba(52,211,153,.04);box-shadow:0 0 12px rgba(52,211,153,.04)}
.pending-batch .pb-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}
.pending-batch .pb-emoji{font-size:16px;flex-shrink:0;line-height:1}
.pending-batch .pb-meta{display:flex;align-items:center;gap:6px;margin-top:3px}
.pending-batch .pb-count{font-size:12px;color:var(--text3);font-weight:600}
.pending-batch .pb-amount{font-size:12px;font-family:var(--mono);font-weight:700;color:var(--text3)}
.pending-batch .pb-tag{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:4px;flex-shrink:0}
.pending-batch.is-transfer .pb-tag{background:rgba(251,191,36,.1);color:var(--yellow)}
.pending-batch.is-unknown .pb-tag{background:rgba(248,113,113,.1);color:var(--red)}
.pending-batch.is-auto .pb-tag{background:rgba(52,211,153,.08);color:var(--accent)}
.pending-batch.ejected{border-color:rgba(251,191,36,.2);background:rgba(251,191,36,.03)}
.pending-batch.ejected .pb-tag{background:rgba(251,191,36,.1);color:var(--yellow)}
.pending-batch.is-deferred{border-color:rgba(96,165,250,.2);background:rgba(96,165,250,.04)}
.pending-batch.is-deferred .pb-tag{background:rgba(96,165,250,.12);color:#60a5fa}
@keyframes batchSlideIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}
/* ── NEW: Top bar ── */
.asm-topbar{display:flex;align-items:center;gap:16px;padding:8px 24px;border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0;background:linear-gradient(180deg,rgba(255,255,255,.02) 0%,transparent 100%)}
.asm-topbar-left{display:flex;align-items:center;gap:10px;flex-shrink:0}
.asm-topbar-center{flex:1;display:flex;align-items:center;justify-content:center;gap:16px;min-width:0}
.asm-topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.asm-progress-ring{width:32px;height:32px;flex-shrink:0}
.asm-progress-ring circle{transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1)}
.asm-progress-info{display:flex;flex-direction:column;gap:1px;min-width:0}
.asm-progress-bar{width:140px;height:4px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden;position:relative}
.asm-progress-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),#2ac48a);transition:width .6s cubic-bezier(.16,1,.3,1);position:relative}
.asm-progress-bar-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,rgba(255,255,255,.35));border-radius:4px;animation:progressShimmer 2s ease infinite}
.asm-progress-bar-fill::before{content:'';position:absolute;right:0;top:-2px;bottom:-2px;width:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent),0 0 16px rgba(52,211,153,.3);opacity:0;transition:opacity .3s}
.asm-progress-bar-fill[style*="width:0"]::before{opacity:0}
.asm-progress-bar-fill:not([style*="width:0"])::before{opacity:1}
/* Activity log strip below top bar */
.asm-log-strip{display:flex;justify-content:center;flex-shrink:0;padding:0;opacity:.45;transition:opacity .3s}
.asm-log-strip:hover{opacity:.7}
.asm-log-strip-inner{width:75%;display:flex;align-items:center;gap:8px;padding:2px 0;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%)}
.asm-log-strip-inner .aal-label{flex-shrink:0;padding-left:12px;font-size:12px;opacity:.6}
.asm-log-strip-inner .aal-label .aal-dot{width:4px;height:4px}
.asm-log-strip-inner .aal-ticker{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;gap:4px;align-items:center;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-right:12px}
.asm-log-strip-inner .aal-ticker::-webkit-scrollbar{display:none}
.asm-log-strip-inner .aal-entry{font-size:12px;padding:2px 8px;background:none;border:none;opacity:.7;transition:opacity .4s}
.asm-log-strip-inner .aal-entry.aal-latest{background:none;border:none;opacity:1}
.asm-log-strip-inner .aal-entry.aal-slide-in{animation:aalTickerSlide .45s cubic-bezier(.16,1,.3,1) both}
@keyframes aalTickerSlide{0%{opacity:0;max-width:0;padding:0;margin:0;transform:translateX(-10px)}30%{opacity:0;max-width:200px;padding:2px 8px}100%{opacity:1;max-width:300px;transform:translateX(0)}}
.cockpit-mini-row.cmr-slide-in{animation:cmrSlideIn .35s cubic-bezier(.16,1,.3,1) both}
@keyframes cmrSlideIn{0%{opacity:0;transform:translateY(-8px)}100%{opacity:1;transform:translateY(0)}}
/* ── Main content: left float | card center | right float ── */
.asm-main{flex:1;display:flex;flex-direction:row;align-items:stretch;justify-content:center;padding:0;overflow:hidden;min-height:0;position:relative}
/* ── Left spacer (matches right width for centering) ── */
.asm-left-spacer{width:200px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding-right:18px}
/* ── Card area (centered) ── */
.asm-card-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:stretch;padding:0 16px;overflow:hidden;min-height:0;max-width:680px}
/* ── Center: Cockpit ── */
.assembly-cockpit{width:100%;max-width:640px;flex:1;display:flex;flex-direction:column;align-items:center;position:relative;min-height:0}
/* ── Right: Category panel (floating, no hard border) ── */
.asm-cat-sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:12px 14px 12px 8px}
.asm-cat-sidebar-head{padding:4px 4px 8px;flex-shrink:0}
.asm-cat-sidebar-head .acs-title{font-size:15px;font-weight:800;color:var(--text3);letter-spacing:.03em;text-transform:uppercase;opacity:.5}
.asm-cat-sidebar-head .acs-sub{display:none}
.asm-cat-sidebar-body{overflow-y:auto;padding:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent;max-height:60vh}
.cockpit-header{display:none}
.cockpit-header .ch-top-row{display:flex;align-items:center;justify-content:space-between;width:100%}
.cockpit-header .ch-left{display:flex;align-items:center;gap:8px}
.cockpit-header .ch-center-title{font-size:18px;font-weight:800;color:var(--text1);letter-spacing:-.02em}
.cockpit-header .ch-center-sub{font-size:12px;font-weight:500;color:var(--text3);text-align:center;margin-top:1px}
.cockpit-header .ch-section{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:4px}
.cockpit-header .ch-progress{font-size:15px;font-weight:700;color:var(--text2);font-family:var(--mono);background:rgba(255,255,255,.04);padding:3px 10px;border-radius:6px}
/* Silo Learning indicator */
.silo-learning-indicator{display:flex;align-items:center;gap:5px;font-size:15px;font-weight:600;color:var(--accent);padding:3px 10px;border-radius:6px;background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.1);transition:all .4s cubic-bezier(.16,1,.3,1);white-space:nowrap}
.silo-learning-indicator.dim{color:var(--text3);background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.04)}
.silo-learning-indicator .sli-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:sliPulse 2s ease infinite;flex-shrink:0}
.silo-learning-indicator.dim .sli-dot{background:var(--text3);animation:none;opacity:.4}
.silo-learning-indicator strong{font-weight:900;color:var(--text)}
.silo-learning-indicator.flash{animation:sliBump .5s cubic-bezier(.16,1,.3,1)}
@keyframes sliPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
@keyframes sliBump{0%{transform:scale(1)}30%{transform:scale(1.08)}100%{transform:scale(1)}}
.cockpit-card{width:100%;flex:1;background:var(--surface);border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;animation:cardSlideIn .35s cubic-bezier(.16,1,.3,1);position:relative;min-height:0;box-shadow:0 8px 40px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.04)}
.cockpit-card.exiting{animation:cardSlideOut .3s ease forwards}
@keyframes cockpitCardIn{from{opacity:0;transform:scale(.97) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes cockpitCardOut{to{opacity:0;transform:scale(.97) translateY(-10px)}}
@keyframes cardSlideOut{to{opacity:0;transform:translateY(-40px) scale(.97)}}
@keyframes cardSlideIn{from{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
/* ── Category chips (compact grid in sidebar) ── */
.asm-cat-pills{display:flex;flex-wrap:wrap;gap:5px;padding:0;width:100%}
.asm-cat-pill{padding:6px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.02);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s;font-size:15px;font-weight:600;color:var(--text2);font-family:var(--font);white-space:nowrap}
.asm-cat-pill:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
.asm-cat-pill .acp-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.asm-cat-pill .acp-count{font-size:15px;font-weight:700;color:var(--text3);font-family:var(--mono);margin-left:1px}
.asm-cat-pill .acp-count.has-items{color:var(--accent)}
.asm-cat-pill.highlighted{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.15)}
.asm-cat-pill.just-assigned{animation:catPanelPop .7s cubic-bezier(.16,1,.3,1);z-index:2}
.asm-cat-more-btn{padding:6px 10px;border-radius:7px;border:1px dashed rgba(255,255,255,.08);background:none;cursor:pointer;font-size:15px;font-weight:600;color:var(--text3);font-family:var(--font);transition:all .15s;text-align:center}
.asm-cat-more-btn:hover{border-color:rgba(255,255,255,.15);color:var(--text2)}
/* ── Expanded category panel ── */
.asm-cat-expanded{display:flex;flex-wrap:wrap;gap:5px;padding:0;width:100%;animation:fadeIn .2s ease}
/* ── Quick-access categories (above command bar) ── */
.asm-quick-cats{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;padding:6px 20px 4px;position:relative}
.asm-quick-cat{padding:5px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .25s cubic-bezier(.16,1,.3,1);font-size:15px;font-weight:600;color:var(--text2);font-family:var(--font);white-space:nowrap;position:relative;box-shadow:0 0 8px rgba(52,211,153,.04),0 1px 3px rgba(0,0,0,.15)}
.asm-quick-cat:hover{background:rgba(255,255,255,.08);border-color:rgba(52,211,153,.25);transform:translateY(-1px);box-shadow:0 0 14px rgba(52,211,153,.12),0 2px 8px rgba(0,0,0,.2)}
.asm-quick-cat .aqc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.asm-quick-cat .aqc-num{font-size:15px;font-weight:700;color:var(--text3);font-family:var(--mono);opacity:.5}
.asm-quick-cat.highlighted{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.18)}
.asm-quick-cat.just-assigned{animation:catPanelPop .7s cubic-bezier(.16,1,.3,1);z-index:2}
@keyframes qcSlide{from{opacity:0;transform:translateY(6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
/* ── NEW: Queue strip at bottom ── */
.asm-queue-strip{display:flex;align-items:center;gap:8px;padding:10px 24px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;background:rgba(0,0,0,.08)}
.asm-queue-strip::-webkit-scrollbar{display:none}
.asm-queue-chip{padding:7px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.04);background:rgba(255,255,255,.02);font-size:15px;font-weight:600;color:var(--text3);white-space:nowrap;flex-shrink:0;transition:all .2s;cursor:default;max-width:160px;overflow:hidden;text-overflow:ellipsis}
.asm-queue-chip.active{border-color:rgba(52,211,153,.2);background:rgba(52,211,153,.06);color:var(--accent);font-weight:700}
.asm-queue-chip .aqc-count{font-size:15px;color:var(--text3);margin-left:4px;opacity:.6}
.asm-queue-see-all{font-size:15px;font-weight:600;color:var(--text3);cursor:pointer;background:none;border:none;font-family:var(--font);white-space:nowrap;padding:6px 8px;transition:color .15s;flex-shrink:0}
.asm-queue-see-all:hover{color:var(--accent)}
/* ── Action buttons row ── */
.asm-action-row{display:flex;align-items:center;gap:8px;justify-content:center;padding:8px 0;width:100%;max-width:600px;flex-wrap:wrap}
.asm-action-row .ca-btn{padding:8px 20px;border-radius:10px;font-size:15px}
/* ── Keyboard hints row ── */
.asm-hints-row{display:flex;align-items:center;justify-content:center;gap:14px;padding:6px 0 4px;opacity:.6;width:100%;max-width:600px}
/* ── Left floating shortcuts ── */
.asm-left-sidebar{width:auto;display:flex;flex-direction:column;gap:6px;opacity:.5;transition:opacity .3s;pointer-events:auto}
.asm-left-sidebar:hover{opacity:.85}
.asm-left-sidebar .als-section{margin-bottom:6px}
.asm-left-sidebar .als-label{font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:4px}
.asm-left-sidebar .als-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:15px;color:var(--text3);font-weight:500;white-space:nowrap}
.asm-left-sidebar .als-item kbd{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:3px 8px;border-radius:5px;font-family:var(--mono);font-size:15px;font-weight:800;color:var(--text2);min-width:30px;text-align:center;transition:all .15s}
.asm-left-sidebar .als-item kbd.als-lit{background:rgba(52,211,153,.15)!important;border-color:rgba(52,211,153,.35)!important;color:var(--accent)!important;box-shadow:0 0 10px rgba(52,211,153,.2);transform:scale(1.08)}
.asm-left-sidebar:hover .als-hint{opacity:.7}
.als-hint{font-size:15px;color:var(--accent);opacity:.3;text-align:center;margin-top:6px;transition:opacity .3s;font-weight:500;letter-spacing:.02em}
.als-tabs{display:flex;gap:0;margin-bottom:8px;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02)}
.als-tab{flex:1;text-align:center;padding:5px 0;font-size:15px;font-weight:700;cursor:pointer;color:var(--text3);transition:all .2s;border:none;background:none;font-family:var(--font)}
.als-tab:hover{color:var(--text2);background:rgba(255,255,255,.04)}
.als-tab.active{color:var(--accent);background:rgba(52,211,153,.08)}
.als-tab:first-child{border-right:1px solid rgba(255,255,255,.06)}
.als-cmd-item{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:15px;color:var(--text3);font-weight:500;white-space:nowrap;cursor:pointer;transition:color .15s}
.als-cmd-item:hover{color:var(--text2)}
.als-cmd-item code{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:2px 7px;border-radius:4px;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text2);min-width:30px;text-align:center}
.cockpit-batch-header{padding:16px 24px 12px;text-align:center;border-bottom:1px solid rgba(255,255,255,.04);flex-shrink:0;position:relative}
.cockpit-batch-header .cbh-tag{font-size:15px;font-weight:700;padding:4px 12px;border-radius:6px;display:inline-block;margin-bottom:4px}
.cockpit-batch-header .cbh-name{font-size:23px;font-weight:900;color:var(--text);letter-spacing:-.03em}
.cockpit-batch-header .cbh-meta{font-size:15px;color:var(--text3);margin-top:2px;display:flex;align-items:center;gap:6px;justify-content:center}
.cockpit-batch-header .cbh-amount{font-size:21px;font-weight:900;font-family:var(--mono);letter-spacing:-.02em;margin-top:4px}
/* Mini-ledger inside cockpit card */
.cockpit-mini-ledger{flex:1;overflow-y:auto;padding:0;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}
.cockpit-mini-row{display:flex;align-items:center;gap:8px;padding:6px 20px;border-bottom:1px solid rgba(255,255,255,.025);transition:all .25s cubic-bezier(.16,1,.3,1);cursor:default;position:relative;transform-origin:left center;border-radius:6px}
.cockpit-mini-row:hover{background:rgba(255,255,255,.025)}
.cockpit-mini-row.highlighted{background:rgba(52,211,153,.06);border-left:3px solid var(--accent);padding:11px 20px 11px 17px;transform:scale(1.015);z-index:2;box-shadow:0 2px 20px rgba(52,211,153,.08),inset 0 0 0 1px rgba(52,211,153,.06);border-radius:8px;margin:2px 4px}
.cockpit-mini-row.highlighted .cmr-desc{color:var(--accent);font-weight:700;font-size:15px}
.cockpit-mini-row.highlighted .cmr-amt{font-size:16px}
.cockpit-mini-row .cmr-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;opacity:.4;transition:all .3s}
.cockpit-mini-row.highlighted .cmr-dot{opacity:1;width:7px;height:7px;box-shadow:0 0 8px rgba(52,211,153,.5);background:var(--accent)!important}
.cockpit-mini-row .cmr-date{font-size:15px;color:var(--text3);font-family:var(--mono);width:50px;flex-shrink:0;transition:font-size .2s}
.cockpit-mini-row.highlighted .cmr-date{font-size:16px;color:var(--text2)}
.cockpit-mini-row .cmr-desc{flex:1;font-size:15px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color .15s,font-size .2s}
.cockpit-mini-row .cmr-amt{font-size:15px;font-weight:700;font-family:var(--mono);flex-shrink:0;min-width:70px;text-align:right;transition:font-size .2s}
.cockpit-mini-row .cmr-cat{font-size:15px;font-weight:700;padding:2px 7px;border-radius:4px;flex-shrink:0;min-width:50px;text-align:center}
.cockpit-mini-row.fly-out{animation:miniRowFlyLeft .3s cubic-bezier(.4,0,.2,1) forwards}
.cockpit-mini-row.tab-confirm{animation:tabConfirmPop .45s cubic-bezier(.16,1,.3,1)}
@keyframes miniRowFlyLeft{to{opacity:0;transform:translateX(-120px) scale(.9)}}
@keyframes tabConfirmPop{0%{transform:scale(1)}30%{transform:scale(1.06);box-shadow:0 0 20px rgba(52,211,153,.25)}100%{transform:scale(1)}}
/* Cockpit command bar area */
/* ── Batch command bar area (top of cockpit) ── */
.cockpit-batch-cmd{padding:12px 24px 8px;flex-shrink:0;background:none;border-bottom:none;transition:opacity .25s,filter .25s,padding .4s cubic-bezier(.16,1,.3,1);transform-origin:center top}
.cockpit-batch-cmd .triage-cat-search{transition:padding .4s cubic-bezier(.16,1,.3,1),font-size .4s cubic-bezier(.16,1,.3,1)}
.cockpit-batch-cmd .cmd-context-hint,.cockpit-batch-cmd .cmd-tip-line{transition:font-size .4s cubic-bezier(.16,1,.3,1),opacity .4s}
.cockpit-batch-cmd.dimmed{opacity:.35;filter:blur(1.5px);cursor:pointer}
.cockpit-batch-cmd .triage-cat-search-wrap{margin-bottom:3px;border-radius:14px}
.cockpit-batch-cmd .triage-cat-search{padding:11px 16px 11px 40px;font-size:17px;border-radius:14px;letter-spacing:-.01em}
.cockpit-batch-cmd .triage-cat-ghost{font-size:18px;left:40px}
.cockpit-batch-cmd .triage-cat-search-wrap svg{left:14px}
/* Tip line below command bar */
.cmd-tip-line{font-size:14px;color:var(--text3);opacity:.5;padding:2px 0 0;text-align:center;transition:opacity .4s;min-height:14px;font-weight:500}
/* Mode indicator */
.cockpit-mode-indicator{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text3);animation:fadeIn .2s;margin-top:3px}
.cockpit-mode-indicator kbd{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);padding:2px 6px;border-radius:4px;font-family:var(--mono);font-size:15px;font-weight:800;color:var(--text2)}
.cockpit-mode-indicator .cmi-badge{font-size:15px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:5px;flex-shrink:0}
.cockpit-mode-indicator .cmi-text{font-size:15px}
.cockpit-mode-indicator.batch-mode .cmi-badge{background:rgba(52,211,153,.1);color:var(--accent)}
.cockpit-mode-indicator.row-mode .cmi-badge{background:rgba(124,184,255,.1);color:var(--blue)}
/* ── Inline row command bar ── */
.cmr-inline-cmd{overflow:hidden;max-height:0;opacity:0;transition:max-height .25s cubic-bezier(.16,1,.3,1),opacity .2s,padding .25s;padding:0 20px}
.cmr-inline-cmd.open{max-height:60px;opacity:1;padding:6px 20px 8px}
.triage-cat-search.cat-loading{animation:catLoadIn .35s cubic-bezier(.16,1,.3,1);color:var(--accent)!important;font-weight:700!important}
@keyframes catLoadIn{0%{opacity:.5;transform:translateY(2px)}50%{opacity:1;transform:translateY(-1px)}100%{transform:translateY(0)}}
.cmr-inline-cmd .triage-cat-search-wrap{margin-bottom:0}
.cmr-inline-cmd .triage-cat-search{padding:8px 12px 8px 30px;font-size:16px;border-radius:8px}
.cmr-inline-cmd .triage-cat-ghost{font-size:16px;left:30px}
.cmr-inline-cmd .triage-cat-search-wrap svg{left:10px;width:11px;height:11px}
.cmr-inline-cmd .triage-cat-search-wrap::before{border-radius:9px}
.cmr-inline-cmd .triage-cat-search-wrap::after{border-radius:14px}
/* Account header at top of cockpit card */
.asm-acct-header{display:flex;align-items:center;gap:10px;padding:8px 20px;border-bottom:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.015)}
.asm-acct-mini-card{width:60px;height:38px;border-radius:8px;position:relative;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.06) inset}
.asm-acct-mini-card img.asm-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.asm-acct-mini-card .asm-card-brand{position:relative;z-index:1;height:13px;opacity:.9;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.asm-acct-mini-card .asm-card-logo{position:relative;z-index:1;width:22px;height:22px;border-radius:4px;object-fit:contain}
.asm-acct-chip-info{display:flex;flex-direction:column;gap:1px;min-width:0}
.asm-acct-chip-name{font-size:16px;font-weight:700;color:var(--text1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.asm-acct-chip-meta{font-size:15px;color:var(--text3);font-weight:500;white-space:nowrap}
/* Bottom area for pills/buttons (replaces old cockpit-cmd-area) */
.cockpit-cmd-area{padding:6px 20px 4px;border-top:1px solid rgba(255,255,255,.04);flex-shrink:0;overflow-y:auto;max-height:200px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}
.cockpit-actions{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}
.ca-btn{padding:5px 14px;border-radius:7px;font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;border:1px solid;transition:all .15s;display:flex;align-items:center;gap:4px}
.ca-btn.primary{border-color:rgba(52,211,153,.25);background:rgba(52,211,153,.08);color:var(--accent)}
.ca-btn.primary:hover{background:rgba(52,211,153,.15)}
.ca-btn.invest{border-color:rgba(124,184,255,.25);background:rgba(124,184,255,.08);color:var(--blue)}
.ca-btn.invest:hover{background:rgba(124,184,255,.15)}
.ca-btn.ghost{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--text3)}
.ca-btn.ghost:hover{background:rgba(255,255,255,.06)}
.ca-btn.ghost.active{border-color:rgba(96,165,250,.3);background:rgba(96,165,250,.08);color:#60a5fa}
.cockpit-suggest{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.cockpit-suggest .cs-pill{padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;border:1px solid;transition:all .15s;display:flex;align-items:center;gap:3px;white-space:nowrap}
.cockpit-suggest .cs-pill:hover{transform:scale(1.04)}
/* Cockpit footer hints */
.cockpit-hints{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 20px;border-top:1px solid rgba(255,255,255,.03);flex-shrink:0;opacity:.6}
.cockpit-hints .ch-item{font-size:12px;color:var(--text3);font-weight:500;display:flex;align-items:center;gap:3px}
.cockpit-hints kbd{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.05);padding:1px 6px;border-radius:4px;font-family:var(--mono);font-size:12px;font-weight:800;color:var(--text2)}
/* ── Progress bar ── */
.terminal-progress{width:100%;height:3px;background:rgba(255,255,255,.04);border-radius:3px;overflow:hidden;margin-top:6px}
.terminal-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),rgba(52,211,153,.7));border-radius:3px;transition:width .6s cubic-bezier(.16,1,.3,1);position:relative}
.terminal-progress-fill::after{content:'';position:absolute;right:0;top:0;bottom:0;width:20px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3));border-radius:3px;animation:progressShimmer 2s ease infinite}
@keyframes progressShimmer{0%,100%{opacity:0}50%{opacity:1}}
.terminal-progress-label{font-size:12px;color:var(--text3);font-weight:600;margin-top:4px;text-align:center;transition:color .3s}
.terminal-progress-label strong{color:var(--text2);font-weight:800}
/* Milestone toast */
.milestone-toast{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);z-index:100;background:rgba(20,20,25,.95);backdrop-filter:blur(16px);border:1px solid rgba(52,211,153,.2);border-radius:16px;padding:20px 32px;text-align:center;opacity:0;pointer-events:none;animation:milestoneIn .8s cubic-bezier(.16,1,.3,1) forwards}
.milestone-toast .mt-emoji{font-size:33px;margin-bottom:6px}
.milestone-toast .mt-text{font-size:17px;font-weight:700;color:var(--text1)}
.milestone-toast .mt-sub{font-size:14px;color:var(--text3);margin-top:3px}
@keyframes milestoneIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}30%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.95)}}
/* Confirm pop micro-animation */
@keyframes warmConfirmPop{0%{transform:scale(1);background:rgba(52,211,153,.06)}40%{transform:scale(1.03);background:rgba(52,211,153,.12)}100%{transform:scale(1);background:transparent}}
.cockpit-mini-row.warm-confirm{animation:warmConfirmPop .5s cubic-bezier(.16,1,.3,1)}
/* ── Right: Vault (hidden in new layout, CSS kept for compatibility) ── */
.assembly-vault{display:none}
.vault-batch{padding:10px 12px;border-radius:10px;border:1px solid rgba(52,211,153,.06);margin-bottom:5px;background:rgba(52,211,153,.015);animation:vaultSlideIn .4s cubic-bezier(.16,1,.3,1) both;position:relative;opacity:.8;transition:opacity .2s,background .2s}
.vault-batch:hover{opacity:1;background:rgba(52,211,153,.03)}
.vault-batch .vb-name{font-size:14px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vault-batch .vb-meta{display:flex;align-items:center;gap:6px;margin-top:3px}
.vault-batch .vb-count{font-size:12px;color:var(--text3);font-weight:600}
.vault-batch .vb-cat{font-size:12px;font-weight:700;padding:2px 6px;border-radius:4px;flex-shrink:0}
.vault-batch .vb-check{color:var(--accent);font-size:12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);opacity:.5}
@keyframes vaultSlideIn{from{opacity:0;transform:translateX(12px) scale(.95)}to{opacity:.8;transform:translateX(0) scale(1)}}
/* Category panel (right column) */
.cat-panel-item{padding:9px 12px;border-radius:9px;border:1px solid rgba(255,255,255,.04);margin-bottom:4px;cursor:pointer;display:flex;align-items:center;gap:9px;transition:all .2s;position:relative;overflow:hidden}
.cat-panel-item:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.cat-panel-item .cpi-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cat-panel-item .cpi-name{font-size:15px;font-weight:600;color:var(--text2);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-panel-item .cpi-count{font-size:12px;font-weight:700;color:var(--text3);font-family:var(--mono);min-width:18px;text-align:right;flex-shrink:0}
.cat-panel-item .cpi-count.has-items{color:var(--accent)}
.cat-panel-item.highlighted{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.15)}
/* Mini-ledger checkboxes */
.cmr-check{width:14px;height:14px;border-radius:4px;border:1.5px solid rgba(255,255,255,.15);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.cmr-check:hover{border-color:rgba(255,255,255,.3)}
.cmr-check.checked{background:var(--accent);border-color:var(--accent)}
.cmr-check.checked svg{opacity:1}
.cmr-check svg{opacity:0;transition:opacity .15s}
.cmr-selection-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-top:4px;border-radius:8px;background:rgba(52,211,153,.04);border:1px solid rgba(52,211,153,.12);animation:triageCardIn .2s ease}
@keyframes catPanelPop{0%{transform:scale(1);box-shadow:none}20%{transform:scale(1.08);box-shadow:0 0 20px var(--pop-color,rgba(52,211,153,.4)),inset 0 0 0 1px var(--pop-color,rgba(52,211,153,.3))}50%{transform:scale(.97);box-shadow:0 0 8px var(--pop-color,rgba(52,211,153,.2))}70%{transform:scale(1.03)}100%{transform:scale(1);box-shadow:none}}
.cat-panel-item.just-assigned{animation:catPanelPop .7s cubic-bezier(.16,1,.3,1);z-index:2}
/* Fly animations */
.fly-to-vault,.fly-to-cat{position:fixed;z-index:9999;pointer-events:none;transition:all .45s cubic-bezier(.22,.68,0,1.2);opacity:1}
.fly-to-vault.go,.fly-to-cat.go{transform:translateX(var(--fly-dx,200px)) translateY(var(--fly-dy,0)) scale(.5);opacity:0}
.fly-to-pending{position:fixed;z-index:9999;pointer-events:none;transition:all .4s cubic-bezier(.4,0,.2,1);opacity:1}
.fly-to-pending.go{transform:translateX(var(--fly-dx,-200px)) translateY(var(--fly-dy,0)) scale(.7);opacity:0}
/* Business mode gold accent */
.assembly-line.business-mode{--biz-accent:#d4a853}
.assembly-line.business-mode .cockpit-card{border-color:rgba(212,168,83,.15)}
.assembly-line.business-mode .cockpit-mini-row.highlighted{background:rgba(212,168,83,.08);border-left-color:var(--biz-accent);box-shadow:0 2px 16px rgba(212,168,83,.1),inset 0 0 0 1px rgba(212,168,83,.08)}
.assembly-line.business-mode .cockpit-mini-row.highlighted .cmr-desc{color:var(--biz-accent)}
.assembly-line.business-mode .cockpit-mini-row.highlighted .cmr-dot{background:var(--biz-accent)!important;box-shadow:0 0 8px rgba(212,168,83,.5)}
.assembly-line.business-mode .cockpit-mini-row.tab-confirm{animation:tabConfirmPopBiz .45s cubic-bezier(.16,1,.3,1)}
@keyframes tabConfirmPopBiz{0%{transform:scale(1)}30%{transform:scale(1.06);box-shadow:0 0 20px rgba(212,168,83,.25)}100%{transform:scale(1)}}
.assembly-line.business-mode .triage-cat-search-wrap::before{background:linear-gradient(135deg,rgba(212,168,83,.6),rgba(184,148,83,.55),rgba(167,139,250,.4),rgba(212,168,83,.6));background-size:400% 400%;animation:cmdGlow 3s ease infinite}
.assembly-line.business-mode .triage-cat-search-wrap::after{background:linear-gradient(135deg,rgba(212,168,83,.15),rgba(184,148,83,.1),rgba(167,139,250,.08));background-size:400% 400%;animation:cmdGlow 3s ease infinite;filter:blur(16px)}
.assembly-line.business-mode .vault-batch{border-color:rgba(212,168,83,.12);background:rgba(212,168,83,.03)}
.assembly-line.business-mode .pending-batch.next-up{border-color:rgba(212,168,83,.15);background:rgba(212,168,83,.03)}
/* ── Coach mark overlay ── */
.asm-coach-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;animation:coachFadeIn .4s ease forwards}
@keyframes coachFadeIn{to{opacity:1}}
.asm-coach-card{background:var(--surface);border:1px solid rgba(52,211,153,.15);border-radius:20px;padding:32px 36px;max-width:520px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:coachCardIn .5s cubic-bezier(.16,1,.3,1) both;animation-delay:.15s;opacity:0}
@keyframes coachCardIn{to{opacity:1;transform:translateY(0)}}
.asm-coach-card{transform:translateY(16px)}
.asm-coach-step{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.asm-coach-step:last-of-type{border-bottom:none}
.asm-coach-step .acs-num{width:28px;height:28px;border-radius:50%;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.15);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:var(--accent);flex-shrink:0;font-family:var(--mono)}
.asm-coach-step .acs-text{font-size:16px;color:var(--text2);line-height:1.55;font-weight:500}
.asm-coach-step .acs-text strong{color:var(--text1);font-weight:700}
.asm-coach-dismiss{width:100%;padding:14px;border-radius:12px;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.15);color:var(--accent);font-size:17px;font-weight:700;cursor:pointer;font-family:var(--font);margin-top:20px;transition:all .15s}
.asm-coach-dismiss:hover{background:rgba(52,211,153,.18)}
/* ── Contextual command hint ── */
.cmd-context-hint{font-size:15px;color:var(--text3);text-align:center;padding:4px 0 2px;min-height:18px;transition:opacity .3s;font-weight:500;line-height:1.4}
.cmd-context-hint strong{color:var(--text2);font-weight:700}
/* ── Expand/collapse individual view link ── */
.asm-expand-link{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-weight:600;color:var(--text3);cursor:pointer;padding:4px 0;transition:color .15s;background:none;border:none;font-family:var(--font)}
.asm-expand-link:hover{color:var(--accent)}
.asm-expand-link svg{transition:transform .2s}
/* ── Progress encouragement ── */
.progress-encourage{font-size:15px;color:var(--accent);font-weight:600;text-align:center;margin-top:2px;min-height:16px;transition:opacity .3s}
/* Business mode cinematic overlay */
.biz-cinematic{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.85);backdrop-filter:blur(12px);opacity:0;animation:bizCineIn 1.8s ease forwards}
.biz-cinematic .bc-inner{text-align:center}
.biz-cinematic .bc-icon{font-size:40px;margin-bottom:12px;animation:bizIconPulse 1s ease .3s both}
.biz-cinematic .bc-title{font-size:23px;font-weight:900;color:#d4a853;letter-spacing:-.02em;opacity:0;animation:bizTextIn .6s ease .5s forwards}
.biz-cinematic .bc-sub{font-size:16px;color:var(--text3);margin-top:6px;opacity:0;animation:bizTextIn .6s ease .8s forwards}
@keyframes bizCineIn{0%{opacity:0}15%{opacity:1}85%{opacity:1}100%{opacity:0}}
@keyframes bizIconPulse{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes bizTextIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
/* Empty cockpit state */
.cockpit-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:48px 40px;animation:emptyFadeIn .6s cubic-bezier(.16,1,.3,1)}
.cockpit-empty .ce-icon{width:52px;height:52px;border-radius:16px;background:rgba(52,211,153,.08);display:flex;align-items:center;justify-content:center;animation:emptyIconBounce .8s cubic-bezier(.16,1,.3,1) .2s both}
.cockpit-empty .ce-title{font-size:19px;font-weight:800;color:var(--accent)}
.cockpit-empty .ce-sub{font-size:15px;color:var(--text3);text-align:center;max-width:300px;line-height:1.6}
@keyframes emptyFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes emptyIconBounce{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}
/* 2-column category grid */
.triage-cat-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:0;margin-bottom:8px;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}
.triage-cat-grid::-webkit-scrollbar{width:4px}
.triage-cat-grid::-webkit-scrollbar-thumb{background:rgba(255,255,255,.06);border-radius:2px}
.triage-cat-grid .cat-pill{padding:7px 10px;border-radius:8px;font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;border:1.5px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);color:var(--text3);transition:all .15s cubic-bezier(.4,0,.2,1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;text-align:left;display:flex;align-items:center;gap:5px;min-height:30px}
.triage-cat-grid .cat-pill .cp-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;transition:transform .15s}
.triage-cat-grid .cat-pill .cp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.triage-cat-grid .cat-pill:hover{border-color:rgba(255,255,255,.2);color:var(--text);background:rgba(255,255,255,.06);transform:scale(1.02)}
.triage-cat-grid .cat-pill:active{transform:scale(.97);transition-duration:.08s}
.triage-cat-grid .cat-pill .pill-key{position:absolute;top:2px;right:3px;font-size:12px;font-weight:900;color:var(--text3);opacity:.5;font-family:var(--mono);line-height:1;pointer-events:none}
.triage-cat-grid .cat-pill.suggested{border-color:rgba(52,211,153,.4);color:var(--accent);background:rgba(52,211,153,.08);box-shadow:0 0 10px rgba(52,211,153,.05)}
.triage-cat-grid .cat-pill.suggested .cp-dot{transform:scale(1.3);box-shadow:0 0 5px currentColor}
.triage-cat-grid .cat-pill.suggested:hover{background:rgba(52,211,153,.14);box-shadow:0 0 16px rgba(52,211,153,.08)}
.triage-cat-grid .cat-pill.runner-up{border-color:rgba(52,211,153,.2);color:var(--text2);background:rgba(52,211,153,.03)}
.triage-cat-grid .cat-pill.new-added{border-color:rgba(124,184,255,.4);color:var(--blue);background:rgba(124,184,255,.06);animation:pillFlash .5s cubic-bezier(.175,.885,.32,1.275)}
@keyframes pillFlash{0%{background:rgba(124,184,255,.25);transform:scale(1.06)}100%{background:rgba(124,184,255,.06);transform:scale(1)}}
.triage-cat-grid .cat-pill.new-pill{border-style:dashed;color:var(--text3);border-radius:9px;justify-content:center}
.triage-cat-grid .cat-pill.new-pill:hover{border-color:var(--blue);color:var(--blue);background:rgba(124,184,255,.06)}
.triage-cat-grid .cat-pill.pill-hidden{display:none}
.triage-cat-grid .cat-pill .cp-del{display:none;position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:rgba(248,113,113,.15);color:var(--red);font-size:12px;line-height:16px;text-align:center;cursor:pointer;z-index:2;border:none;padding:0;font-weight:700;font-family:var(--font)}
.triage-cat-grid .cat-pill:hover .cp-del{display:block}
.triage-cat-grid .cat-pill .cp-del:hover{background:rgba(248,113,113,.35)}
.triage-cat-grid.delete-mode .cat-pill{border-color:rgba(248,113,113,.25);animation:deleteShake .4s ease}
.triage-cat-grid.delete-mode .cat-pill .cp-del{display:block}
.triage-cat-grid.delete-mode .cat-pill:hover{border-color:rgba(248,113,113,.5);background:rgba(248,113,113,.06)}
@keyframes deleteShake{0%,100%{transform:rotate(0deg)}20%{transform:rotate(-1deg)}40%{transform:rotate(1deg)}60%{transform:rotate(-1deg)}80%{transform:rotate(.5deg)}}
.triage-delete-hint{display:none;padding:6px 12px;margin-top:4px;background:rgba(248,113,113,.06);border:1px solid rgba(248,113,113,.15);border-radius:8px;font-size:14px;color:var(--red);text-align:center}
.triage-delete-hint.visible{display:block}
.triage-transfer-hint{display:none;padding:10px 14px;margin-top:6px;border-radius:10px;font-size:15px;text-align:center;font-weight:600;animation:wzFadeIn .2s ease}
.triage-transfer-hint.visible{display:flex;align-items:center;justify-content:center;gap:8px}
.triage-transfer-hint.to-personal{background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.15);color:var(--accent)}
.triage-transfer-hint.to-business{background:rgba(124,184,255,.06);border:1px solid rgba(124,184,255,.15);color:var(--blue)}
.triage-transfer-hint kbd{font-family:var(--mono);font-size:12px;font-weight:900;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05)}
.triage-transfer-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.02em}
.triage-transfer-badge.personal{background:rgba(52,211,153,.1);color:var(--accent)}
.triage-transfer-badge.business{background:rgba(124,184,255,.1);color:var(--blue)}
/* Transfer phase header */
.transfer-phase-header{padding:14px 18px;background:linear-gradient(135deg,rgba(124,184,255,.06),rgba(52,211,153,.06));border-bottom:1px solid rgba(255,255,255,.06);text-align:center}
.transfer-phase-header .tph-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:4px}
.transfer-phase-header .tph-sub{font-size:14px;color:var(--text3)}
.transfer-phase-header .tph-count{font-size:21px;font-weight:800;color:var(--accent);margin-bottom:2px}
.triage-cat-grid .cat-pill.arrow-active{border-color:var(--accent)!important;color:var(--accent)!important;background:rgba(52,211,153,.15)!important;box-shadow:0 0 0 2px rgba(52,211,153,.25),0 4px 12px rgba(52,211,153,.08)!important;transform:scale(1.04)!important}
/* No-results create button in triage */
.triage-no-results{display:none;padding:6px 0}
.triage-no-results button{width:100%;padding:9px 14px;border-radius:9px;border:1.5px dashed rgba(124,184,255,.3);background:rgba(124,184,255,.04);color:var(--blue);font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:5px}
.triage-no-results button:hover{background:rgba(124,184,255,.1)}
/* Triage action buttons */
.triage-actions{display:flex;align-items:center;gap:10px;padding:14px 0 8px;border-top:1px solid rgba(255,255,255,.05);margin-top:10px;flex-wrap:wrap}
.triage-actions .ta-skip{padding:9px 16px;font-size:16px;color:var(--text3);background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer;font-family:var(--font);font-weight:600;transition:all .2s}
.triage-actions .ta-skip:hover{color:var(--text2);border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}
.triage-actions .ta-split{background:none;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:9px 16px;font-size:16px;font-weight:600;color:var(--text3);cursor:pointer;font-family:var(--font);transition:all .2s}
.triage-actions .ta-split:hover{border-color:var(--blue);color:var(--blue)}
.triage-actions .ta-learn{background:rgba(52,211,153,.04);border:1px solid rgba(52,211,153,.1);border-radius:10px;cursor:pointer;font-size:15px;font-weight:700;color:var(--accent);font-family:var(--font);display:flex;align-items:center;gap:4px;padding:9px 14px;transition:all .2s;margin-left:auto}
.triage-actions .ta-learn.unlinked{background:rgba(248,113,113,.06);border-color:rgba(248,113,113,.12);color:var(--red)}
.triage-actions .ta-undo{background:transparent;border:1px solid rgba(255,255,255,.08);color:var(--text2);font-size:14px;padding:8px 14px;border-radius:10px;cursor:pointer;font-family:var(--font);font-weight:600;transition:all .2s;display:flex;align-items:center;gap:4px}
.triage-actions .ta-undo:hover{border-color:rgba(255,255,255,.2)}
/* Hotkey bar */
#triageHotkeyBarWrap{padding:0 20px;flex-shrink:0}
.triage-hotkeys{border-top:1px solid rgba(255,255,255,.05);margin-top:6px;padding-top:8px}
.triage-hotkeys-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px 0;-webkit-user-select:none;user-select:none}
.triage-hotkeys-toggle .hk-icon{font-size:14px;opacity:.5;transition:transform .2s}
.triage-hotkeys-toggle.open .hk-icon{transform:rotate(90deg)}
.triage-hotkeys-toggle .hk-label{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.triage-hotkeys-toggle .hk-pills{display:flex;gap:4px;margin-left:auto;transition:opacity .2s}
.triage-hotkeys-toggle.open .hk-pills{opacity:0}
.triage-hotkeys-toggle .hk-pills kbd{font-family:var(--mono);font-size:12px;font-weight:900;padding:2px 5px;border-radius:4px;border:1px solid rgba(255,255,255,.1);color:var(--text3);background:rgba(255,255,255,.04);line-height:1}
.triage-hotkeys-body{max-height:0;overflow:hidden;transition:max-height .25s cubic-bezier(.4,0,.2,1)}
.triage-hotkeys.open .triage-hotkeys-body{max-height:200px}
.triage-hk-row{display:flex;align-items:center;gap:8px;padding:5px 0}
.triage-hk-row kbd{font-family:var(--mono);font-size:12px;font-weight:900;padding:3px 8px;border-radius:5px;border:1px solid rgba(255,255,255,.1);color:var(--text);background:rgba(255,255,255,.05);min-width:40px;text-align:center;flex-shrink:0;transition:all .15s}
.triage-hk-row .hk-desc{font-size:12px;color:var(--text3);line-height:1.3;transition:color .15s}
.triage-hk-row .hk-desc strong{color:var(--text2);font-weight:700;transition:color .15s}
.triage-hk-row.hk-flash kbd{background:rgba(52,211,153,.2);border-color:rgba(52,211,153,.4);color:var(--accent);box-shadow:0 0 8px rgba(52,211,153,.15)}
.triage-hk-row.hk-flash .hk-desc{color:var(--text2)}
.triage-hk-row.hk-flash .hk-desc strong{color:var(--accent)}
.triage-hk-row.hk-breathe kbd{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);color:var(--text);box-shadow:none;transition:all .5s ease-out}
.triage-hk-row.hk-breathe .hk-desc{color:var(--text3);transition:color .5s ease-out}
.triage-hk-row.hk-breathe .hk-desc strong{color:var(--text2);transition:color .5s ease-out}
.triage-hotkeys-toggle .hk-pills kbd.hk-pill-flash{background:rgba(52,211,153,.2);border-color:rgba(52,211,153,.4);color:var(--accent);transition:all .15s}
.triage-hotkeys-toggle .hk-pills kbd.hk-pill-breathe{transition:all .5s ease-out}
/* Last assigned indicator */
.triage-last-assigned{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:8px;background:rgba(52,211,153,.04);border:1px solid rgba(52,211,153,.1);border-radius:8px;animation:lastAssignIn .3s ease-out}
.triage-last-assigned .tla-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.triage-last-assigned .tla-text{font-size:12px;color:var(--text3);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.triage-last-assigned .tla-text strong{color:var(--accent);font-weight:700}
.triage-last-assigned .tla-cat{font-size:12px;font-weight:700;color:var(--accent);flex-shrink:0}
@keyframes lastAssignIn{0%{opacity:0;transform:translateY(-4px)}100%{opacity:1;transform:translateY(0)}}
/* Column mapping confirmation popup */
.map-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);z-index:300;display:flex;align-items:center;justify-content:center;animation:wzFadeIn .25s ease}
.map-confirm-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px 28px;width:420px;max-width:90vw;text-align:center;animation:wzSlideUp .3s ease}
.map-confirm-icon{font-size:33px;margin-bottom:12px}
.map-confirm-title{font-size:20px;font-weight:700;color:var(--text);margin-bottom:8px}
.map-confirm-body{font-size:16px;color:var(--text2);line-height:1.6;margin-bottom:24px}
.map-confirm-body strong{color:var(--text);font-weight:600}
.map-confirm-countdown{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;position:relative;margin-bottom:20px}
.map-confirm-countdown svg{position:absolute;top:0;left:0;width:44px;height:44px;transform:rotate(-90deg)}
.map-confirm-countdown svg circle{fill:none;stroke-width:3;stroke-linecap:round}
.map-confirm-countdown svg .mc-track{stroke:rgba(255,255,255,.06)}
.map-confirm-countdown svg .mc-progress{stroke:var(--accent);stroke-dasharray:126;stroke-dashoffset:0;transition:stroke-dashoffset .1s linear}
.map-confirm-countdown .mc-num{font-size:18px;font-weight:800;color:var(--accent);font-family:var(--mono);z-index:1}
.map-confirm-btns{display:flex;gap:10px;justify-content:center}
.map-confirm-btns .btn{font-family:var(--font);font-size:17px;padding:10px 24px;border-radius:10px;cursor:pointer;border:none;font-weight:600;transition:all .15s}
.map-confirm-btns .mcb-cancel{background:var(--surface2);color:var(--text2)}
.map-confirm-btns .mcb-cancel:hover{background:rgba(255,255,255,.08)}
.map-confirm-btns .mcb-confirm{background:var(--accent);color:#000;opacity:.35;pointer-events:none;transition:opacity .3s}
.map-confirm-btns .mcb-confirm.ready{opacity:1;pointer-events:auto}
/* ── Mapper Redesign ── */
.mapper-analyze-stage{display:flex;align-items:center;gap:12px;padding:8px 0;opacity:0;transform:translateX(-10px);transition:all .4s ease}
.mapper-analyze-stage.active{opacity:1;transform:translateX(0)}
.mapper-analyze-stage.done{opacity:.5}
.mapper-analyze-stage .mas-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:17px}
.mapper-analyze-stage .mas-text{font-size:16px;color:var(--text2);font-weight:500}
.mapper-analyze-stage.active .mas-text{color:var(--text);font-weight:600}
.mapper-analyze-progress{width:200px;height:3px;border-radius:2px;background:rgba(255,255,255,.06);margin:12px auto 0;overflow:hidden}
.mapper-analyze-progress .fill{height:100%;border-radius:2px;background:var(--accent);transition:width .4s ease;width:0}
/* ── Mapper strip (columnar spreadsheet-style) ── */
.mapper-strip-wrap{position:relative;padding:0;flex:1;min-height:0;display:flex;flex-direction:column}
.mapper-strip-scroll{overflow-x:auto;overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}
.mapper-strip{width:100%;border-collapse:separate;border-spacing:0;min-width:max-content}
.mapper-strip thead{position:sticky;top:0;z-index:4}
/* Scan bar that sweeps across columns on reveal */
.mapper-scan-bar{position:absolute;top:0;bottom:0;width:3px;left:-3px;background:linear-gradient(180deg,rgba(52,211,153,.0),var(--accent),rgba(52,211,153,.0));box-shadow:0 0 16px rgba(52,211,153,.3);z-index:5;pointer-events:none;opacity:0;transition:none}
.mapper-scan-bar.active{opacity:1;animation:mapperScanSweep 1s ease forwards}
@keyframes mapperScanSweep{0%{left:0;opacity:.8}100%{left:100%;opacity:0}}
/* Selector header row */
.mapper-strip-selectors{}
.mapper-strip-th{padding:14px 14px 10px;background:var(--surface);position:sticky;top:0;z-index:3;text-align:left;vertical-align:top;border-bottom:2px solid var(--border);min-width:120px}
.mapper-strip-th .col-type-dot{height:3px;border-radius:2px;margin-bottom:8px;transition:background .3s}
.mapper-strip-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;transition:all .25s}
/* Custom dropdown (non-native) */
.mapper-dd{position:relative;width:100%}
.mapper-dd-trigger{width:100%;box-sizing:border-box;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:7px 24px 7px 10px;font-size:14px;font-weight:600;color:var(--text);font-family:var(--font);cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;display:flex;align-items:center;gap:5px;user-select:none;position:relative;min-width:0;overflow:hidden}
.mapper-dd-trigger::after{content:'';position:absolute;right:8px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text3);transition:transform .2s}
.mapper-dd-trigger:hover{border-color:var(--border-hover);background:var(--surface3)}
.mapper-dd-trigger.open{border-color:var(--accent);box-shadow:0 0 0 2px rgba(52,211,153,.1)}
.mapper-dd-trigger.open::after{transform:translateY(-50%) rotate(180deg)}
.mapper-dd-trigger.mapper-missing{border-color:rgba(239,68,68,.4);animation:mapperPulse 1.5s ease infinite}
.mapper-dd-trigger .mdd-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;transition:background .2s}
.mapper-dd-trigger .mdd-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.mapper-dd-menu{position:fixed;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:999;padding:4px;display:none;animation:mapperDdIn .15s ease;width:180px;overflow:hidden}
.mapper-dd-menu.open{display:block}
.mapper-dd-opt{padding:7px 10px;border-radius:6px;font-size:15px;font-weight:500;color:var(--text);font-family:var(--font);cursor:pointer;display:flex;align-items:center;gap:7px;transition:background .1s;white-space:nowrap}
.mapper-dd-opt:hover{background:rgba(255,255,255,.06)}
.mapper-dd-opt.active{background:rgba(52,211,153,.1);color:var(--accent);font-weight:700}
.mapper-dd-opt.disabled{opacity:1;cursor:pointer}
.mapper-dd-opt .mdd-taken{font-size:12px;color:var(--text3);margin-left:auto;font-weight:400;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px;flex-shrink:0}
.mapper-dd-opt .mdd-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
@keyframes mapperDdIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
/* Hidden real select for getColumnMapping() compat */
.mapper-dd select.mapper-dd-real{display:none}
/* CSV header row */
.mapper-strip-headers{}
.mapper-strip-hd{padding:6px 14px;font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap}
/* Data rows — stagger reveal */
.mapper-strip-row{opacity:0;transform:translateY(6px);transition:all .35s ease}
.mapper-strip-row.revealed{opacity:1;transform:translateY(0)}
.mapper-strip-cell{padding:7px 14px;border-bottom:1px solid rgba(255,255,255,.03);font-family:var(--mono);font-size:15px;color:var(--text);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;transition:background .15s}
.mapper-strip-cell.empty{color:var(--text3);opacity:.35}
.mapper-strip-row:hover .mapper-strip-cell{background:rgba(255,255,255,.02)}
.mapper-strip-more{padding:8px 14px;font-size:12px;color:var(--text3);text-align:center;border-bottom:none}
/* Row numbers */
.mapper-strip-rownum{padding:4px 8px 4px 12px;font-size:12px;font-family:var(--mono);color:var(--text3);opacity:.35;border-bottom:1px solid rgba(255,255,255,.03);white-space:nowrap;user-select:none;width:28px;text-align:right}
.mapper-strip-rownum-hd{width:28px;min-width:28px;max-width:28px}
/* Best row highlight — row where all columns have data */
.mapper-best-row .mapper-strip-cell{background:rgba(52,211,153,.04)}
.mapper-best-row .mapper-strip-rownum{color:var(--accent);opacity:.7}
/* Scroll hint */
.mapper-scroll-hint{position:sticky;bottom:0;left:0;right:0;text-align:center;padding:6px 0;font-size:12px;font-weight:600;color:var(--accent);display:flex;align-items:center;justify-content:center;gap:4px;background:linear-gradient(transparent,var(--bg) 40%);opacity:0;pointer-events:none;transition:opacity .3s}
.mapper-scroll-hint.visible{opacity:1;animation:mapperBounceHint 1.5s ease infinite}
@keyframes mapperBounceHint{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes mapperPulse{0%,100%{border-color:rgba(239,68,68,.2)}50%{border-color:rgba(239,68,68,.5)}}
@keyframes mapperCardReveal{0%{opacity:0;transform:translateY(16px) scale(.97)}100%{opacity:1;transform:translateY(0) scale(1)}}
/* ── Mapper layout ── */
.mapper-layout{position:relative;max-height:88vh}
.mapper-card-main{background:var(--bg);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6);min-width:660px;max-width:92vw;max-height:88vh;display:flex;flex-direction:column}
/* Preview in mapper */
.mapper-preview-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:8px 0}
.mapper-preview-card .mpc-header{padding:6px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px}
.mapper-preview-card .mpc-title{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.04em}
.mapper-preview-card .mpc-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.mapper-preview-row{display:flex;align-items:center;gap:12px;padding:6px 14px;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s}
.mapper-preview-row:last-child{border-bottom:none}
.mapper-preview-row:hover{background:rgba(255,255,255,.02)}
.mapper-preview-row .mpr-date{width:85px;flex-shrink:0;font-size:14px;font-weight:600;color:var(--accent)}
.mapper-preview-row .mpr-desc{flex:1;min-width:0;font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mapper-preview-row .mpr-amt{width:85px;flex-shrink:0;text-align:right;font-family:var(--mono);font-size:14px;font-weight:700}
/* Data peek (replaces raw table) */
.mapper-data-peek{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px}
.mapper-data-peek summary{padding:10px 16px;font-size:14px;font-weight:600;color:var(--text3);cursor:pointer;background:var(--surface);list-style:none;display:flex;align-items:center;gap:6px}
.mapper-data-peek summary::-webkit-details-marker{display:none}
.mapper-data-peek summary::before{content:'';display:inline-block;width:0;height:0;border-left:4px solid var(--text3);border-top:3px solid transparent;border-bottom:3px solid transparent;transition:transform .2s;flex-shrink:0}
.mapper-data-peek[open] summary::before{transform:rotate(90deg)}
.mapper-data-peek .mdp-table{width:100%;border-collapse:collapse;font-size:14px}
.mapper-data-peek .mdp-table td{padding:5px 10px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text2);font-family:var(--mono);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.mapper-data-peek .mdp-table tr:nth-child(even) td{background:rgba(255,255,255,.01)}
/* Bottom buttons row */
.triage-bottom-actions{display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}
.triage-bottom-actions .btn{font-family:var(--font)}
/* Triage ticker — monospace system log at bottom */
.triage-ticker{padding:8px 18px;border-top:1px solid rgba(255,255,255,.03);flex-shrink:0;font-size:12px;font-family:var(--font);color:var(--text3);opacity:.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:28px;display:flex;align-items:center;gap:6px;transition:opacity .3s}
.triage-ticker .tt-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:dotPulse 1.5s ease-in-out infinite;flex-shrink:0}
.triage-ticker .tt-msg{animation:tickerCycle .4s ease}
/* Triage completion state */
.triage-complete{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;flex:1}
.triage-complete .tc-icon{width:48px;height:48px;border-radius:50%;background:rgba(52,211,153,.1);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.triage-complete .tc-title{font-size:18px;font-weight:800;color:var(--text);margin-bottom:6px}
.triage-complete .tc-sub{font-size:15px;color:var(--text3);line-height:1.5}
/* Keyboard hints in triage */
.triage-kbd-bar{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 18px;flex-wrap:wrap;opacity:.35;transition:opacity .3s;flex-shrink:0;border-top:1px solid rgba(255,255,255,.03)}
.triage-kbd-bar:hover{opacity:.6}
.triage-kbd-bar kbd{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:2px 7px;border-radius:5px;font-family:var(--mono);font-size:12px;font-weight:800;color:var(--text2);display:inline-block}
.triage-kbd-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text3);font-weight:500}
/* ── Animations ── */
@keyframes shimmerResolve{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes rowFadeIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}
@keyframes triageCardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes triageCardOut{to{opacity:0;transform:translateY(-16px)}}
@keyframes tickerCycle{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes dotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
/* Keep existing vaporize particles */
.vaporize-particle{position:absolute;border-radius:50%;pointer-events:none;z-index:100}
@keyframes vaporizeParticle{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--vx),var(--vy)) scale(0)}}
/* Streak pulse */
.streak-pulse{position:fixed;inset:0;pointer-events:none;z-index:200;opacity:0;animation:streakEdgePulse .8s ease forwards}
.streak-pulse::before{content:'';position:absolute;inset:0;border:3px solid var(--accent);box-shadow:inset 0 0 60px rgba(52,211,153,.15),0 0 60px rgba(52,211,153,.1)}
@keyframes streakEdgePulse{0%{opacity:0}15%{opacity:.8}100%{opacity:0}}
/* Split mode — keep existing classes */
.teach-split-list{padding:0;max-height:280px;overflow-y:auto;scrollbar-width:thin}
.teach-split-row{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}
.teach-split-row:last-child{border-bottom:none}
.teach-split-row:hover{background:rgba(255,255,255,.03)}
.teach-split-row .tsr-info{flex:1;min-width:0;display:flex;align-items:center;gap:6px}
.teach-split-row .tsr-date{width:68px;flex-shrink:0;font-size:12px;color:var(--text3);font-family:var(--mono)}
.teach-split-row .tsr-desc{flex:1;font-size:14px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.teach-split-row .tsr-amt{width:70px;text-align:right;font-family:var(--mono);font-weight:600;font-size:12px;flex-shrink:0}
.teach-split-row .tsr-cat{flex-shrink:0}
.teach-split-row .tsr-cat select{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:7px;padding:5px 8px;font-size:14px;color:var(--text);font-family:var(--font);cursor:pointer;outline:none;min-width:100px;transition:border-color .15s}
.teach-split-row .tsr-cat select:focus{border-color:var(--accent)}
.teach-split-row.has-cat{background:rgba(52,211,153,.04)}
.teach-split-row.has-cat .tsr-cat select{border-color:rgba(52,211,153,.3);color:var(--accent)}
.teach-tx-del,.teach-tx-move{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;opacity:.3;transition:all .15s;flex-shrink:0;line-height:1}
.teach-tx-del:hover{opacity:1;color:var(--red)}
.teach-tx-move:hover{opacity:1}
.teach-tx-del{color:var(--text3)}
.teach-tx-move{color:var(--blue);font-size:15px}
.teach-link-wrap:hover .teach-link-tooltip{opacity:1!important}
.tt-acct{font-size:12px;color:var(--text3);background:var(--surface2);padding:1px 5px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px;flex-shrink:0}
/* ── Responsive: stack vertically at <900px ── */
@media(max-width:900px){
  .teach-dashboard{flex-direction:column;height:auto;min-height:calc(100vh - 120px)}
  .teach-ledger{width:100%;max-height:40vh;min-height:200px}
  .teach-triage{width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.06)}
  .triage-cat-grid{grid-template-columns:1fr 1fr;max-height:150px}
}

/* Import summary */
.import-summary{animation:fadeInUp .4s ease;text-align:left;padding:32px 24px}
.import-summary .is-check{width:56px;height:56px;border-radius:50%;background:rgba(52,211,153,.12);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;animation:checkPop .5s cubic-bezier(.175,.885,.32,1.275) .2s both}
@keyframes checkPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.import-summary .is-title{font-size:21px;font-weight:800;color:var(--text);margin-bottom:6px}
.import-summary .is-sub{font-size:16px;color:var(--text2);margin-bottom:20px}
.is-stat-row{display:flex;justify-content:center;gap:24px;margin:16px 0}
.is-stat{text-align:center}
.is-stat .is-num{font-size:23px;font-weight:800;font-variant-numeric:tabular-nums}
.is-stat .is-lbl{font-size:12px;color:var(--text3);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
/* Post-import review */
.pir-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.65);backdrop-filter:blur(8px);z-index:250;display:flex;align-items:center;justify-content:center;animation:wzFadeIn .25s ease}
.pir-card{background:var(--bg);border:1px solid var(--border);border-radius:18px;width:680px;max-width:94vw;max-height:86vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.pir-head{padding:22px 28px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.pir-head h3{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em}
.pir-head .pir-count{font-size:15px;color:var(--text3);font-weight:600;margin-left:8px}
.pir-body{overflow-y:auto;flex:1;padding:12px 0}
.pir-row{display:flex;align-items:center;gap:10px;padding:10px 24px;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}
.pir-row:hover{background:rgba(255,255,255,.025)}
.pir-row .pir-date{font-size:14px;color:var(--text3);font-family:var(--mono);width:80px;flex-shrink:0}
.pir-row .pir-desc{font-size:16px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pir-row .pir-amt{font-size:16px;font-weight:700;font-family:var(--mono);width:90px;text-align:right;flex-shrink:0}
.pir-row .pir-cat{font-size:14px;font-weight:600;padding:3px 10px;border-radius:6px;cursor:pointer;transition:opacity .15s;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pir-row .pir-cat:hover{opacity:.8}
.pir-row .pir-sec{font-size:12px;font-weight:700;padding:2px 8px;border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}
.pir-row .pir-del{font-size:17px;cursor:pointer;color:var(--text3);opacity:0;transition:opacity .15s;flex-shrink:0;padding:4px}
.pir-row:hover .pir-del{opacity:1}
.pir-row .pir-del:hover{color:var(--red)}
.pir-foot{padding:14px 24px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.pir-search{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 12px;font-size:15px;color:var(--text);font-family:var(--font);width:200px}
.pir-search:focus{outline:none;border-color:var(--accent)}
.confetti-piece{position:fixed;width:8px;height:8px;border-radius:50%;z-index:999;pointer-events:none;animation:confettiFall 2.5s ease forwards}
@keyframes confettiFall{0%{opacity:1;transform:translateY(0) rotate(0deg)}100%{opacity:0;transform:translateY(100vh) rotate(720deg)}}
.btn-sort{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700;color:var(--text3);cursor:pointer;font-family:var(--font);white-space:nowrap;transition:all .15s;text-transform:uppercase;letter-spacing:.04em;text-align:left}
.btn-sort:hover{color:var(--text);border-color:var(--border-hover);background:var(--surface3)}
.btn-sort.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.btn-sort.active.asc::after{content:' ↑'}
.btn-sort.active.desc::after{content:' ↓'}
.popup-sort-btn.active{color:var(--accent);font-weight:700;border-color:var(--accent);background:var(--accent-soft)}
.popup-sort-btn.active.asc::after{content:' ↑'}
.popup-sort-btn.active.desc::after{content:' ↓'}
/* Unified table headers — match data row layouts exactly */
.tbl-hdr{display:flex;align-items:center;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:2}
.tbl-hdr .btn-sort{text-align:left}
/* Type A: Main transactions page — must match .acc-tx-row layout */
.tbl-hdr-a{padding:6px 12px;gap:6px}
.tbl-hdr-a .col-date{width:80px;flex-shrink:0}
.tbl-hdr-a .col-desc{flex:1;min-width:80px}
.tbl-hdr-a .col-acct{width:110px;flex-shrink:0}
.tbl-hdr-a .col-amt{width:95px;flex-shrink:0;text-align:right}
.tbl-hdr-a .col-cat{width:120px;flex-shrink:0}
.tbl-hdr-a .col-type{width:80px;flex-shrink:0}
.tbl-hdr-a .col-tail{width:60px;flex-shrink:0}
/* Type B: Popup tables */
.tbl-hdr-b{padding:6px 14px;gap:6px}
.tbl-hdr-b .col-date{width:60px;flex-shrink:0}
.tbl-hdr-b .col-desc{flex:1;min-width:80px}
.tbl-hdr-b .col-amt{width:95px;flex-shrink:0;text-align:right}
.tbl-hdr-b .col-cat{width:110px;flex-shrink:0}
.tbl-hdr-b .col-acct{width:110px;flex-shrink:0}
.tbl-hdr-b .col-type{width:80px;flex-shrink:0}
.tbl-hdr-b .col-tail{width:60px;flex-shrink:0}
/* Type D: Investment holdings */
.tbl-hdr-d{padding:3px 12px;gap:4px}
.tbl-hdr-d .col-name{flex:2;min-width:0}
.tbl-hdr-d .col-units{width:75px;flex-shrink:0;text-align:right}
.tbl-hdr-d .col-price{width:75px;flex-shrink:0;text-align:right}
.tbl-hdr-d .col-total{width:85px;flex-shrink:0;text-align:right}
.tbl-hdr-d .col-tail{width:18px;flex-shrink:0}
.tbl-hdr-c{padding:3px 22px;gap:8px}
.tbl-hdr-c .col-chk{width:16px;flex-shrink:0}
.tbl-hdr-c .col-date{width:74px;flex-shrink:0}
.tbl-hdr-c .col-desc{flex:1;min-width:0}
.tbl-hdr-c .col-amt{width:90px;flex-shrink:0;text-align:right}
.tbl-hdr-c .col-cat{width:120px;flex-shrink:0}
.tbl-hdr-c .col-type{width:75px;flex-shrink:0}
.tbl-hdr-c .col-acct{width:100px;flex-shrink:0}
.tbl-hdr-c .col-tail{width:60px;flex-shrink:0}
.editable-amt:hover{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:2px}
.editable-field:hover{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:2px;text-decoration-color:var(--text3)}
.rv-link{background:none;border:1px solid var(--border);color:var(--accent);cursor:pointer;font-size:12px;padding:2px 5px;border-radius:4px;transition:all .15s;font-family:var(--font);flex-shrink:0;line-height:1}
.rv-link:hover{border-color:var(--accent);background:var(--accent-soft)}
.rv-link.unlinked{color:var(--text3);border-color:var(--border);opacity:.6}
.rv-link.unlinked:hover{opacity:1;color:var(--text2)}
.review-foot{padding:7px 22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:8px}
.review-foot .review-stats{font-size:14px;color:var(--text2)}

/* TRANSACTION POPUP */
.tx-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.tx-popup-overlay.show{opacity:1;pointer-events:all}
.tx-popup{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:0;width:880px;max-width:94vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.tx-popup-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px 14px;border-bottom:1px solid var(--border)}
.tx-popup-head h3{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px;margin:0}
.tx-popup-body{overflow-y:auto;flex:1;padding:0 0 4px}
.tx-popup-body table{margin:0}
.tx-popup-total{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:15px;font-weight:600;color:var(--text2)}
.tx-popup-total span:last-child{color:var(--text);font-family:var(--mono)}
/* UNIFIED ACCORDION CARD COMPONENT */
.acc-card{background:var(--surface2);border:1px solid var(--border);border-radius:12px;margin:4px 0;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.acc-card:hover{border-color:var(--border-hover)}
.acc-card.open{border-color:var(--border-hover);box-shadow:0 2px 12px rgba(0,0,0,.15)}
.acc-card-tab{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;user-select:none;transition:background .15s}
.acc-card-tab:hover{background:var(--surface3)}
.acc-card-color{width:3px;height:22px;border-radius:2px;flex-shrink:0}
.acc-card-info{flex:1;min-width:0}
.acc-card-title{font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:5px}
.acc-card-meta{font-size:12px;color:var(--text3);margin-top:2px;display:flex;gap:6px}
.acc-card-total{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;font-family:var(--mono);flex-shrink:0}
.acc-card-arrow{font-size:12px;color:var(--text3);transition:transform .2s;flex-shrink:0}
.acc-card.open .acc-card-arrow{transform:rotate(90deg)}
.acc-card-body{display:none;border-top:1px solid var(--border);max-height:350px;overflow-y:auto}
.acc-card.open .acc-card-body{display:block}
.popup-sort-btn{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text3);font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;padding:4px 8px;text-transform:uppercase;letter-spacing:.04em;transition:all .15s;text-align:left}
.popup-sort-btn:hover{color:var(--text);border-color:var(--border-hover);background:var(--surface3)}
.tx-popup-row{display:flex;align-items:center;padding:8px 14px;gap:6px;transition:background .1s;font-size:15px}
.tx-popup-row:hover{background:rgba(255,255,255,.03)}
.tx-popup-row:not(:last-child){border-bottom:1px solid var(--border)}
.tx-popup-row .pr-date{width:60px;flex-shrink:0;color:var(--text2);font-size:15px;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.tx-popup-row .pr-desc{flex:1;min-width:80px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-popup-row .pr-amt{width:95px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:15px;flex-shrink:0}
.tx-popup-row .pr-cat{display:inline-flex;align-items:center;gap:4px;font-size:15px;color:var(--text3);width:110px;flex-shrink:0}
.tx-popup-row .pr-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:15px;padding:2px 6px;border-radius:4px;opacity:0;transition:all .15s;flex-shrink:0}
.tx-popup-row:hover .pr-del{opacity:1}
.tx-popup-row .pr-del:hover{color:var(--red);background:var(--red-soft)}
/* Category-colored selects */
.cat-select{border-radius:14px;padding:3px 20px 3px 8px;font-size:12px;font-weight:600;max-width:140px;background-size:8px 5px;background-position:right 6px center}
.cat-select:focus{border-color:var(--accent)}
.acct-select{background:var(--surface2);border:1.5px solid var(--border);color:var(--text2);border-radius:14px;padding:3px 16px 3px 8px;font-size:12px;font-family:var(--font);cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 5px center;max-width:110px;flex-shrink:0}
.acct-select:focus{border-color:var(--accent)}
.acct-select.unassigned{border-color:rgba(239,68,68,.45);animation:acctPulse 2.5s ease-in-out infinite}
@keyframes acctPulse{0%,100%{border-color:rgba(239,68,68,.25);box-shadow:none}50%{border-color:rgba(239,68,68,.55);box-shadow:0 0 6px rgba(239,68,68,.15)}}
/* Column mapper: unassigned/missing column animations */
.mapper-unassigned{border-color:var(--border)!important;transition:border-color .3s,box-shadow .3s,transform .3s}
.mapper-missing{border-color:rgba(239,68,68,.5)!important;box-shadow:0 0 8px rgba(239,68,68,.15);animation:mapperBounce 2s ease-in-out infinite}
@keyframes mapperBounce{0%,100%{transform:translateY(0);border-color:rgba(239,68,68,.3);box-shadow:0 0 4px rgba(239,68,68,.1)}50%{transform:translateY(-2px);border-color:rgba(239,68,68,.6);box-shadow:0 0 10px rgba(239,68,68,.2)}}
.acct-wrap{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;width:110px}
.acct-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.type-select{background:var(--surface2);border:1px solid var(--border);color:var(--text3);border-radius:5px;padding:2px 5px;font-size:12px;font-family:var(--font);cursor:pointer;outline:none}
/* Custom category picker (replaces native select) */
.cat-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:14px;font-size:14px;font-weight:600;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;font-family:var(--font);transition:all .15s;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;user-select:none;flex-shrink:0}
.cat-pill:hover{border-color:var(--border-hover);background:var(--surface3)}
.cat-pill .cp-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.cat-pill .cp-arrow{font-size:12px;color:var(--text3);margin-left:auto;flex-shrink:0;transition:transform .2s}
.cat-pill.open .cp-arrow{transform:rotate(180deg)}
.cat-picker{position:fixed;z-index:500;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.03);min-width:180px;max-width:240px;max-height:280px;display:flex;flex-direction:column;animation:cpFadeIn .15s ease}
@keyframes cpFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.cat-picker-search{width:100%;padding:6px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--text);font-family:var(--font);outline:none;margin-bottom:4px;box-sizing:border-box}
.cat-picker-search:focus{border-color:var(--accent)}
.cat-picker-list{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}
.cat-picker-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--text2);font-family:var(--font);transition:background .1s}
.cat-picker-item:hover{background:var(--surface3);color:var(--text)}
.cat-picker-item.active{background:rgba(52,211,153,.08);color:var(--accent);font-weight:600}
.cat-picker-item .cpi-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.cat-picker-item .cpi-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-picker-empty{padding:12px;text-align:center;font-size:14px;color:var(--text3)}
.tx-action{padding:2px 5px;font-size:12px;color:var(--text3);border:1px solid transparent;border-radius:4px;cursor:pointer;background:none;font-family:var(--font);transition:all .15s;flex-shrink:0}
.tx-action:hover{border-color:var(--border);color:var(--text2)}

/* Category filter chips */
.cat-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;border:1px solid var(--border);background:none;color:var(--text2);cursor:pointer;font-family:var(--font);transition:all .15s}
.cat-chip:hover{border-color:var(--border-hover);color:var(--text2)}
.cat-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.cat-chip .top3-dot{width:6px;height:6px;border-radius:50%}

/* Scalable transaction table */
.tx-table-card{min-height:300px;max-height:calc(100vh - 280px);overflow:hidden;display:flex;flex-direction:column}

.sec-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.sec-title{font-size:17px;font-weight:700;letter-spacing:-.02em}.sec-sub{font-size:14px;color:var(--text2);margin-left:6px}

/* MODAL */
.bank-guide-link{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:12px;font-weight:500;text-decoration:none;transition:border-color .2s,background .2s,transform .15s;cursor:pointer;text-align:center;line-height:1.3}
.bank-guide-link:hover{border-color:var(--accent);background:rgba(52,211,153,.04);transform:translateY(-2px)}
.bank-guide-link img{border-radius:6px}
.bank-search{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:15px;outline:none;margin-bottom:10px;font-family:inherit;transition:border .2s}
.bank-search:focus{border-color:var(--accent)}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:100;display:none;align-items:center;justify-content:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-overlay.show{display:flex}
.modal{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:0;width:min(760px,92vw);max-height:88vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.04);scrollbar-width:thin}
.modal::-webkit-scrollbar{width:4px}.modal::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
.modal h2{font-size:21px;font-weight:700;margin:0;letter-spacing:-.02em}
.modal-header{padding:24px 28px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:2;display:flex;align-items:center;justify-content:space-between}
.modal-body{padding:24px 28px 28px}
.modal-tabs{display:flex;gap:2px;padding:4px;background:var(--surface2);border-radius:12px;margin-bottom:22px}
/* Add modal account picker step */
.add-acct-picker{text-align:center}
.add-acct-picker .aap-title{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.02em;margin-bottom:4px}
.add-acct-picker .aap-sub{font-size:15px;color:var(--text3);margin-bottom:20px}
.add-acct-picker .aap-section{text-align:left;margin-bottom:16px}
.add-acct-picker .aap-section-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:8px;padding-left:2px}
.add-acct-picker .aap-list{display:flex;flex-direction:column;gap:6px}
.add-acct-picker .aap-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1.5px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);cursor:pointer;transition:all .15s}
.add-acct-picker .aap-item:hover{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.04);transform:translateY(-1px)}
.add-acct-picker .aap-item .aap-icon{width:56px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.add-acct-picker .aap-item .aap-icon img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.add-acct-picker .aap-item .aap-info{flex:1;min-width:0;text-align:left}
.add-acct-picker .aap-item .aap-name{font-size:16px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.add-acct-picker .aap-item .aap-meta{font-size:12px;color:var(--text3);margin-top:1px}
.add-acct-picker .aap-item .aap-bal{font-size:15px;font-weight:700;font-family:var(--mono);flex-shrink:0}
.add-acct-picker .aap-create{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:8px 16px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:none;color:var(--text3);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .15s}
.add-acct-picker .aap-create:hover{border-color:rgba(52,211,153,.3);color:var(--accent)}
.add-acct-picker .aap-skip{display:inline-block;margin-top:12px;font-size:14px;color:var(--text3);cursor:pointer;text-decoration:underline;text-underline-offset:3px;background:none;border:none;font-family:var(--font);transition:color .15s}
.add-acct-picker .aap-skip:hover{color:var(--text2)}
/* Per-account action buttons */
.aap-item-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}
.aap-item-actions .aap-btn{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--text3);transition:all .15s;display:flex;align-items:center;gap:5px;white-space:nowrap}
.aap-item-actions .aap-btn:hover{border-color:rgba(52,211,153,.3);color:var(--accent);background:rgba(52,211,153,.04)}
.aap-item-actions .aap-btn svg{flex-shrink:0}
.aap-item-actions .aap-btn.aap-btn-manual{color:var(--text3)}
.aap-item-actions .aap-btn.aap-btn-manual:hover{color:var(--blue);border-color:rgba(124,184,255,.3);background:rgba(124,184,255,.04)}
/* Batch queue */
.aap-batch{margin-top:16px;text-align:left;border-top:1px solid rgba(255,255,255,.06);padding-top:14px}
.aap-batch-title{font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.aap-batch-title .aap-batch-count{background:var(--accent);color:var(--bg);font-size:12px;padding:2px 7px;border-radius:10px;font-weight:900}
.aap-batch-list{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.aap-batch-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:rgba(52,211,153,.04);border:1px solid rgba(52,211,153,.12);font-size:14px}
.aap-batch-item .abi-acct{font-weight:700;color:var(--text);flex-shrink:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aap-batch-item .abi-file{flex:1;color:var(--text3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.aap-batch-item .abi-count{font-family:var(--mono);font-weight:700;color:var(--accent);font-size:12px;flex-shrink:0}
.aap-batch-item .abi-remove{background:none;border:none;color:var(--text3);cursor:pointer;font-size:16px;padding:0 2px;transition:color .15s;flex-shrink:0}
.aap-batch-item .abi-remove:hover{color:var(--red)}
.aap-batch-item.abi-manual{border-color:rgba(124,184,255,.15);background:rgba(124,184,255,.04)}
.aap-batch-item.abi-manual .abi-count{color:var(--blue)}
.aap-batch-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.aap-batch-actions .aap-batch-clear{background:none;border:none;font-size:12px;color:var(--text3);cursor:pointer;font-family:var(--font);text-decoration:underline;text-underline-offset:2px;padding:6px 8px}
.aap-batch-actions .aap-batch-clear:hover{color:var(--red)}
.aap-batch-actions .aap-batch-import{padding:10px 24px;border-radius:10px;font-size:16px;font-weight:800;font-family:var(--font);cursor:pointer;border:none;background:var(--accent);color:var(--bg);transition:all .15s;box-shadow:0 4px 16px rgba(52,211,153,.2)}
.aap-batch-actions .aap-batch-import:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 6px 20px rgba(52,211,153,.3)}
.modal-tab{flex:1;padding:11px 10px;font-size:16px;font-weight:600;text-align:center;border-radius:9px;cursor:pointer;color:var(--text3);transition:all .2s;border:none;background:none;font-family:var(--font)}
.modal-tab:hover{color:var(--text2)}
.modal-tab.active{background:var(--accent);color:var(--bg);box-shadow:0 2px 8px rgba(52,211,153,.2)}
.modal-panel{display:none}.modal-panel.active{display:block}
.modal-close{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);color:var(--text3);font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.modal-close:hover{background:var(--surface3);color:var(--text);border-color:var(--border-hover)}

/* SETUP WIZARD */
.wizard-overlay{position:fixed;inset:0;background:rgba(6,6,10,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:200;display:none;align-items:center;justify-content:center}
.wizard-overlay.show{display:flex}
.wizard-box{width:820px;max-height:90vh;overflow-y:auto;text-align:center;scrollbar-width:thin;padding:48px 48px 56px;position:relative}
.wizard-box::-webkit-scrollbar{width:4px}.wizard-box::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
/* Silo Progress Ring — top right of wizard */
.wizard-integrity{position:absolute;top:24px;right:24px;display:flex;align-items:center;gap:10px}
.wizard-integrity svg{width:48px;height:48px;transform:rotate(-90deg)}
.wizard-integrity .wi-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:var(--accent);font-family:var(--font);width:48px;height:48px}
.wizard-integrity .wi-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}
.wizard-progress{display:flex;gap:8px;justify-content:center;margin-bottom:44px}
.wizard-dot{width:10px;height:10px;border-radius:50%;background:var(--surface3);transition:all .3s}
.wizard-dot.active{background:var(--accent);width:32px;border-radius:5px}
.wizard-dot.done{background:var(--accent);opacity:.4}
@keyframes onboardBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.onboard-arrow{position:fixed;z-index:9999;pointer-events:none;animation:onboardBounce 1.2s ease-in-out infinite;display:flex;flex-direction:column;align-items:center;gap:4px}
.onboard-arrow-label{background:var(--accent);color:#fff;font-size:14px;font-weight:700;padding:6px 12px;border-radius:8px;white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.2);pointer-events:auto}
.onboard-arrow-caret{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--accent);transform:rotate(180deg)}
.onboard-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);animation:wzFadeIn .25s ease}
.onboard-popup{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:32px 28px 24px;max-width:440px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.35);text-align:left}
.onboard-popup h3{font-size:20px;font-weight:700;color:var(--text);margin:0 0 6px}
.onboard-popup .onboard-sub{font-size:16px;color:var(--text3);margin-bottom:18px}
.onboard-step{display:flex;gap:12px;margin-bottom:14px;align-items:flex-start}
.onboard-step-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center}
.onboard-step-text{font-size:16px;color:var(--text2);line-height:1.55}
.onboard-step-text strong{color:var(--text);font-weight:600}
.onboard-tip{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-top:16px;font-size:15px;color:var(--text3);line-height:1.5;display:flex;gap:8px;align-items:flex-start}
.wizard-step{display:none;animation:wzFadeIn .3s ease}
.wizard-step.active{display:block}
@keyframes wzFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes wzSlideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes wizPulse{0%,100%{box-shadow:0 0 40px rgba(52,211,153,.2),0 0 80px rgba(52,211,153,.08)}50%{box-shadow:0 0 60px rgba(52,211,153,.35),0 0 120px rgba(52,211,153,.12)}}
.wizard-title{font-size:33px;font-weight:800;color:var(--text);margin-bottom:12px;letter-spacing:-.03em}
.wizard-desc{font-size:17px;color:#9a9aaa;margin-bottom:36px;line-height:1.7}
.wizard-btn{padding:14px 40px;border-radius:12px;font-size:17px;font-weight:600;cursor:pointer;border:none;font-family:var(--font);transition:all .15s}
.wizard-btn-primary{background:var(--accent);color:#0a0a0c}.wizard-btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 16px rgba(52,211,153,.2)}
.wizard-btn-ghost{background:transparent;border:1px solid var(--border);color:#9a9aaa}.wizard-btn-ghost:hover{border-color:var(--text2);color:var(--text)}
.wizard-btns{display:flex;gap:12px;justify-content:center;margin-top:36px;padding-bottom:4px}
.wizard-shortcut-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;font-size:12px;color:var(--text3);opacity:.6}
.wizard-shortcut-hint kbd{background:var(--surface2);border:1px solid var(--border);padding:2px 8px;border-radius:4px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text2)}
.wiz-sec-tabs{display:flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}
.wiz-sec-tab{flex:1;padding:12px 18px;font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border:none;background:var(--surface);color:#9a9aaa;font-family:var(--font);transition:all .25s ease;display:flex;align-items:center;justify-content:center;gap:6px;position:relative}
.wiz-sec-tab.active{background:var(--surface2);color:var(--text)}
.wiz-sec-tab.active.personal{color:var(--accent)}
.wiz-sec-tab.active.business{color:var(--blue)}
.wiz-sec-tab .wst-dot{width:6px;height:6px;border-radius:50%;opacity:0;transition:opacity .2s}
.wiz-sec-tab.has-items .wst-dot{opacity:1}
.wiz-sec-tab.personal .wst-dot{background:var(--accent)}
.wiz-sec-tab.business .wst-dot{background:var(--blue)}
.wiz-sec-panel{overflow:hidden;transition:max-height .35s ease,opacity .25s ease;max-height:600px;opacity:1}
.wiz-sec-panel.collapsed{max-height:0;opacity:0;margin:0;pointer-events:none}
.wiz-acct-card{transition:all .3s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}
.wiz-acct-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.15)}
.wiz-acct-card.card-enter{animation:wizCardEnter .45s cubic-bezier(.16,1,.3,1) both}
.wiz-acct-card.card-exit{animation:wizCardExit .35s ease forwards}
.wiz-acct-card.card-updated{animation:wizCardPulse .5s ease}
@keyframes wizCardEnter{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes wizCardExit{to{opacity:0;transform:translateX(30px) scale(.95);max-height:0;padding:0;margin:0;border-width:0;overflow:hidden}}
@keyframes wizCardPulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.35)}40%{box-shadow:0 0 0 8px rgba(52,211,153,.12)}100%{box-shadow:none}}
.wizard-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;text-align:left;margin-bottom:14px}
.wizard-cat-grid{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.wizard-cat-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:17px;font-weight:500;background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:default;transition:all .15s}
.wizard-cat-chip .wcc-color{width:14px;height:14px;border-radius:50%;flex-shrink:0}
.wizard-cat-chip .wcc-edit{background:none;border:none;color:var(--text2);cursor:pointer;font-size:16px;padding:0 3px;opacity:.7;transition:opacity .15s}.wizard-cat-chip .wcc-edit:hover{opacity:1;color:var(--accent)}
.wizard-cat-chip .wcc-del{background:none;border:none;color:var(--text2);cursor:pointer;font-size:17px;padding:0 3px;opacity:.7;transition:opacity .15s}.wizard-cat-chip .wcc-del:hover{opacity:1;color:var(--red)}
.wizard-option{display:flex;align-items:center;gap:16px;padding:20px 22px;background:var(--surface);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .15s;margin-bottom:10px;text-align:left}
.wizard-option.wiz-opt-sm{padding:15px 18px;gap:14px;border-radius:12px;margin-bottom:8px}.wizard-option.wiz-opt-sm .wizard-option-icon{width:38px;font-size:21px}.wizard-option.wiz-opt-sm .wizard-option-text div:first-child{font-size:17px}.wizard-option.wiz-opt-sm .wizard-option-text div:last-child{font-size:15px}
.wizard-option:hover{border-color:var(--accent)}.wizard-option.selected{border-color:var(--accent);background:var(--accent-soft)}
.wizard-option-icon{font-size:29px;flex-shrink:0;width:48px;text-align:center}
.wizard-option-text{flex:1}.wizard-option-text div:first-child{font-size:18px;font-weight:600;color:var(--text)}.wizard-option-text div:last-child{font-size:16px;color:#9a9aaa;margin-top:3px}
/* NEW WIZARD v2 CLASSES */
.wiz-feature-card{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:14px;text-align:left;opacity:0;transform:translateY(12px);animation:wzFadeIn .5s ease forwards}
.wiz-feature-card .wfc-icon{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wiz-feature-card .wfc-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:3px}
.wiz-feature-card .wfc-desc{font-size:15px;color:var(--text3);line-height:1.5}
.wiz-privacy-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;text-align:left}
.wiz-privacy-row .wpr-check{width:22px;height:22px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.wiz-privacy-row .wpr-title{font-size:16px;font-weight:700;color:var(--text)}
.wiz-privacy-row .wpr-desc{font-size:14px;color:var(--text3);margin-top:2px;line-height:1.5}
.wiz-privacy-promise{background:rgba(52,211,153,.04);border:1.5px solid rgba(52,211,153,.2);border-radius:12px;padding:16px 20px;text-align:center;font-size:15px;font-weight:600;color:var(--accent);line-height:1.6}
.wiz-storage-cards{display:flex;gap:14px;max-width:560px;margin:0 auto}
.wiz-storage-card{flex:1;padding:22px 20px;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;text-align:left;transition:all .2s;position:relative}
.wiz-storage-card:hover{border-color:var(--text3);transform:translateY(-2px)}
.wiz-storage-card.selected{border-color:var(--accent);background:rgba(52,211,153,.04);box-shadow:0 0 20px rgba(52,211,153,.1)}
.wiz-storage-badge{position:absolute;top:-10px;right:14px;background:var(--accent);color:#0a0a0c;font-size:10px;font-weight:800;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.06em}
.wiz-security-card{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;transition:all .2s;text-align:left}
.wiz-security-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.wiz-method-cards{display:flex;gap:12px;max-width:560px;margin:0 auto}
.wiz-method-card{flex:1;padding:20px 16px;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;cursor:pointer;text-align:center;transition:all .2s;font-family:var(--font)}
.wiz-method-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.wiz-pref-row{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.wiz-pref-row .wpr-label{font-size:16px;font-weight:600;color:var(--text)}
.wiz-pref-row .wpr-sublabel{font-size:14px;color:var(--text3);margin-top:2px}
.wiz-done-check{width:80px;height:80px;margin:0 auto 24px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#6ee7b7);display:flex;align-items:center;justify-content:center;animation:wizBounceIn .6s cubic-bezier(.34,1.56,.64,1) both;box-shadow:0 0 40px rgba(52,211,153,.25),0 0 80px rgba(52,211,153,.1)}
.wiz-summary-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--text)}
@keyframes wizBounceIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.wiz-stagger-1{animation-delay:.1s}
.wiz-stagger-2{animation-delay:.25s}
.wiz-stagger-3{animation-delay:.4s}
.wiz-stagger-4{animation-delay:.55s}
.add-section{padding:4px 0}
.add-section-label{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.add-section-label::after{content:'';flex:1;height:1px;background:var(--border);opacity:.5}
.add-divider{height:1px;background:var(--border);margin:16px 0;opacity:.4}
.upload-slim{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--surface);border:1px dashed var(--border);border-radius:12px;cursor:pointer;font-size:16px;color:var(--text2);transition:all .2s;position:relative;overflow:hidden}
.upload-slim::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(52,211,153,.03),transparent);opacity:0;transition:opacity .2s}
.upload-slim:hover{border-color:var(--accent);border-style:solid;color:var(--text)}.upload-slim:hover::before{opacity:1}
.drop-zone{border:2px dashed var(--border);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;color:var(--text3);font-size:15px}
.drop-zone:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--text2)}
.drop-zone .drop-icon{font-size:29px;margin-bottom:8px}
.form-row{display:flex;gap:10px;margin-bottom:10px}.form-group{flex:1;display:flex;flex-direction:column;gap:4px}
.form-group label{font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em}
.form-group input,.form-group select,.form-group textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:16px;color:var(--text);font-family:var(--font);outline:none;transition:border-color .2s,box-shadow .2s}
.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(52,211,153,.08)}
.form-group select{cursor:pointer}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}

/* SETTINGS */
.acc{border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden;transition:border-color .2s,transform .2s}
.acc:hover{border-color:var(--border-hover)}
.acc-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;background:var(--surface);transition:background .15s}
.acc-head:hover{background:var(--surface2)}
.acc-arrow{font-size:12px;color:var(--text2);transition:transform .2s}
.acc-label{font-size:17px;font-weight:600;color:var(--text);flex:1}
.acc-sub{font-size:14px;color:var(--text2)}
.acc-body{padding:16px 20px;border-top:1px solid var(--border);display:none}
.acc.open .acc-body{display:block}.acc.open .acc-arrow{transform:rotate(90deg)}
.toggle-row{display:flex;align-items:center;gap:12px;padding:7px 0;font-size:16px;color:var(--text2)}
.toggle-sw{width:36px;height:20px;background:var(--surface3);border-radius:10px;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0;border:1px solid var(--border)}
.toggle-sw.on{background:var(--accent);border-color:var(--accent)}.toggle-sw::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.toggle-sw.on::after{left:18px}

/* RESPONSIVE */
@media(min-width:1600px){.main-inner{max-width:1350px} .stat-card{padding:16px} .stat-value{font-size:26px} .card{padding:14px} .card-title{font-size:16px} .bcard{padding:13px}}
@media(min-width:1900px){.main-inner{max-width:1550px} .stat-card{padding:18px} .stat-value{font-size:29px} .page-title{font-size:25px}}
@media(min-width:2200px){.main-inner{max-width:1750px}}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-2e{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:1fr 1fr}}

@keyframes fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes importToastIn{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}
@keyframes softPulse{0%{opacity:1}50%{opacity:.55}100%{opacity:1}}
.stat-card,.card,.bcard{animation:fadeUp .3s ease both}
.stat-value,.stat-detail,.stat-top3,.donut-wrap,.donut-legend,.legend-item{transition:opacity .2s ease}
.overview-transitioning .stat-value,.overview-transitioning .stat-detail,.overview-transitioning .stat-top3{animation:softPulse .35s ease}
.overview-transitioning #quickViewCards .card{animation:softPulse .35s ease}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:2px}

/* ── SETTINGS REDESIGN ───────────────────────────────── */
.sett-tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:4px;overflow-x:auto}
.sett-tab{flex:1;padding:8px 14px;font-size:15px;font-weight:600;color:var(--text3);background:transparent;border:none;border-radius:7px;cursor:pointer;font-family:var(--font);transition:all .2s;white-space:nowrap;text-align:center}
.sett-tab:hover{color:var(--text2);background:var(--surface)}
.sett-tab.active{color:var(--text);background:var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.sett-search-wrap{position:relative;margin-bottom:20px}
.sett-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.4}
.sett-search{width:100%;box-sizing:border-box;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 14px 10px 36px;font-size:15px;color:var(--text);font-family:var(--font);outline:none;transition:border-color .15s}
.sett-search:focus{border-color:var(--accent)}
.sett-search::placeholder{color:var(--text3)}
/* sett-stats removed */
.sett-stat-sub{font-size:12px;color:var(--text2);margin-top:2px}
.acc{border:1px solid var(--border);border-radius:12px;margin-bottom:8px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.acc:hover{border-color:var(--border-hover)}
.acc.open{border-color:var(--accent);box-shadow:0 2px 20px rgba(0,0,0,.15)}
.acc-head{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;background:var(--surface);transition:background .15s}
.acc-head:hover{background:var(--surface2)}
.acc-icon{width:34px;height:34px;border-radius:9px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;transition:all .2s}
.acc.open .acc-icon{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.acc-icon svg{color:var(--text3);transition:color .2s}
.acc.open .acc-icon svg{color:var(--accent)}
.acc-label{font-size:16px;font-weight:600;color:var(--text)}
.acc-sublabel{font-size:14px;color:var(--text3);margin-top:2px}
.acc-arrow{font-size:12px;color:var(--text3);transition:transform .2s;margin-left:auto;flex-shrink:0}
.acc.open .acc-arrow{transform:rotate(90deg);color:var(--accent)}
.acc-body{display:none;padding:20px 22px;border-top:1px solid var(--border);background:var(--surface)}
.acc.open .acc-body{display:block;animation:fadeUp .2s ease}
.sett-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}
.sett-row:last-child{border-bottom:none;padding-bottom:0}
.sett-row-info{flex:1;min-width:0;padding-right:16px}
.sett-row-label{font-size:15px;font-weight:600;color:var(--text)}
.sett-row-desc{font-size:14px;color:var(--text3);margin-top:2px;line-height:1.5}
.sett-divider{border:none;border-top:1px solid var(--border);margin:16px 0}
.sett-group-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:10px}
.sett-path{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 14px;font-size:14px;color:var(--accent);font-family:var(--mono);word-break:break-all;line-height:1.5;margin-bottom:10px}
.sett-path-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.acc.sett-hidden{display:none}
.acc[data-sett-tab].sett-tab-hidden{display:none}

/* ── BANK ACCOUNTS / CARDS ─────────────────────────── */
.acct-cards-scroll{display:flex;gap:12px;overflow-x:auto;padding:4px 0 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.acct-section-label{writing-mode:vertical-lr;transform:rotate(180deg);font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.5;padding:0 2px}
.acct-cards-scroll::-webkit-scrollbar{height:3px}
.acct-cards-scroll::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:2px}
/* Side panel accounts */
.acct-side-panel{position:fixed;top:142px;left:calc(var(--sidebar-w) + 28px);width:200px;bottom:0;overflow-y:auto;overflow-x:visible;padding:0 8px 24px 0;z-index:10;scrollbar-width:none;transition:left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1)}
.acct-side-panel::-webkit-scrollbar{display:none}
.acct-side-panel .asp-section{margin-bottom:14px}
.acct-side-panel .asp-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);padding:0 4px 8px;display:flex;align-items:baseline;gap:6px;flex-wrap:nowrap}
.acct-side-panel .asp-label>span:first-child{white-space:nowrap}
.acct-side-panel .asp-list{display:flex;flex-direction:column;gap:6px}
.acct-side-panel .asp-bank{border-radius:10px;padding:6px 10px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .25s ease;position:relative;overflow:hidden;border:none}
.acct-side-panel .asp-bank::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 50%);pointer-events:none;z-index:1}
.acct-side-panel .asp-bank:hover{transform:translateX(2px);box-shadow:0 2px 8px rgba(0,0,0,.15);border-color:rgba(255,255,255,.1)}
.acct-side-panel .asp-bank .asp-bank-top{display:flex;align-items:center;gap:6px;margin-bottom:3px;position:relative;z-index:1}
.acct-side-panel .asp-bank .asp-bank-logo{width:22px;height:22px;border-radius:5px;object-fit:contain;background:rgba(255,255,255,.15);padding:2px}
.acct-side-panel .asp-bank .asp-bank-name{font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-shadow:0 1px 3px rgba(0,0,0,.3);background:rgba(0,0,0,.2);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 5px;border-radius:4px}
.acct-side-panel .asp-bank .asp-bank-type{font-size:12px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.05em}
.acct-side-panel .asp-bank .asp-bank-bal{font-size:17px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3);position:relative;z-index:1;display:inline-block;background:rgba(0,0,0,.2);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 5px;border-radius:4px}
.acct-side-panel .asp-bank .asp-bank-last4{font-size:12px;color:rgba(255,255,255,.5);font-family:var(--mono);position:relative;z-index:1}
.asp-gear{position:absolute;top:5px;right:5px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.25);border:none;color:rgba(255,255,255,.6);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;opacity:0;transition:opacity .2s,background .2s;padding:0}
.asp-bank:hover .asp-gear,.asp-cc:hover .asp-gear{opacity:1}
.asp-gear:hover{background:rgba(0,0,0,.5);color:#fff}
.as-gear{position:absolute;top:3px;right:3px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.3);border:none;color:rgba(255,255,255,.6);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;opacity:0;transition:opacity .2s,background .2s;padding:0}
.as-bank:hover .as-gear,.as-cc:hover .as-gear{opacity:1}
.as-gear:hover{background:rgba(0,0,0,.5);color:#fff}
.acct-side-panel .asp-cc{border-radius:10px;padding:10px 12px;color:#fff;position:relative;overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .25s ease;aspect-ratio:1.586/1;display:flex;flex-direction:column;justify-content:space-between}
.acct-side-panel .asp-cc:hover{transform:translateX(2px);box-shadow:0 4px 16px rgba(0,0,0,.25)}
.acct-side-panel .asp-cc::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.35) 100%);pointer-events:none;z-index:0}
.acct-side-panel .asp-cc>*{position:relative;z-index:1}
.acct-side-panel .asp-cc .asp-cc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.acct-side-panel .asp-cc .asp-cc-brand{height:24px;opacity:.85}
.acct-side-panel .asp-cc .asp-cc-inst{font-size:11px;opacity:.65;max-width:56%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.acct-side-panel .asp-cc .asp-cc-digits{font-family:var(--mono);font-size:12px;letter-spacing:.12em;opacity:.7;display:inline-block;background:rgba(0,0,0,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 5px;border-radius:4px}
.acct-side-panel .asp-cc .asp-cc-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:3px}
.acct-side-panel .asp-cc .asp-cc-name{font-size:11px;font-weight:600;opacity:.9;text-transform:uppercase;letter-spacing:.06em;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.acct-side-panel .asp-cc .asp-cc-bal{font-size:14px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.acct-side-panel .asp-cc .asp-cc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;pointer-events:none;z-index:0}
/* CC stack (collapsed / expanded) */
.asp-cc-stack{position:relative;cursor:pointer;overflow:hidden;transition:height .4s cubic-bezier(.4,0,.2,1)}
.asp-cc-stack .asp-cc{position:absolute;left:0;right:0;transition:all .4s cubic-bezier(.4,0,.2,1)}
.asp-cc-stack.collapsed .asp-cc{pointer-events:none}
.asp-cc-stack.collapsed .asp-cc:last-of-type{pointer-events:auto}
.asp-cc-stack.expanded{overflow:visible}
.asp-cc-stack.expanded .asp-cc{position:relative;pointer-events:auto;margin-bottom:6px}
.asp-cc-stack.expanded .asp-cc:last-of-type{margin-bottom:0}
/* Peek label in collapsed strip — card name + balance */
.asp-cc-peek{position:absolute;top:8px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;z-index:2;pointer-events:none}
.asp-cc-peek-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%;text-shadow:0 1px 3px rgba(0,0,0,.4);background:rgba(0,0,0,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 5px;border-radius:4px}
.asp-cc-peek-bal{font-size:15px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;text-shadow:0 1px 3px rgba(0,0,0,.4);background:rgba(0,0,0,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 5px;border-radius:4px}
.asp-cc-stack.expanded .asp-cc-peek{display:none}
.asp-cc-stack-fade{position:absolute;bottom:0;left:0;right:0;height:70px;background:linear-gradient(to bottom,transparent 0%,var(--surface) 85%);pointer-events:none;z-index:8;transition:opacity .3s ease}
.asp-cc-stack.expanded .asp-cc-stack-fade{opacity:0;pointer-events:none}
.asp-cc-stack-toggle{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 0;font-size:12px;font-weight:600;color:var(--text3);cursor:pointer;transition:color .15s;text-transform:uppercase;letter-spacing:.06em}
.asp-cc-stack-toggle:hover{color:var(--accent)}
.asp-cc-stack-toggle svg{transition:transform .3s ease}
.asp-cc-stack.expanded+.asp-cc-stack-toggle svg{transform:rotate(180deg)}
.acct-side-panel.asp-filtering .asp-bank:not(.asp-active),.acct-side-panel.asp-filtering .asp-cc:not(.asp-active){opacity:.45;transform:scale(.97)}
.acct-side-panel .asp-bank.asp-active{box-shadow:0 0 0 2.5px var(--accent);transform:translateX(2px)}
.acct-side-panel .asp-cc.asp-active{box-shadow:0 0 0 2px var(--accent),0 4px 16px rgba(0,0,0,.25);transform:translateX(2px)}
.acct-side-panel .asp-reset-slot{height:30px;margin-bottom:4px}
.acct-side-panel .asp-reset{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;cursor:pointer;transition:all .15s;font-size:12px;font-weight:600;color:var(--accent);z-index:2;animation:fadeSlideIn .2s ease}
.acct-side-panel .asp-reset:hover{background:var(--accent);color:var(--bg)}
.acct-side-panel .asp-reset span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-side-panel .asp-add{background:var(--surface2);border:2px dashed var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,background .15s;gap:5px;padding:10px;font-size:12px;color:var(--text3);font-weight:600}
.acct-side-panel .asp-add:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.has-acct-panel .main{padding-left:250px}
.has-acct-panel .topbar{left:var(--sidebar-w)}
@media(max-width:1300px){.acct-side-panel{display:none!important}.has-acct-panel .main{padding-left:28px}.has-acct-panel #overviewAccountsSection{display:block!important}}
@media(min-width:1301px){#overviewAccountsSection{display:none!important}}
/* Investment side panel */
.invest-side-panel{position:fixed;top:142px;left:calc(var(--sidebar-w) + 28px);width:200px;bottom:0;overflow-y:auto;overflow-x:visible;padding:0 8px 24px 0;z-index:10;scrollbar-width:none;transition:left .3s cubic-bezier(.4,0,.2,1);display:none}
.invest-side-panel::-webkit-scrollbar{display:none}
.invest-side-panel .isp-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);padding:0 4px 8px;display:flex;align-items:baseline;gap:6px}
.invest-side-panel .isp-label span{font-size:12px;font-weight:600;color:var(--accent);font-family:var(--mono);margin-left:auto}
.invest-side-panel .isp-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.invest-side-panel .isp-acct{border-radius:10px;padding:10px 12px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;position:relative;overflow:hidden;background:var(--surface2);border:1px solid var(--border)}
.invest-side-panel .isp-acct:hover{transform:translateX(2px);box-shadow:0 2px 8px rgba(0,0,0,.15);border-color:var(--accent)}
.invest-side-panel .isp-acct-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}
.invest-side-panel .isp-acct-val{font-size:17px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--accent)}
.invest-side-panel .isp-acct-meta{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:12px;color:var(--text3)}
.invest-side-panel .isp-acct-badge{font-size:12px;font-weight:600;padding:1px 5px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}
.invest-side-panel .isp-add{background:var(--surface2);border:2px dashed var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,background .15s;gap:5px;padding:10px;font-size:12px;color:var(--text3);font-weight:600}
.invest-side-panel .isp-add:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.invest-side-panel .isp-summary{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:14px}
.invest-side-panel .isp-summary-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:3px 0}
.invest-side-panel .isp-summary-row .isp-k{color:var(--text3)}
.invest-side-panel .isp-summary-row .isp-v{font-weight:600;font-family:var(--mono);color:var(--text)}
.has-invest-panel .main{padding-left:250px}
@media(max-width:1300px){.invest-side-panel{display:none!important}.has-invest-panel .main{padding-left:28px}}
/* Horizontal account strip for narrow screens */
.acct-strip{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;position:relative;align-items:center;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.acct-strip::-webkit-scrollbar{display:none}
.acct-strip .as-bank{border-radius:8px;padding:8px 12px;cursor:pointer;position:relative;overflow:hidden;border:none;flex-shrink:0;min-width:110px;height:48px;display:flex;flex-direction:column;justify-content:center;transition:transform .2s ease,box-shadow .2s ease,opacity .25s ease}
.acct-strip .as-bank::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 50%);pointer-events:none;z-index:1}
.acct-strip .as-bank-name{font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.3);position:relative;z-index:1}
.acct-strip .as-bank-bal{font-size:15px;font-weight:700;font-family:var(--mono);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3);position:relative;z-index:1;margin-top:2px}
.acct-strip .as-cc{border-radius:8px;padding:6px 8px;color:#fff;position:relative;overflow:hidden;cursor:pointer;flex-shrink:0;width:80px;height:48px;display:flex;flex-direction:column;justify-content:space-between;transition:all .4s cubic-bezier(.4,0,.2,1)}
.acct-strip .as-cc::before{display:none}
.acct-strip .as-cc>*{position:relative;z-index:1}
.acct-strip .as-cc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;pointer-events:none;z-index:0}
.acct-strip .as-cc-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.85);text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;background:rgba(0,0,0,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 4px;border-radius:3px}
.acct-strip .as-cc-bal{font-size:12px;font-weight:700;font-family:var(--mono);text-shadow:0 1px 3px rgba(0,0,0,.4);display:inline-block;background:rgba(0,0,0,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:1px 4px;border-radius:3px}
.acct-strip .as-cc-digits{display:none}
/* Horizontal CC stack */
.acct-strip .as-cc-hstack{position:relative;flex-shrink:0;cursor:pointer;height:48px;transition:width .4s cubic-bezier(.4,0,.2,1);overflow:hidden}
.acct-strip .as-cc-hstack.collapsed{-webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 28px),transparent 100%)}
.acct-strip .as-cc-hstack.expanded{overflow:visible}
.acct-strip .as-cc-hstack .as-cc{position:absolute;top:0;transition:all .4s cubic-bezier(.4,0,.2,1)}
.acct-strip .as-cc-hstack.collapsed .as-cc{pointer-events:none}
.acct-strip .as-cc-hstack.collapsed .as-cc:last-of-type{pointer-events:auto}
.acct-strip .as-cc-hstack-chev{flex-shrink:0;width:24px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text3);border-radius:6px;transition:all .2s;background:var(--surface2);border:1px solid var(--border)}
.acct-strip .as-cc-hstack-chev:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.acct-strip .as-cc-hstack-chev svg{transition:transform .3s ease}
.acct-strip-filtering .as-bank:not(.as-active),.acct-strip-filtering .as-cc:not(.as-active){opacity:.45;transform:scale(.97)}
.acct-strip .as-active{outline:2px solid var(--accent);outline-offset:-2px;cursor:pointer}
.acct-card-cc{width:200px;min-width:200px;aspect-ratio:1.586/1;border-radius:12px;padding:12px 14px;color:#fff;position:relative;overflow:hidden;cursor:pointer;scroll-snap-align:start;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;justify-content:space-between}
.acct-card-cc:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.acct-card-cc::before{display:none}
.acct-card-cc .cc-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;pointer-events:none;z-index:0}
.acct-card-cc>*{position:relative;z-index:1}
.acct-card-cc .cc-brand{height:22px;opacity:.9}
.acct-card-cc .cc-digits{font-family:var(--mono);font-size:14px;letter-spacing:.15em;opacity:.85}
.acct-card-cc .cc-name{font-size:14px;font-weight:600;opacity:.9;text-transform:uppercase;letter-spacing:.05em;display:inline-block;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:2px 7px;border-radius:5px;text-shadow:0 1px 3px rgba(0,0,0,.4);line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}
.acct-card-cc .cc-balance{font-size:17px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;display:inline-block;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:2px 7px;border-radius:5px;text-shadow:0 1px 3px rgba(0,0,0,.4);line-height:1.3}
.acct-card-cc .cc-institution{font-size:12px;opacity:.7;position:absolute;top:12px;right:14px;z-index:1}
.acct-card-bank{width:175px;min-width:175px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer;scroll-snap-align:start;transition:transform .2s,border-color .2s}
.acct-card-bank:hover{transform:translateY(-2px);border-color:var(--accent)}
.acct-card-bank .bank-logo{width:24px;height:24px;border-radius:5px;object-fit:contain;background:var(--surface)}
.acct-card-bank .bank-name{font-size:14px;font-weight:600;color:var(--text)}
.acct-card-bank .bank-last4{font-size:12px;color:var(--text3);font-family:var(--mono)}
.acct-card-bank .bank-balance{font-size:17px;font-weight:700;font-family:var(--mono);color:var(--accent);margin-top:6px}
.acct-card-bank .bank-txcount{font-size:12px;color:var(--text3);margin-top:2px}
.acct-card-add{width:80px;min-width:80px;background:var(--surface2);border:2px dashed var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;scroll-snap-align:start;transition:border-color .2s,background .2s;gap:3px;padding:12px;font-size:12px}
.acct-card-add:hover{border-color:var(--accent);background:var(--accent-soft)}
.acct-card-add svg{color:var(--text3);transition:color .2s}
.acct-card-add:hover svg{color:var(--accent)}
.acct-card-add span{font-size:12px;color:var(--text3);font-weight:600}

/* Account modal */
.acct-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;pointer-events:none}
.acct-modal-overlay.show{opacity:1;pointer-events:all}
.acct-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:min(480px,94vw);max-height:90vh;overflow-y:auto;padding:24px;box-shadow:0 12px 40px rgba(0,0,0,.25);position:relative}
.acct-modal-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:8px;border:none;background:transparent;color:var(--text3);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;z-index:1}
.acct-modal-close:hover{background:var(--surface2);color:var(--text)}
.acct-modal h3{font-size:18px;font-weight:700;margin-bottom:12px;color:var(--text)}
.amr-section{margin-bottom:6px;padding:14px 16px 6px;background:var(--surface2);border:1px solid var(--border);border-radius:12px}
.amr-section-label{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.amr-row-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.amr-hint{font-weight:400;color:var(--text3);font-size:11px;text-transform:none;letter-spacing:0}
.acct-form-row{margin-bottom:12px}
.acct-form-row label{display:block;font-size:12px;font-weight:600;color:var(--text3);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}
.acct-form-row input,.acct-form-row select{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 11px;font-size:14px;color:var(--text);font-family:var(--font);outline:none;transition:border-color .15s}
.acct-form-row input:focus,.acct-form-row select:focus{border-color:var(--accent)}
.card-suggest-list{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;max-height:220px;overflow-y:auto;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.3);margin-top:4px}
.card-suggest-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .1s;font-size:14px;color:var(--text)}
.card-suggest-item:hover,.card-suggest-item.active{background:var(--surface2)}
.card-suggest-item .csi-name{font-weight:600}
.card-suggest-item .csi-meta{font-size:13px;color:var(--text3);margin-left:auto}
.card-suggest-item .csi-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.acct-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.acct-form-actions{display:flex;gap:8px;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.amr-delete-btn{color:var(--red)!important;border-color:var(--red)!important;font-size:13px!important}
.amr-delete-btn:hover{background:rgba(239,68,68,.1)!important}
.amr-disable-btn{font-size:13px!important;color:var(--text3)!important}
.acct-color-picker{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.acct-color-dot{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color .15s,transform .15s}
.acct-color-dot:hover,.acct-color-dot.active{border-color:var(--text);transform:scale(1.15)}
.acct-color-custom{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px dashed rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--text3);transition:all .15s;position:relative;overflow:visible}
.acct-color-custom:hover{border-color:var(--text2);color:var(--text)}
.acct-color-custom.active{border-style:solid;border-color:var(--text)}
.acct-color-custom input[type="color"]{position:absolute;width:0;height:0;padding:0;border:none;opacity:0;pointer-events:none}
.amr-plaid-link{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;margin-bottom:12px}
.amr-plaid-link .amr-pl-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.amr-plaid-link .amr-pl-text{flex:1;min-width:0}
.amr-plaid-link .amr-pl-label{font-size:12px;font-weight:600;letter-spacing:.03em}
.amr-plaid-link .amr-pl-sub{font-size:11px;color:var(--text3)}
.amr-plaid-link .amr-pl-action{font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;border:none;cursor:pointer;font-family:var(--font);transition:background .15s}
.acct-custom-color-row{display:none;align-items:center;gap:8px;margin-top:6px;width:100%}
.acct-custom-color-row.visible{display:flex}
.acct-custom-color-row input[type="text"]{flex:1;max-width:100px;padding:5px 8px;font-size:14px;font-family:var(--mono);background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);outline:none}
.acct-custom-color-row input[type="text"]:focus{border-color:var(--accent)}
.acct-custom-color-row .accp-swatch{width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.1);flex-shrink:0;cursor:pointer;position:relative;overflow:hidden}
.acct-custom-color-row .accp-swatch input[type="color"]{position:absolute;top:-4px;left:-4px;width:36px;height:36px;border:none;padding:0;cursor:pointer}
.acct-card-preview{border-radius:12px;padding:14px 16px;color:#fff;font-size:15px;margin-bottom:16px;position:relative;overflow:hidden;aspect-ratio:1.586/1;display:flex;flex-direction:column;justify-content:space-between;max-width:260px}
.acct-card-preview::before{display:none}

/* Account select prompt (import flow) */
.acct-prompt-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9998;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;pointer-events:none}
.acct-prompt-overlay.show{opacity:1;pointer-events:all}
.acct-prompt{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:min(420px,90vw);padding:28px;box-shadow:0 12px 40px rgba(0,0,0,.25);text-align:center}
.acct-prompt h3{font-size:17px;font-weight:700;margin-bottom:6px}
.acct-prompt p{font-size:15px;color:var(--text3);margin-bottom:20px;line-height:1.5}
.acct-prompt-options{display:flex;flex-direction:column;gap:8px}
.acct-prompt-opt{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s;text-align:left}
.acct-prompt-opt:hover{border-color:var(--accent);background:var(--accent-soft);filter:brightness(1.15)}
.acct-prompt-opt .opt-icon{width:36px;height:36px;border-radius:8px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.acct-prompt-opt .opt-label{font-size:16px;font-weight:600;color:var(--text)}
.acct-prompt-opt .opt-desc{font-size:14px;color:var(--text3);margin-top:2px}
.acct-pick-card{border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s}
.acct-pick-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.25)}
.acct-pick-bank{width:140px;background:var(--surface2);border:1px solid var(--border);padding:10px;border-radius:10px}
.acct-pick-bank:hover{border-color:var(--accent)}
.acct-pick-cc{width:150px;aspect-ratio:1.586/1;padding:8px 10px;position:relative;overflow:hidden;color:#fff;display:flex;flex-direction:column;justify-content:space-between}

/* NET WORTH */
.nw-row{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border);font-size:16px;transition:background .15s}
.nw-row:last-child{border-bottom:none}
.nw-row:hover{background:var(--surface2)}
.nw-row-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.nw-row-name{flex:1;font-weight:500;color:var(--text)}
.nw-row-cat{font-size:14px;color:var(--text2);margin-top:2px}
.nw-row-value{font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.nw-row-actions{display:flex;gap:6px;opacity:0;transition:opacity .15s}
.nw-row:hover .nw-row-actions{opacity:1}
.nw-bar-fill{height:6px;border-radius:3px;transition:width .4s ease}

/* ACCESSIBILITY: boost text3 to meet WCAG AA */
:root { --text3: #8a8a9a; }
[data-theme="light"] { --text3: #907e68; }

/* RESPONSIVE: mobile + tablet */
@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr!important}
  .grid-2,.grid-2e,.grid-3,.grid-4{grid-template-columns:1fr!important}
  .topbar-center{display:none}
  .page-title{font-size:20px}
  .main{padding:84px 12px 16px}
  .budget-grid .bcard{flex:0 1 100%;min-width:unset}
}
@media(max-width:700px){
  .stats-grid{grid-template-columns:1fr 1fr!important}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr!important}
  .budget-grid .bcard{flex:0 1 calc(50% - 6px)}
}

/* EMPTY STATE */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:12px;color:var(--text3);text-align:center}
.empty-state-icon{font-size:36px;opacity:.5}
.empty-state-title{font-size:17px;font-weight:600;color:var(--text2)}
.empty-state-sub{font-size:15px;line-height:1.6}
.empty-state .btn{margin-top:4px}

/* SAVED TIMESTAMP */
.save-ind{display:flex;align-items:center;gap:6px;font-size:15px;color:var(--text3)}
.save-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}



/* Sub-accordion for manual update */
.sett-sub-acc{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:12px}
.sett-sub-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;font-size:14px;color:var(--text3);background:var(--surface2);transition:background .15s;user-select:none}
.sett-sub-head:hover{background:var(--surface);color:var(--text2)}
.sett-sub-body{display:none;padding:12px;border-top:1px solid var(--border)}
.sett-sub-acc.open .sett-sub-body{display:block}
.sett-sub-arrow{font-size:12px;transition:transform .2s}
.sett-sub-acc.open .sett-sub-arrow{transform:rotate(90deg)}

/* ── SETTINGS UPDATE BAR ─────────────────────────────── */
.sett-update-bar{display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:14px;flex-wrap:nowrap}
.sett-update-badge{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 8px;border-radius:16px;white-space:nowrap;flex-shrink:0;transition:all .3s}
.sett-update-badge.up-to-date{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.3);color:var(--green)}
.sett-update-badge.checking{background:var(--surface);border:1px solid var(--border);color:var(--text3)}
.sett-update-badge.update-avail{background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.3);color:var(--yellow)}
.sett-update-badge.error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);color:var(--red)}
.sett-update-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.sett-update-msg{font-size:12px;color:var(--text3);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sett-update-actions{display:flex;gap:4px;align-items:center;flex-shrink:0;margin-left:auto}
/* ─────────────────────────────────────────────────────── */

/* INLINE STYLE CLEANUP — #15 most common patterns */
input[type=range].ui-scale-range{flex:1;accent-color:var(--accent);cursor:pointer;height:4px}
.filter-input{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font);outline:none}
.filter-select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font);outline:none;padding:6px 8px;font-size:14px}
.filter-label{font-size:12px;color:var(--text3);display:block;margin-bottom:3px}
.inline-mono-input{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px 6px;font-size:15px;color:var(--text);font-family:var(--mono);outline:none;text-align:right;width:70px}
.warning-box{background:rgba(251,191,36,.07);border:1px solid rgba(251,191,36,.25);border-radius:8px;padding:10px 12px;margin-bottom:16px;font-size:14px;color:var(--text2);line-height:1.6}
.card-text-center{text-align:center;padding:14px}
.stat-label-sm{font-size:14px;color:var(--text3);margin-bottom:4px}
.stat-val-lg{font-size:23px;font-weight:700}

/* Help widget */
.help-fab{display:none}
.help-panel{position:fixed;bottom:68px;left:calc(var(--sidebar-w) - 46px);width:360px;max-height:480px;background:var(--bg);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.45);z-index:91;display:none;flex-direction:column;overflow:hidden;animation:helpSlideUp .25s ease;transition:left .3s cubic-bezier(.4,0,.2,1)}
.help-panel.open{display:flex}
@keyframes helpSlideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.help-panel-head{padding:16px 18px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.help-panel-body{padding:16px 18px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.help-panel-body label{font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:5px}
.help-panel-body input,.help-panel-body select,.help-panel-body textarea{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:16px;color:var(--text);font-family:var(--font);outline:none;transition:border-color .2s}
.help-panel-body input:focus,.help-panel-body textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(52,211,153,.08)}
.help-panel-body textarea{resize:vertical;min-height:90px;line-height:1.5}
.help-panel-body select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b6b80' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.help-sent{text-align:center;padding:30px 10px}
.help-sent-check{width:48px;height:48px;border-radius:50%;background:rgba(52,211,153,.12);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}

/* ══════════════════════════════════════════════════════════════
   REVIEW QUEUE PAGE
   ══════════════════════════════════════════════════════════════ */
.nav-review-badge{position:absolute;top:6px;right:8px;min-width:16px;height:16px;border-radius:8px;background:var(--red);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:var(--mono);line-height:1;animation:reviewBadgePop .3s cubic-bezier(.16,1,.3,1)}
.sidebar.collapsed .nav-review-badge{top:2px;right:2px;min-width:14px;height:14px;font-size:12px;padding:0 3px}
@keyframes reviewBadgePop{from{transform:scale(0)}to{transform:scale(1)}}
.rq-empty{text-align:center;padding:60px 20px}
.rq-empty-icon{font-size:40px;margin-bottom:12px;opacity:.6}
.rq-empty-title{font-size:18px;font-weight:700;color:var(--text);margin-bottom:6px}
.rq-empty-sub{font-size:15px;color:var(--text3);line-height:1.5}
.rq-group{margin-bottom:24px}
.rq-group-header{display:flex;align-items:center;gap:8px;padding:8px 0;margin-bottom:4px}
.rq-group-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.rq-group-label{font-size:16px;font-weight:700;color:var(--text)}
.rq-group-count{font-size:12px;font-weight:700;color:var(--text3);font-family:var(--mono);background:rgba(255,255,255,.04);padding:2px 7px;border-radius:5px}
.rq-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.04);background:rgba(255,255,255,.015);margin-bottom:3px;transition:all .2s;cursor:default;position:relative}
.rq-item:hover{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08)}
.rq-item.rq-focused{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.2);box-shadow:0 0 0 1px rgba(52,211,153,.08)}
.rq-item .rq-acct{font-size:12px;font-weight:700;color:var(--text3);background:rgba(255,255,255,.04);padding:2px 7px;border-radius:4px;flex-shrink:0;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rq-item .rq-date{font-size:12px;color:var(--text3);font-family:var(--mono);width:70px;flex-shrink:0}
.rq-item .rq-desc{flex:1;font-size:15px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rq-item .rq-amt{font-size:15px;font-weight:700;font-family:var(--mono);flex-shrink:0;min-width:80px;text-align:right}
.rq-item .rq-reason{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:4px;flex-shrink:0}
.rq-item .rq-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .15s}
.rq-item:hover .rq-actions,.rq-item.rq-focused .rq-actions{opacity:1}
.rq-action-btn{padding:3px 8px;border-radius:5px;font-size:12px;font-weight:700;font-family:var(--font);cursor:pointer;border:1px solid;transition:all .15s;display:flex;align-items:center;gap:3px;background:none}
.rq-action-btn kbd{font-family:var(--mono);font-size:12px;font-weight:800;opacity:.6}
.rq-action-btn.confirm{border-color:rgba(52,211,153,.2);color:var(--accent)}
.rq-action-btn.confirm:hover{background:rgba(52,211,153,.1)}
.rq-action-btn.edit{border-color:rgba(124,184,255,.2);color:var(--blue)}
.rq-action-btn.edit:hover{background:rgba(124,184,255,.1)}
.rq-action-btn.dismiss{border-color:rgba(255,255,255,.08);color:var(--text3)}
.rq-action-btn.dismiss:hover{background:rgba(255,255,255,.05)}
.rq-pair-link{font-size:12px;color:var(--text3);margin-top:2px;display:flex;align-items:center;gap:4px}
.rq-pair-link .rq-arrow{color:var(--accent);font-size:12px}
.rq-cleared{text-align:center;padding:60px 20px;animation:rqClearedIn .5s cubic-bezier(.16,1,.3,1)}
.rq-cleared-icon{width:64px;height:64px;border-radius:50%;background:rgba(52,211,153,.1);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.rq-cleared-title{font-size:20px;font-weight:800;color:var(--text);margin-bottom:6px}
.rq-cleared-sub{font-size:15px;color:var(--text3)}
@keyframes rqClearedIn{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
/* ── Silo Terminal panel flow arrows ── */
/* Arrow separators removed in card-flow layout */
/* ── Silo Terminal panel visual treatments ── */
.assembly-pending{opacity:.85}
.assembly-pending:hover{opacity:1}
.assembly-cockpit{background:rgba(255,255,255,.01);box-shadow:0 0 40px rgba(52,211,153,.02) inset}
.assembly-line.business-mode .assembly-cockpit{box-shadow:0 0 40px rgba(212,168,83,.02) inset}
.assembly-vault .vault-batch{border-color:rgba(52,211,153,.1)}


/* ══════════════════════════════════════════════════════
   SILO UI OVERHAUL — Visual Layer
══════════════════════════════════════════════════════ */

/* ── Atmosphere ── */
.silo-atmo{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.silo-atmo-a{position:absolute;top:-20%;left:-10%;width:65vw;height:65vw;border-radius:50%;background:radial-gradient(circle,rgba(52,211,153,.10) 0%,rgba(52,211,153,.04) 35%,transparent 65%);filter:blur(60px);animation:silo-driftA 18s ease-in-out infinite alternate}
.silo-atmo-b{position:absolute;bottom:-25%;right:-15%;width:55vw;height:55vw;border-radius:50%;background:radial-gradient(circle,rgba(124,184,255,.07) 0%,rgba(124,184,255,.02) 40%,transparent 65%);filter:blur(70px);animation:silo-driftB 22s ease-in-out infinite alternate}
.silo-atmo-c{position:absolute;top:10%;right:5%;width:30vw;height:30vw;border-radius:50%;background:radial-gradient(circle,rgba(196,181,253,.05) 0%,transparent 60%);filter:blur(50px);animation:silo-driftC 15s ease-in-out infinite alternate}
@keyframes silo-driftA{0%{transform:translate(0,0) scale(1)}100%{transform:translate(3%,4%) scale(1.08)}}
@keyframes silo-driftB{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-4%,-3%) scale(1.06)}}
@keyframes silo-driftC{0%{transform:translate(0,0)}100%{transform:translate(-3%,5%)}}
.silo-grain{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px}
/* ── Walnut theme ── */
[data-theme="walnut"]{
  --bg:#141218;--surface:#1c1a22;--surface2:#24222c;--surface3:#2e2c38;
  --border:rgba(210,180,140,.08);--border-hover:rgba(210,180,140,.15);
  --text:#f0ebe4;--text2:#a09888;--text3:#6a6058;
  --accent:#e2a855;--accent-soft:rgba(226,168,85,.10);--accent-glow:rgba(226,168,85,.04);
}
[data-theme="walnut"] .silo-atmo-a{background:radial-gradient(circle,rgba(226,168,85,.07) 0%,transparent 65%)}
[data-theme="walnut"] .silo-atmo-b{background:radial-gradient(circle,rgba(160,140,200,.05) 0%,transparent 60%)}
[data-theme="walnut"] .silo-atmo-c{background:radial-gradient(circle,rgba(226,168,85,.04) 0%,transparent 60%)}
[data-theme="walnut"] .topbar{background:rgba(18,16,22,.88)!important;border-bottom:1px solid rgba(210,180,140,.08)!important}
[data-theme="walnut"] .silo-dock{background:rgba(22,18,14,.94);border-color:rgba(210,180,140,.18);box-shadow:0 0 0 1px rgba(0,0,0,.55),0 4px 8px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.5),0 28px 60px rgba(0,0,0,.3),inset 0 1px 0 rgba(210,180,140,.1),inset 0 -1px 0 rgba(0,0,0,.3)}
[data-theme="walnut"] .silo-di.on{background:rgba(226,168,85,.15)}
[data-theme="walnut"] .silo-di.on svg{stroke:#e2a855;filter:drop-shadow(0 0 5px rgba(226,168,85,.4)) drop-shadow(0 1px 2px rgba(0,0,0,.4))}
[data-theme="walnut"] .silo-di.on::after{background:#e2a855;box-shadow:0 0 8px #e2a855}
[data-theme="walnut"] .silo-dock::after{background:radial-gradient(ellipse,rgba(226,168,85,.07) 0%,transparent 70%)}

[data-theme="light"] .silo-atmo-a{background:radial-gradient(circle,rgba(22,101,52,.06) 0%,transparent 65%)}
[data-theme="light"] .silo-atmo-b{background:radial-gradient(circle,rgba(29,78,216,.04) 0%,transparent 60%)}
[data-theme="light"] .silo-atmo-c{opacity:.4}
[data-theme="light"] .silo-di.on{background:rgba(22,101,52,.18)}
[data-theme="light"] .silo-di.on svg{stroke:#166534;filter:drop-shadow(0 0 5px rgba(22,101,52,.3))}
[data-theme="light"] .silo-di.on::after{background:#166534;box-shadow:0 0 8px rgba(22,101,52,.5)}

/* ── Theme picker popup ── */
.silo-theme-popup{position:absolute;bottom:56px;left:50%;transform:translateX(-50%) scale(.9);opacity:0;pointer-events:none;display:flex;gap:4px;padding:5px 6px;background:rgba(12,12,18,.94);border:1px solid rgba(255,255,255,.14);border-radius:14px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 8px 32px rgba(0,0,0,.5);transition:opacity .18s,transform .18s;white-space:nowrap;z-index:210}
.silo-theme-popup.open{opacity:1;pointer-events:all;transform:translateX(-50%) scale(1)}
.silo-tp-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 16px;border-radius:9px;border:none;background:none;cursor:pointer;font-family:var(--font);transition:all .18s}
.silo-tp-label{font-size:12px;font-weight:700;color:rgba(255,255,255,.36);transition:color .18s}
.silo-tp-sub{font-size:12px;color:rgba(255,255,255,.2);font-weight:500}
.silo-tp-btn.on{background:rgba(255,255,255,.11)}
.silo-tp-btn.on .silo-tp-label{color:#fff}
.silo-tp-btn.on .silo-tp-sub{color:rgba(255,255,255,.5)}
.silo-tp-btn:hover:not(.on) .silo-tp-label{color:rgba(255,255,255,.65)}

/* ── Move toasts to top ── */
#appToast,#importToast{bottom:auto!important;top:16px!important}
@keyframes fadeDown{0%{opacity:0;transform:translateY(-12px)}100%{opacity:1;transform:translateY(0)}}
#appToast div,#importToast{animation:fadeDown .3s ease both!important}

/* ── Hide sidebar + dock, adjust main ── */
.sidebar{display:none!important}
#siloDockFloat{display:none!important}
:root{--sidebar-w:0px!important}
.sidebar-collapsed{--sidebar-w:0px!important}
.main{margin-left:0!important;width:100vw!important;padding-left:0!important;padding-right:0!important}
.topbar{left:0!important}

/* ── Recent Transactions View ── */
.tx-date-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:16px 0 8px}
.tx-date-header:first-child{padding-top:0}
.tx-recent-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;cursor:pointer;transition:background .15s}
.tx-recent-row:hover{background:var(--surface2)}
.tx-recent-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.tx-recent-info{flex:1;min-width:0}
.tx-recent-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-recent-meta{font-size:12px;color:var(--text3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-recent-amount{font-family:var(--mono);font-size:14px;font-weight:600;flex-shrink:0;text-align:right}
.tx-recent-amount.positive{color:var(--accent)}

/* ── Topbar adjustments ── */
.main{padding-top:64px!important}

/* ── Floating Pill Dock ── */
.silo-dock-float{position:fixed;bottom:18px;left:0;right:0;display:flex;justify-content:center;z-index:200;pointer-events:none}
.silo-dock{
  display:flex;align-items:center;gap:3px;padding:7px 10px;
  background:rgba(16,16,24,.92);
  border:1px solid rgba(255,255,255,.16);border-radius:22px;
  backdrop-filter:blur(40px) saturate(220%);-webkit-backdrop-filter:blur(40px) saturate(220%);
  box-shadow:0 0 0 1px rgba(0,0,0,.55),0 4px 8px rgba(0,0,0,.25),0 12px 32px rgba(0,0,0,.55),0 28px 60px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.3);
  pointer-events:all;position:relative;
}
.silo-dock::after{content:'';position:absolute;bottom:-16px;left:12%;right:12%;height:18px;background:radial-gradient(ellipse,rgba(52,211,153,.07) 0%,transparent 70%);filter:blur(9px);border-radius:50%;pointer-events:none}
[data-theme="light"] .silo-dock{background:rgba(245,238,228,.94);border-color:rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.06),0 4px 8px rgba(0,0,0,.06),0 12px 32px rgba(0,0,0,.08),0 28px 60px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -1px 0 rgba(0,0,0,.04)}
[data-theme="light"] .silo-dock::after{background:radial-gradient(ellipse,rgba(22,101,52,.05) 0%,transparent 70%)}
[data-theme="light"] .silo-di:hover{background:rgba(0,0,0,.06)}
[data-theme="light"] .silo-di svg{stroke:rgba(0,0,0,.4);filter:none}
[data-theme="light"] .silo-di:hover:not(.on) svg{stroke:rgba(0,0,0,.7)}
[data-theme="light"] .silo-di.on svg{filter:drop-shadow(0 0 5px rgba(22,101,52,.2))}
[data-theme="light"] .silo-di[data-tip]::before{background:rgba(40,36,28,.9);border-color:rgba(0,0,0,.15)}
[data-theme="light"] .silo-dsep{background:linear-gradient(to bottom,transparent,rgba(0,0,0,.1) 30%,rgba(0,0,0,.1) 70%,transparent)}
[data-theme="light"] .silo-theme-popup{background:rgba(245,238,228,.96);border-color:rgba(0,0,0,.1);box-shadow:0 8px 32px rgba(0,0,0,.1)}
[data-theme="light"] .silo-tp-label{color:rgba(0,0,0,.3)}
[data-theme="light"] .silo-tp-sub{color:rgba(0,0,0,.2)}
[data-theme="light"] .silo-tp-btn.on{background:rgba(0,0,0,.08)}
[data-theme="light"] .silo-tp-btn.on .silo-tp-label{color:rgba(0,0,0,.85)}
[data-theme="light"] .silo-tp-btn.on .silo-tp-sub{color:rgba(0,0,0,.45)}
[data-theme="light"] .silo-tp-btn:hover:not(.on) .silo-tp-label{color:rgba(0,0,0,.55)}

/* ── Light theme (Sand) — fixes for gray/mismatched areas ── */
[data-theme="light"] .main{background:var(--bg)!important}
[data-theme="light"] .acc-body{background:var(--bg)!important}
[data-theme="light"] .acc-header{background:var(--surface)!important}
[data-theme="light"] .help-panel{background:var(--bg)!important;border-color:rgba(0,0,0,.1)!important;box-shadow:0 16px 48px rgba(0,0,0,.12)!important}
[data-theme="light"] .assembly-line{background:var(--bg)!important}
[data-theme="light"] .cockpit{background:var(--bg)!important}
[data-theme="light"] select{background-color:var(--surface)!important}
[data-theme="light"] input,[data-theme="light"] textarea{background:var(--surface)!important}
[data-theme="light"] .modal-content,[data-theme="light"] .acct-modal{background:var(--bg)!important}
[data-theme="light"] #silo-tip{background:rgba(28,24,14,.92)!important;color:#f0f0f0!important;border-color:rgba(0,0,0,.2)!important}
[data-theme="light"] .asp-bank::before{background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%)!important}
[data-theme="light"] #pg-overview .acct-side-panel{background:rgba(240,234,222,.65)!important;border-right-color:rgba(0,0,0,.06)!important}
[data-theme="light"] #pg-spending .silo-sp-sidebar{background:rgba(240,234,222,.65)!important;border-right-color:rgba(0,0,0,.06)!important}
[data-theme="light"] #pg-investments .invest-side-panel{background:rgba(240,234,222,.65)!important;border-right-color:rgba(0,0,0,.06)!important}
[data-theme="light"] .silo-ov-hero{background:rgba(240,234,222,.4)!important}
[data-theme="light"] .silo-ov-content>.stats-grid{background:rgba(240,234,222,.3)!important;border-color:rgba(0,0,0,.06)!important}
[data-theme="light"] .silo-ov-content>.grid-2>.card{border-right-color:rgba(0,0,0,.06)!important}
[data-theme="light"] .silo-ov-content>.grid-2{border-color:rgba(0,0,0,.06)!important}
[data-theme="light"] .silo-grain{opacity:.005!important}
[data-theme="light"] .silo-atmo{opacity:.3!important}
[data-theme="light"] .page{background:transparent!important}
[data-theme="light"] .card{background:var(--surface)!important;border-color:rgba(0,0,0,.06)!important}
[data-theme="light"] .stat-card{background:var(--surface)!important;border-color:rgba(0,0,0,.06)!important}
[data-theme="light"] .ledger-row:hover{background:rgba(0,0,0,.03)!important}
[data-theme="light"] .acc{background:var(--surface)!important;border-color:rgba(0,0,0,.06)!important}
.silo-di{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .15s;will-change:transform}
.silo-di:hover{background:rgba(255,255,255,.09)}
.silo-di.on{background:rgba(52,211,153,.15)}
.silo-di svg{width:19px;height:19px;stroke:rgba(255,255,255,.58);stroke-width:1.75;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));flex-shrink:0}
.silo-di.on svg{stroke:var(--accent);filter:drop-shadow(0 0 5px rgba(52,211,153,.4)) drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.silo-di:hover:not(.on) svg{stroke:rgba(255,255,255,.92)}
.silo-di.on::after{content:'';position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
/* ── Review pill (floats left of dock) ── */
.silo-review-pill{
  display:flex;align-items:center;padding:3px 4px;margin-right:8px;
  background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.18);border-radius:16px;
  backdrop-filter:blur(40px) saturate(220%);-webkit-backdrop-filter:blur(40px) saturate(220%);
  box-shadow:0 0 0 1px rgba(0,0,0,.25),0 3px 6px rgba(0,0,0,.15),0 8px 20px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.06);
  pointer-events:all;cursor:pointer;transition:opacity .3s,transform .3s cubic-bezier(.34,1.42,.64,1);
  animation:siloReviewSlideIn .4s cubic-bezier(.34,1.42,.64,1) both;
}
.silo-review-pill .silo-di{width:36px;height:36px}
.silo-review-pill .silo-di svg{stroke:#f87171!important;filter:drop-shadow(0 0 4px rgba(248,113,113,.3))!important}
.silo-review-pill:hover{background:rgba(248,113,113,.14);border-color:rgba(248,113,113,.28)}
.silo-review-pill:hover .silo-di svg{stroke:#fca5a5!important}
.silo-review-count{position:absolute;top:2px;right:0;min-width:14px;height:14px;border-radius:7px;background:#f87171;color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 3px;font-family:var(--mono);line-height:1;box-shadow:0 2px 6px rgba(248,113,113,.3)}
@keyframes siloReviewSlideIn{0%{opacity:0;transform:translateX(20px) scale(.8)}100%{opacity:1;transform:translateX(0) scale(1)}}

/* Dock hover labels — above icons */
.silo-di[data-tip]{position:relative}
.silo-di[data-tip]::before{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);top:auto;left:50%;transform:translateX(-50%) translateY(-4px);background:rgba(10,10,16,.92);color:#f0f0f6;font-size:12px;font-weight:600;font-family:var(--font);padding:3px 8px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s,transform .15s;z-index:220;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 12px rgba(0,0,0,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.silo-di[data-tip]:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}

/* Feedback panel — reposition for dock layout */
.help-panel{left:50%!important;transform:translateX(-50%)!important;bottom:80px!important}
.help-fab{display:none!important}
.silo-dbadge{position:absolute;top:2px;right:-2px;min-width:16px;height:16px;border-radius:8px;border:1.5px solid rgba(16,16,24,.92);z-index:3;font-size:9px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;padding:0 4px;box-sizing:border-box;cursor:pointer}
.silo-dsep{width:1px;height:22px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.12) 30%,rgba(255,255,255,.12) 70%,transparent);margin:0 4px;border-radius:1px;flex-shrink:0}

/* ── Dock icon loading ring ── */
.silo-dock-ring{position:absolute;top:50%;left:50%;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;pointer-events:none;z-index:5}
.silo-dock-ring::before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:var(--accent);border-right-color:rgba(52,211,153,.3);animation:siloDockSpin 1s cubic-bezier(.4,0,.2,1) infinite}
.silo-dock-ring::after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 60%,rgba(52,211,153,.06) 100%);animation:siloDockSpin 1s cubic-bezier(.4,0,.2,1) infinite}
.silo-dock-ring-done::before,.silo-dock-ring-done::after{animation:siloDockRingDone .5s ease forwards}
@keyframes siloDockSpin{to{transform:rotate(360deg)}}
@keyframes siloDockRingDone{to{opacity:0;transform:scale(1.3)}}
.silo-di-loading svg{animation:siloDockPulse 2s ease-in-out infinite}
@keyframes siloDockPulse{0%,100%{opacity:1}50%{opacity:.5}}

/* ── Investment sync badge + draggable accounts ── */
.invest-sync-badge{cursor:default}
.isp-acct[draggable="true"]{cursor:grab}
.isp-acct[draggable="true"]:active{cursor:grabbing}


/* ══════════════════════════════════════════════════════
   SILO PAGE OVERHAUL — Mockup visual language
══════════════════════════════════════════════════════ */

/* ── Disable old side panel positioning ── */
.has-acct-panel .main{padding-left:0!important}
.has-invest-panel .main{padding-left:0!important}
.acct-side-panel,.invest-side-panel{position:relative!important;width:auto!important;top:auto!important;left:auto!important;bottom:auto!important;display:block!important;padding:14px 11px 12px!important;overflow-y:auto!important;scrollbar-width:none!important;max-height:calc(100vh - 140px)!important}
.acct-side-panel::-webkit-scrollbar,.invest-side-panel::-webkit-scrollbar{display:none}
@media(max-width:1100px){.acct-side-panel,.invest-side-panel{display:none!important}}

/* ── OVERVIEW: 205px sidebar | content ── */
#pg-overview .main-inner{display:grid!important;grid-template-columns:205px 1fr!important;gap:0!important;max-width:none!important;padding:0!important}
#pg-overview .page-header{grid-column:1/-1}
#pg-overview .acct-side-panel{
  grid-column:1;grid-row:2/span 20;
  background:rgba(22,22,32,.55)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;
  border-right:1px solid rgba(255,255,255,.05)!important;
  position:static!important;
}
#pg-overview .silo-ov-content{grid-column:2;grid-row:2/span 20;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none;padding-bottom:80px}
#pg-overview .silo-ov-content::-webkit-scrollbar{display:none}
#pg-overview #overviewAccountsSection{display:none!important}

/* Overview hero */
.silo-ov-hero{
  padding:16px 30px 14px;position:relative;overflow:hidden;flex-shrink:0;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.silo-ov-hero::before{
  content:'';position:absolute;top:-40px;left:-20px;width:300px;height:200px;
  background:radial-gradient(ellipse,rgba(52,211,153,.12) 0%,transparent 65%);
  filter:blur(30px);pointer-events:none;
}
.hero-inner{display:flex;align-items:flex-end;gap:0;position:relative;z-index:1}
.hero-left{flex:1}
.hero-right{display:flex;gap:0;border-left:1px solid rgba(255,255,255,.06);margin-left:32px}
.hst{padding:2px 20px;text-align:right}
.hst+.hst{border-left:1px solid rgba(255,255,255,.04)}
.hst-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);margin-bottom:7px}
.hst-val{font-size:22px;font-weight:800;font-family:var(--mono);letter-spacing:-.04em;line-height:1}
.hero-eyebrow{
  font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  color:rgba(52,211,153,.7);margin-bottom:6px;display:flex;align-items:center;gap:8px;
}
.hero-eyebrow::before{content:'';width:20px;height:1px;background:rgba(52,211,153,.4)}
.silo-ov-hero .hero-number{
  font-size:28px;font-weight:800;font-family:var(--mono);letter-spacing:-.05em;line-height:1;
  display:flex;align-items:flex-end;gap:3px;
}
.hero-desc{font-size:12px;color:var(--text2);margin-top:6px;line-height:1.5}
.hero-desc strong{color:var(--text);font-weight:600}

/* Shared stat-grid layout for Overview + Investments */
#pg-overview .silo-ov-content>.stats-grid,
#pg-investments .silo-iv-content>.stats-grid{
  display:flex!important;gap:0!important;border-bottom:1px solid var(--border)!important;
  flex-shrink:0;background:rgba(0,0,0,.1);margin:0!important;padding:0!important;
}
#pg-overview .silo-ov-content>.stats-grid>.stat-card,
#pg-investments .silo-iv-content>.stats-grid>.stat-card{
  flex:1!important;border-radius:0!important;border:none!important;border-right:1px solid var(--border)!important;
  background:transparent!important;cursor:pointer;transition:background .12s!important;
}
#pg-overview .silo-ov-content>.stats-grid>.stat-card:last-child,
#pg-investments .silo-iv-content>.stats-grid>.stat-card:last-child{border-right:none!important}
#pg-overview .silo-ov-content>.stats-grid>.stat-card:hover,
#pg-investments .silo-iv-content>.stats-grid>.stat-card:hover{background:rgba(255,255,255,.025)!important}
#pg-overview .silo-ov-content>.stats-grid>.stat-card::before,
#pg-investments .silo-iv-content>.stats-grid>.stat-card::before{display:none!important}
#pg-overview .silo-ov-content>.stats-grid .stat-label,
#pg-investments .silo-iv-content>.stats-grid .stat-label{font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.1em!important;color:var(--text3)!important}
#pg-overview .silo-ov-content>.stats-grid .stat-detail,
#pg-investments .silo-iv-content>.stats-grid .stat-detail{font-size:12px!important;color:var(--text3)!important}
#pg-overview .silo-ov-content>.stats-grid .stat-top3,
#pg-investments .silo-iv-content>.stats-grid .stat-top3{display:none!important}
/* Overview-specific stat overrides */
#pg-overview .silo-ov-content>.stats-grid>.stat-card{padding:14px 18px!important}
#pg-overview .silo-ov-content>.stats-grid>.stat-card:hover{transform:none!important}
#pg-overview .silo-ov-content>.stats-grid .stat-label{margin-bottom:5px!important}
#pg-overview .silo-ov-content>.stats-grid .stat-value{font-size:24px!important;font-weight:900!important;font-family:var(--mono)!important;letter-spacing:-.05em!important;line-height:1!important}
#pg-overview .silo-ov-content>.stats-grid .stat-detail{margin-top:4px!important}

#pg-overview .silo-ov-content>.grid-2{padding:0!important;margin:0!important;gap:0!important;border-bottom:1px solid rgba(255,255,255,.05)}
#pg-overview .silo-ov-content>.grid-2>.card{border-radius:0!important;border:none!important;border-right:1px solid rgba(255,255,255,.05)!important;background:transparent!important;padding:16px 20px!important}
#pg-overview .silo-ov-content>.grid-2>.card:last-child{border-right:none!important}
#pg-overview .silo-ov-content>.grid-2 text{font-size:10px!important}
#pg-overview .silo-ov-content>.grid-2 .axis-label,#pg-overview .silo-ov-content>.grid-2 .axis-label-y{font-size:10px!important}
#pg-overview #incExpChartWrap text{font-size:10px!important}
#pg-overview #incExpChartWrap svg{max-width:100%!important}
#pg-overview .silo-ov-content>#overviewBudgetSection{padding:16px 20px!important;border-bottom:1px solid rgba(255,255,255,.05);margin:0!important}
#pg-overview .silo-ov-content>#overviewTaxSection,#pg-overview .silo-ov-content>#personalTaxSection{padding:16px 20px!important;margin:0!important}

/* ══════════════════════════════════════════════════════════════
   SPENDING PAGE — sidebar categories | insights + charts
   Same grid pattern as Overview/Investments
   ══════════════════════════════════════════════════════════════ */

/* Grid container: 310px sidebar | 1fr content */
#pg-spending .main-inner{
  display:grid!important;grid-template-columns:310px 1fr!important;
  gap:0!important;max-width:none!important;padding:0!important;margin:0!important;
  overflow:hidden!important;width:100%!important;
}
#pg-spending .page-header{grid-column:1/-1}
/* Sidebars are now inside grids, not fixed overlays */
.has-acct-panel .main,.has-invest-panel .main{padding-left:0!important}
#acctSidePanel,#investSidePanel{position:static!important;width:auto!important;height:auto!important;top:auto!important;left:auto!important;z-index:auto!important}

/* Hide the original summary card — we extract its content via JS */
#pg-spending #trendsSummaryCard{display:none!important}

/* ── LEFT SIDEBAR — spending categories ── */
.silo-sp-sidebar{
  grid-column:1;grid-row:2/span 20;
  background:rgba(13,13,19,.55)!important;
  backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;
  border-right:1px solid rgba(255,255,255,.05)!important;
  overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:none!important;
  display:flex;flex-direction:column;
}
.silo-sp-sidebar::-webkit-scrollbar{display:none}

/* Sidebar hero — total spent */
.sp-side-hero{
  padding:18px 20px 14px;border-bottom:1px solid var(--border);
  flex-shrink:0;position:relative;overflow:hidden;
}
.sp-side-hero::before{
  content:'';position:absolute;top:-30px;left:-20px;width:200px;height:150px;
  background:radial-gradient(ellipse,rgba(248,113,113,.1) 0%,transparent 60%);
  filter:blur(20px);pointer-events:none;
}
.sp-side-hero .sp-eyebrow{
  font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;
  color:rgba(248,113,113,.7);margin-bottom:8px;display:flex;align-items:center;gap:8px;
  position:relative;z-index:1;
}
.sp-side-hero .sp-eyebrow::before{content:'';width:16px;height:1px;background:rgba(248,113,113,.45);flex-shrink:0}
.sp-side-hero .sp-number{
  font-size:32px;font-weight:900;font-family:var(--mono);letter-spacing:-.06em;
  line-height:1;position:relative;z-index:1;
}
.sp-side-hero .sp-sub{
  font-size:12px;color:var(--text2);margin-top:6px;line-height:1.4;position:relative;z-index:1;
}

/* Sidebar stat strip */
.sp-side-stats{
  display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:rgba(0,0,0,.1);
}
.sp-side-stats .ss{flex:1;padding:9px 12px;border-right:1px solid rgba(255,255,255,.04)}
.sp-side-stats .ss:last-child{border-right:none}
.sp-side-stats .ss-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);margin-bottom:3px}
.sp-side-stats .ss-val{font-size:13px;font-weight:800;font-family:var(--mono);letter-spacing:-.02em}

/* Sidebar categories — override inline styles from summary card */
.sp-side-cats{flex:1;overflow-y:auto;scrollbar-width:thin;padding:8px 10px!important}
.sp-side-cats::-webkit-scrollbar{width:3px}
.sp-side-cats::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:2px}
/* Kill the gap from parent grid */
.sp-side-cats>div[style*="grid-template-columns"]{display:block!important;gap:0!important}
/* Tighten the header row */
.sp-side-cats>div:first-child{font-size:12px!important;margin-bottom:6px!important;padding:0 4px!important}
/* Column headers — hide, too wide for sidebar */
.sp-side-cats>div:nth-child(2){display:none!important}
/* Category rows container — expand */
.sp-side-cats>div:last-child{max-height:none!important;overflow:visible!important;padding:0!important}
/* Category rows — compact for sidebar width */
.sp-side-cats>div:last-child>div{
  gap:6px!important;margin-bottom:3px!important;padding:4px 6px!important;font-size:12px!important;
}
/* Category name — narrower */
.sp-side-cats>div:last-child>div>span:nth-child(2){width:70px!important;font-size:12px!important}
/* Amount — smaller */
.sp-side-cats>div:last-child>div>span:nth-child(4){font-size:12px!important}
/* Percentage — smaller */
.sp-side-cats>div:last-child>div>span:nth-child(5){font-size:12px!important;width:24px!important}

/* Sidebar budget status */
.sp-side-budget{
  flex-shrink:0;padding:10px 12px!important;border-top:1px solid var(--border);
  background:rgba(0,0,0,.06);
}
.sp-side-budget>div:first-child{font-size:12px!important;margin-bottom:6px!important}

/* ── RIGHT CONTENT — insights + charts ── */
.silo-sp-content{
  grid-column:2;grid-row:2/span 20;
  display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none;padding-bottom:80px;
}
.silo-sp-content::-webkit-scrollbar{display:none}

/* Metrics ribbon — top of content area */
.sp-metrics-ribbon{
  display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:rgba(0,0,0,.06);
}
.sp-metrics-ribbon .sp-metric{
  flex:1;padding:12px 14px;text-align:center;
  border-right:1px solid rgba(255,255,255,.04);transition:background .15s;
}
.sp-metrics-ribbon .sp-metric:last-child{border-right:none}
.sp-metrics-ribbon .sp-metric:hover{background:rgba(255,255,255,.02)}
.sp-metrics-ribbon .sp-m-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:3px}
.sp-metrics-ribbon .sp-m-val{font-size:22px;font-weight:800;font-family:var(--mono);letter-spacing:-.02em}
.sp-metrics-ribbon .sp-m-sub{font-size:12px;color:var(--text3);margin-top:2px}

/* ═══ SILO INSIGHTS — the star, top third of content ═══ */
.silo-sp-insights{
  flex-shrink:0;position:relative;
  border-bottom:1px solid var(--border);
}
.silo-sp-insights-hdr{
  display:flex;align-items:center;gap:10px;
  padding:16px 24px 12px;
  background:linear-gradient(135deg,rgba(52,211,153,.06) 0%,rgba(124,184,255,.03) 100%);
  border-bottom:1px solid var(--border);
}
.silo-sp-insights-hdr .ins-icon{font-size:16px}
.silo-sp-insights-hdr .ins-title{font-size:16px;font-weight:900;letter-spacing:-.01em}
.silo-sp-insights-hdr .ins-badge{
  font-size:12px;font-weight:700;padding:3px 10px;border-radius:10px;
  background:rgba(52,211,153,.12);color:rgba(52,211,153,.9);
  letter-spacing:.05em;text-transform:uppercase;margin-left:auto;
}
.silo-sp-insights-body{
  padding:16px 24px 20px;max-height:50vh;overflow-y:auto;scrollbar-width:thin;
}
.silo-sp-insights-body::-webkit-scrollbar{width:4px}
.silo-sp-insights-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}

/* ── Editorial insight paragraphs — dot + flowing prose ── */

/* Each insight paragraph */
.si-para{
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.04);
}
.si-para:last-child{border-bottom:none}

/* Colored dot — like the mockup */
.si-dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:6px;
}

/* Flowing prose text */
.si-text{
  font-size:13px;color:var(--text2);line-height:1.75;
}
.si-text strong{font-weight:600}

/* Narrative summary — the editorial finale, set apart */
.si-narrative{
  margin-top:20px;padding-top:18px;
  border-top:1px solid rgba(255,255,255,.06);
}
.si-narrative-lbl{
  font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:var(--accent);margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.si-narrative-lbl::before{content:'';width:14px;height:1px;background:var(--accent);opacity:.4}
.si-narrative-text{
  font-size:13px;line-height:1.85;color:var(--text2);
}
.si-narrative-text strong{font-weight:600}

/* Empty state */
.si-empty{
  text-align:center;padding:30px;color:var(--text3);font-size:13px;font-style:italic;
}

/* ═══ Charts section — bottom two-thirds ═══ */
.silo-sp-charts{flex:1}

/* Top row: stacked chart + category budgets side by side */
.silo-sp-chart-row{
  display:flex!important;border-bottom:1px solid rgba(255,255,255,.05);
}
/* Left chart column — stacked chart + sub-chart grids */
.silo-sp-chart-col{
  flex:1 1 60%;min-width:0;display:flex;flex-direction:column;
  border-right:1px solid rgba(255,255,255,.05);
}
.silo-sp-chart-col>.card{
  margin:0!important;border-radius:0!important;border:none!important;
  background:transparent!important;padding:14px 18px!important;box-shadow:none!important;
  border-bottom:1px solid rgba(255,255,255,.05)!important;
}
.silo-sp-chart-col>.card:hover{transform:none!important;box-shadow:none!important}
.silo-sp-chart-col svg{max-width:100%!important}
.silo-sp-chart-col .axis-label,.silo-sp-chart-col .axis-label-y{font-size:10px!important}
.silo-sp-chart-col text{font-size:10px!important}
/* Sub-chart grids inside the left column */
.silo-sp-chart-col>.grid-2e{
  padding:0!important;margin:0!important;gap:0!important;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.silo-sp-chart-col>.grid-2e>.card{
  border-radius:0!important;border:none!important;border-right:1px solid rgba(255,255,255,.05)!important;
  background:transparent!important;padding:12px 16px!important;box-shadow:none!important;
}
.silo-sp-chart-col>.grid-2e>.card:last-child{border-right:none!important}
.silo-sp-chart-col>.grid-2e>.card:hover{transform:none!important;box-shadow:none!important}

/* Budget column — right side of the row */
.silo-sp-budget-col{
  flex:0 0 40%;min-width:0;display:flex;flex-direction:column;overflow:visible;
}
.silo-sp-budget-col>.sec-head{padding:10px 16px 6px!important;margin:0!important;flex-shrink:0}
.silo-sp-budget-col>#spendingCatBudgets{
  padding:0 12px 8px!important;margin:0!important;flex:1;
  overflow-y:auto!important;scrollbar-width:thin;
}
.silo-sp-budget-col>#spendingCatBudgets::-webkit-scrollbar{width:3px}
.silo-sp-budget-col>#spendingCatBudgets::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
/* Compact budget rows for the side column */
.silo-sp-budget-col .bcard{padding:8px 10px!important;margin-bottom:6px!important}

/* Remaining standalone cards */
.silo-sp-charts>.card{
  margin:0!important;border-radius:0!important;border:none!important;
  background:transparent!important;padding:16px 24px!important;box-shadow:none!important;
  border-bottom:1px solid rgba(255,255,255,.05)!important;
}
.silo-sp-charts>.card:hover{transform:none!important;box-shadow:none!important}
.silo-sp-charts svg{max-width:700px!important}
.silo-sp-charts .axis-label,.silo-sp-charts .axis-label-y{font-size:10px!important}
.silo-sp-charts text{font-size:10px!important}

/* Chart grids — side by side, no card boxes */
.silo-sp-charts>.grid-2e{padding:0!important;margin:0!important;gap:0!important;border-bottom:1px solid rgba(255,255,255,.05)}
.silo-sp-charts>.grid-2e>.card{
  border-radius:0!important;border:none!important;border-right:1px solid rgba(255,255,255,.05)!important;
  background:transparent!important;padding:16px 20px!important;box-shadow:none!important;
}
.silo-sp-charts>.grid-2e>.card:last-child{border-right:none!important}
.silo-sp-charts>.grid-2e>.card:hover{transform:none!important;box-shadow:none!important}

/* ── INVESTMENTS: 220px sidebar | content ── */
#pg-investments .main-inner{display:grid!important;grid-template-columns:220px 1fr!important;gap:0!important;max-width:none!important;padding:0!important}
#pg-investments .page-header{grid-column:1/-1}
#pg-investments .invest-side-panel{
  grid-column:1;grid-row:2/span 20;
  background:rgba(22,22,32,.55)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;
  border-right:1px solid rgba(255,255,255,.05)!important;
  position:sticky!important;top:52px!important;
}
#pg-investments .silo-iv-content{grid-column:2;grid-row:2/span 20;display:flex;flex-direction:column;overflow-y:auto;padding-bottom:80px;scrollbar-width:none}
#pg-investments .silo-iv-content::-webkit-scrollbar{display:none}

/* Investments Layout B — stat cards become performance cards */
.silo-iv-content{padding-bottom:80px}
/* Investments-specific stat overrides */
#pg-investments .silo-iv-content>.stats-grid>.stat-card{padding:16px 20px!important}
#pg-investments .silo-iv-content>.stats-grid .stat-label{margin-bottom:6px!important}
#pg-investments .silo-iv-content>.stats-grid .stat-value{font-size:28px!important;font-weight:900!important;font-family:var(--mono)!important;letter-spacing:-.05em!important;line-height:1!important}
#pg-investments .silo-iv-content>.stats-grid .stat-detail{margin-top:5px!important}

/* Investment charts — clean borderless */
#pg-investments .silo-iv-content>.grid-2e{padding:0!important;margin:0!important;gap:0!important;border-bottom:1px solid rgba(255,255,255,.05)}
#pg-investments .silo-iv-content>.grid-2e>.card{
  border-radius:0!important;border:none!important;border-right:1px solid rgba(255,255,255,.05)!important;
  background:transparent!important;padding:16px 20px!important;
}
#pg-investments .silo-iv-content>.grid-2e>.card:last-child{border-right:none!important}

/* Investment accordions */
#pg-investments .silo-iv-content>.acc{margin:0!important;border-radius:0!important;border:none!important;border-bottom:1px solid rgba(255,255,255,.05)!important}

/* Stale banner */
#pg-investments .silo-iv-content>#investStaleBanner{margin:0 20px 0!important}

/* ── Investment empty state hero ── */
.silo-invest-empty{padding:60px 40px;text-align:center;max-width:520px;margin:40px auto 0}
.sie-icon{margin:0 auto 20px;width:64px;height:64px;border-radius:16px;background:rgba(52,211,153,.08);display:flex;align-items:center;justify-content:center}
.sie-title{font-size:22px;font-weight:800;color:var(--text);margin-bottom:10px;letter-spacing:-.02em}
.sie-desc{font-size:14px;color:var(--text3);line-height:1.7;margin-bottom:28px}
.sie-actions{display:flex;gap:12px;justify-content:center;margin-bottom:18px;flex-wrap:wrap}
.sie-btn{display:flex;align-items:center;gap:10px;padding:14px 22px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;border:1px solid;transition:all .15s;font-family:var(--font)}
.sie-btn-csv{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.25);color:var(--accent)}
.sie-btn-csv:hover{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.4);transform:translateY(-1px)}
.sie-btn-manual{background:rgba(96,165,250,.06);border-color:rgba(96,165,250,.25);color:var(--blue)}
.sie-btn-manual:hover{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.4);transform:translateY(-1px)}
.sie-paste{font-size:13px;color:var(--text3);cursor:pointer;transition:color .15s}
.sie-paste:hover{color:var(--text2);text-decoration:underline;text-underline-offset:3px}

/* ── Shared card polish ── */
.card{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:14px!important;transition:border-color .2s,box-shadow .2s!important}
.card:hover{border-color:var(--border-hover)!important;box-shadow:0 4px 20px rgba(0,0,0,.12)!important}
.card-title{font-size:12px!important;font-weight:700!important;letter-spacing:.03em!important;text-transform:uppercase!important;color:var(--text2)!important}

/* Stat cards */
.stat-card{border-radius:14px!important;transition:border-color .2s,transform .2s!important}
.stat-card:hover{border-color:var(--border-hover)!important;transform:translateY(-2px)!important;box-shadow:0 6px 20px rgba(0,0,0,.15)!important}
.stat-label{font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.08em!important}
.stat-value{font-size:26px!important;font-weight:800!important;letter-spacing:-.04em!important}
.stat-top3{margin-top:8px!important;padding-top:8px!important;border-top:1px solid var(--border)!important}

/* Period pills */
/* Period pills — always expanded, no collapse animation */
.collapse-bubble{background:rgba(255,255,255,.05)!important;border:1px solid var(--border)!important;border-radius:9px!important;padding:3px!important}
.collapse-bubble .cb-btn{max-width:80px!important;opacity:1!important;padding:4px 11px!important;font-size:12px!important;font-weight:700!important;border-radius:7px!important;overflow:visible!important}
.collapse-bubble .cb-btn.active,
.collapse-bubble:hover .cb-btn.active,
.collapse-bubble .cb-btn.active:hover,
.collapse-bubble:hover .cb-btn.active:hover{background:var(--accent)!important;color:#fff!important;box-shadow:0 1px 4px rgba(0,0,0,.25)!important;max-width:80px!important;opacity:1!important}
.period-pill button.active,
.period-pill button.active:hover{background:var(--accent-soft)!important;color:var(--accent)!important}

/* Page headers — editorial style */
.page-header{padding:10px 24px 6px!important;margin-bottom:0!important}
.page-title{font-size:20px!important;font-weight:700!important;letter-spacing:-.03em!important}
.page-sub{font-size:12px!important;color:var(--text3)!important;margin-top:2px!important}

/* Accordions */
.acc{border-radius:14px!important;border:1px solid var(--border)!important;overflow:hidden!important}

/* ── Transactions page overhaul ── */
#pg-transactions .main-inner{max-width:none!important;padding:0 20px!important}

/* Category filter chips */
#pg-transactions #catFilters{gap:6px!important;margin-bottom:10px!important;padding:0 4px!important}
#pg-transactions .cat-chip{
  font-size:12px!important;font-weight:600!important;padding:5px 14px!important;border-radius:20px!important;
  border:1px solid var(--border)!important;background:transparent!important;color:var(--text2)!important;
  cursor:pointer!important;transition:all .15s!important;font-family:var(--font)!important;
}
#pg-transactions .cat-chip:hover{border-color:var(--border-hover)!important;color:var(--text)!important;background:var(--surface2)!important}
#pg-transactions .cat-chip.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}

/* Search + toolbar row */
#pg-transactions .search-wrap{flex-shrink:0}
#pg-transactions .search-input{
  background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:8px!important;
  padding:6px 10px 6px 28px!important;font-size:13px!important;width:200px!important;
}
#pg-transactions .btn-ghost{
  font-size:12px!important;padding:5px 12px!important;border-radius:8px!important;
  background:var(--surface)!important;border:1px solid var(--border)!important;color:var(--text2)!important;
  font-weight:600!important;transition:all .15s!important;white-space:nowrap!important;
}
#pg-transactions .btn-ghost:hover{border-color:var(--border-hover)!important;color:var(--text)!important;background:var(--surface2)!important}

/* Accordion cards */
#pg-transactions .acc-card{
  background:var(--surface)!important;border:1px solid var(--border)!important;
  border-radius:10px!important;margin:6px 0!important;overflow:hidden!important;
  transition:border-color .15s,box-shadow .15s!important;
}
#pg-transactions .acc-card:hover{border-color:var(--border-hover)!important}
#pg-transactions .acc-card.open{border-color:var(--border-hover)!important;box-shadow:0 4px 20px rgba(0,0,0,.15)!important}

/* Accordion tab */
#pg-transactions .acc-card-tab{
  padding:10px 16px!important;gap:12px!important;
  background:transparent!important;transition:background .1s!important;
}
#pg-transactions .acc-card-tab:hover{background:rgba(255,255,255,.02)!important}
#pg-transactions .acc-card-color{width:3px!important;height:24px!important;border-radius:2px!important}
#pg-transactions .acc-card-title{font-size:14px!important;font-weight:700!important;letter-spacing:-.01em!important}
#pg-transactions .acc-card-meta{font-size:12px!important;color:var(--text3)!important;margin-top:1px!important}
#pg-transactions .acc-card-total{font-size:14px!important;font-weight:700!important;font-family:var(--mono)!important}
#pg-transactions .acc-card-arrow{font-size:12px!important;color:var(--text3)!important;transition:transform .2s!important}

/* Accordion body + search */
#pg-transactions .acc-card-body{border-top:1px solid var(--border)!important;background:var(--bg)!important}
#pg-transactions .acc-card-body .acc-search{
  background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:6px!important;
  padding:5px 10px!important;font-size:12px!important;
}

/* Scrollbar for accordion container */
#pg-transactions #txAccordionContainer{
  scrollbar-width:thin!important;padding-right:2px!important;
}
#pg-transactions #txAccordionContainer::-webkit-scrollbar{width:4px}
#pg-transactions #txAccordionContainer::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:2px}

/* Bulk edit + edit log panels */
#pg-transactions #editLogPanel,#pg-transactions #txBulkEditPanel{
  background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:10px!important;
}

/* ── Global transaction table polish (popups, accordions, review) ── */

/* All table headers — clean minimal sort buttons */
.tbl-hdr{gap:14px!important}
.tbl-hdr .btn-sort{
  background:transparent!important;border:none!important;padding:4px 6px!important;
  font-size:12px!important;font-weight:700!important;color:var(--text3)!important;
  text-transform:uppercase!important;letter-spacing:.06em!important;
  cursor:pointer!important;transition:color .15s!important;border-radius:4px!important;
}
.tbl-hdr .btn-sort:hover{color:var(--text)!important;background:rgba(255,255,255,.04)!important}
.tbl-hdr .btn-sort.active{color:var(--accent)!important;background:transparent!important}
.tbl-hdr-b{gap:14px!important;padding:6px 14px!important}
.tbl-hdr-c{gap:14px!important}
.tbl-hdr-d{gap:10px!important}

/* Date column wider to fit year */
.tbl-hdr-a .col-date{width:90px!important}
.tbl-hdr-b .col-date{width:80px!important}
.acc-tx-row .pr-date{width:90px!important}
.tx-popup-row .pr-date{width:80px!important}

/* All acc-tx-row instances (inside popups, accordions, category views) */
.acc-tx-row{gap:14px!important;padding:6px 14px!important;transition:background .08s!important}
.acc-tx-row:hover{background:rgba(255,255,255,.025)!important}
.acc-tx-row .pr-date{font-size:13px!important}
.acc-tx-row .pr-desc{font-size:13px!important}
.acc-tx-row .pr-amt{font-size:13px!important}
.acc-tx-row .cat-pill{padding:3px 10px!important;font-size:12px!important;border-radius:12px!important;gap:4px!important}
.acc-tx-row .cat-pill .cp-dot{width:5px!important;height:5px!important}
.acc-tx-row .acct-wrap{margin-right:6px!important}
.acc-tx-row .tx-action{opacity:.3!important;transition:opacity .15s!important}
.acc-tx-row:hover .tx-action{opacity:.5!important}
.acc-tx-row .tx-action:hover{opacity:1!important}

/* Popup transaction rows */
.tx-popup-row{padding:6px 14px!important;gap:14px!important;font-size:13px!important}
.tx-popup-row .pr-date{font-size:13px!important}
.tx-popup-row .pr-desc{font-size:13px!important}
.tx-popup-row .pr-amt{font-size:13px!important}
.tx-popup-row .pr-cat{font-size:12px!important}

/* Popup sort header */
.popup-sort-btn{font-size:12px!important;padding:4px 6px!important;background:transparent!important;border:none!important;color:var(--text3)!important;text-transform:uppercase!important;letter-spacing:.06em!important}
.popup-sort-btn:hover{color:var(--text)!important}

/* Accordion card bodies everywhere */
.acc-card-body{background:var(--bg)!important;max-height:60vh!important}
.acc-card-body .acc-search{font-size:12px!important;padding:5px 10px!important}
.acc-body{max-height:none!important}

/* Investment transaction list — more room */
#investTxList{max-height:60vh!important}

/* Tx popup modal — ensure full visibility */
.tx-popup{max-height:88vh!important}
.tx-popup-body{max-height:none!important;flex:1!important;overflow-y:auto!important}

/* Review table rows */
.review-row{gap:14px!important;padding:6px 22px!important}

/* ── Hold-to-delete ── */
.silo-hold-del{position:relative;-webkit-user-select:none;user-select:none}
.silo-hold-del .silo-hold-ring{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:28px;height:28px;pointer-events:none;opacity:0;transition:opacity .15s;
}
.silo-hold-del.holding .silo-hold-ring{opacity:1}
.silo-hold-del.holding{
  transform:scale(1.4)!important;color:var(--red)!important;opacity:1!important;
  z-index:10;transition:transform .3s cubic-bezier(.2,.8,.3,1.2),color .2s!important;
}
.silo-hold-ring circle.track{fill:none;stroke:rgba(255,255,255,.1);stroke-width:2.5}
.silo-hold-ring circle.fill{
  fill:none;stroke:var(--red);stroke-width:2.5;
  stroke-dasharray:56.55;stroke-dashoffset:56.55;
  transform:rotate(-90deg);transform-origin:50% 50%;
}
.silo-hold-del.holding .silo-hold-ring circle.fill{
  stroke-dashoffset:0;transition:stroke-dashoffset .8s linear;
}

/* ── Hold-to-move (Personal↔Business) ── */
.silo-hold-move{position:relative;-webkit-user-select:none;user-select:none;font-size:13px!important;padding:3px 7px!important;border-radius:6px!important;border:1px solid var(--border)!important;color:var(--accent)!important;opacity:.7;transition:all .2s!important}
.silo-hold-move:hover{opacity:1!important;border-color:var(--accent)!important;background:rgba(99,102,241,.06)!important}
.silo-hold-move .silo-hold-ring{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:28px;height:28px;pointer-events:none;opacity:0;transition:opacity .15s;
}
.silo-hold-move.holding .silo-hold-ring{opacity:1}
.silo-hold-move.holding{
  transform:scale(1.3)!important;color:var(--accent)!important;opacity:1!important;border-color:var(--accent)!important;
  z-index:10;transition:transform .3s cubic-bezier(.2,.8,.3,1.2),color .2s!important;
}
.silo-hold-ring circle.track-move{fill:none;stroke:rgba(255,255,255,.1);stroke-width:2.5}
.silo-hold-ring circle.fill-move{
  fill:none;stroke:var(--accent);stroke-width:2.5;
  stroke-dasharray:56.55;stroke-dashoffset:56.55;
  transform:rotate(-90deg);transform-origin:50% 50%;
}
.silo-hold-move.holding .silo-hold-ring circle.fill-move{
  stroke-dashoffset:0;transition:stroke-dashoffset .55s linear;
}

/* ── Transaction checkboxes + bulk bar ── */
.silo-tx-check{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin:0;opacity:.35;transition:opacity .15s}
.silo-tx-check:checked{opacity:1}
.acc-tx-row:hover .silo-tx-check{opacity:.7}
.silo-bulk-bar{position:sticky;top:0;z-index:5;background:var(--accent);color:#fff;display:flex;align-items:center;gap:14px;padding:8px 16px;border-radius:8px;margin:0 8px 6px;font-size:13px;font-weight:600;animation:bulkIn .2s ease}
@keyframes bulkIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.silo-bulk-bar button{background:rgba(255,255,255,.18);border:none;color:#fff;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font);transition:background .15s}
.silo-bulk-bar button:hover{background:rgba(255,255,255,.3)}
.silo-bulk-bar .bulk-close{background:none;font-size:16px;padding:2px 6px;margin-left:auto;opacity:.7}
.silo-bulk-bar .bulk-close:hover{opacity:1}

/* ── Responsive: collapse to single column ── */
@media(max-width:1100px){
  #pg-overview .main-inner,#pg-spending .main-inner,#pg-investments .main-inner{grid-template-columns:1fr!important}
  #pg-overview .acct-side-panel,#pg-investments .invest-side-panel,#pg-spending .silo-sp-sidebar{display:none!important}
  #pg-overview .silo-ov-content,
  #pg-investments .silo-iv-content,
  #pg-spending .silo-sp-content{grid-column:1!important;grid-row:auto!important}
  .silo-sp-charts>.grid-2e{flex-direction:column!important}
  .silo-sp-charts>.grid-2e>.card{border-right:none!important}
  #pg-overview #overviewAccountsSection{display:block!important}
}

/* ── Category confirm modal ── */
.silo-confirm-overlay{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}
.silo-confirm-overlay.show{opacity:1}
.silo-confirm-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px 30px 22px;max-width:380px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.4);transform:scale(.95);transition:transform .2s ease}
.silo-confirm-overlay.show .silo-confirm-box{transform:scale(1)}
.silo-confirm-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:8px}
.silo-confirm-msg{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:22px}
.silo-confirm-msg strong{color:var(--text);font-weight:600}
.silo-confirm-actions{display:flex;gap:10px;justify-content:flex-end}
.silo-confirm-btn{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:background .15s,color .15s}
.silo-confirm-btn.secondary{background:var(--surface2);color:var(--text2)}
.silo-confirm-btn.secondary:hover{background:var(--surface3);color:var(--text)}
.silo-confirm-btn.primary{background:var(--accent);color:#fff}
.silo-confirm-btn.primary:hover{filter:brightness(1.1)}

/* ── Category picker: create new row ── */
.cat-picker-create{border-top:1px solid var(--border);margin-top:4px;padding-top:6px!important}
.cat-picker-create .cpi-name{color:var(--accent)!important}
.cat-picker-create:hover{background:var(--accent-soft)!important}
.scb-add-wrap input[type=number]::-webkit-inner-spin-button,.scb-add-wrap input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.scb-add-wrap input[type=number]{-moz-appearance:textfield}

/* Review Queue inline category picker */
.rq-cat-picker{background:var(--surface);border:1px solid var(--accent);border-radius:10px;margin:0 0 8px;overflow:hidden;animation:rqCpIn .2s ease}
@keyframes rqCpIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.rq-cp-search-wrap{padding:8px 10px 6px}
.rq-cp-search{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:7px 12px;font-size:14px;color:var(--text);font-family:var(--font);outline:none;box-sizing:border-box}
.rq-cp-search:focus{border-color:var(--accent)}
.rq-cp-list{max-height:210px;overflow-y:auto;padding:0 4px 6px;scrollbar-width:thin}
.rq-cp-list::-webkit-scrollbar{width:4px}
.rq-cp-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.rq-cp-item,.rq-cp-create{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:7px;cursor:pointer;transition:background .1s;font-size:14px}
.rq-cp-item:hover,.rq-cp-create:hover,.rq-cp-item.focused,.rq-cp-create.focused{background:var(--surface3)}
.rq-cp-item.current{background:rgba(52,211,153,.08)}
.rq-cp-item.current:hover{background:rgba(52,211,153,.14)}
.rq-cp-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.rq-cp-name{color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rq-cp-check{color:var(--accent);font-weight:700;font-size:13px;flex-shrink:0}
.rq-cp-create{border-top:1px solid var(--border);margin:4px 4px 0;padding-top:8px}

/* ── Account card: gear top-LEFT, sync badge top-RIGHT ── */
.asp-gear{width:24px!important;height:24px!important;top:6px!important;left:6px!important;right:auto!important;border-radius:6px!important;background:rgba(0,0,0,.35)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.asp-gear:hover{background:rgba(0,0,0,.6)!important}
.acct-side-panel .asp-bank,.acct-side-panel .asp-cc{overflow:visible!important}
.asp-synced-badge{position:absolute;top:6px;right:6px;left:auto;width:20px;height:20px;border-radius:5px;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3;pointer-events:auto;cursor:default;transition:transform .15s}
.asp-synced-badge:hover{transform:scale(1.15)}
#silo-tip{position:fixed;z-index:99999;background:rgba(10,10,15,.95);color:#f2f2f6;font-size:11px;font-weight:500;padding:4px 9px;border-radius:5px;white-space:nowrap;border:1px solid rgba(255,255,255,.1);box-shadow:0 6px 20px rgba(0,0,0,.5);font-family:var(--font);pointer-events:none;opacity:0;transition:opacity .12s;max-width:220px;overflow:hidden;text-overflow:ellipsis}
#silo-tip.show{opacity:1}
.asp-bank:hover .asp-synced-badge,.asp-cc:hover .asp-synced-badge{opacity:1}
.asp-synced-badge.asp-synced-fail{cursor:pointer;background:rgba(239,68,68,.25);box-shadow:0 0 0 0 rgba(239,68,68,.5);animation:syncFailPulse 2s ease-in-out infinite}
.asp-synced-badge.asp-synced-fail:hover{background:rgba(239,68,68,.45)}
@keyframes syncFailPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.45)}50%{box-shadow:0 0 8px 3px rgba(239,68,68,.35)}}

/* ── CC with real photo: hide text, keep balance + icons ── */
.asp-cc-photo .asp-cc-top{display:none!important}
.asp-cc-photo .asp-cc-digits{display:inline-block!important;position:absolute!important;bottom:36px;left:12px;background:rgba(0,0,0,.4)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;font-size:11px!important}
.asp-cc-photo .asp-cc-name{display:none!important}
.asp-cc-photo .asp-cc-peek-name{display:none!important}
.asp-cc-photo .asp-cc-bottom{position:absolute;bottom:10px;left:12px;right:12px;margin:0}
.asp-cc-photo .asp-cc-bal{font-size:18px!important;text-shadow:0 1px 6px rgba(0,0,0,.7),0 0 20px rgba(0,0,0,.4)!important;background:rgba(0,0,0,.35)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;padding:2px 8px!important;border-radius:5px!important}
.asp-cc-photo .asp-cc-peek{justify-content:flex-end}
.asp-cc-photo .asp-cc-peek-bal{text-shadow:0 1px 6px rgba(0,0,0,.7),0 0 20px rgba(0,0,0,.4)!important;background:rgba(0,0,0,.4)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.asp-cc-photo .asp-gear{background:rgba(0,0,0,.45)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;color:#fff!important}
.asp-cc-photo .asp-synced-badge{background:rgba(0,0,0,.45)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.asp-cc-photo::before{background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.5) 100%)!important}

/* ── CC without photo: improve text readability ── */
.asp-cc:not(.asp-cc-photo) .asp-cc-name{text-shadow:0 1px 3px rgba(0,0,0,.5)}
.asp-cc:not(.asp-cc-photo) .asp-cc-digits{text-shadow:0 1px 2px rgba(0,0,0,.4)}
.asp-cc:not(.asp-cc-photo) .asp-cc-inst{text-shadow:0 1px 2px rgba(0,0,0,.4)}
.as-gear{width:20px!important;height:20px!important;border-radius:5px!important}

/* ── Sync progress indicator (inline, near accounts) ── */
.silo-sync-banner{display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:8px;background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;transition:opacity .3s ease;font-family:var(--font);position:absolute;top:6px;left:6px;right:6px;z-index:10}
.silo-sync-banner.show{opacity:1}
.silo-sync-spinner{width:12px;height:12px;border:1.5px solid rgba(52,211,153,.2);border-top-color:var(--accent);border-radius:50%;animation:silo-spin .7s linear infinite;flex-shrink:0}
@keyframes silo-spin{to{transform:rotate(360deg)}}
.silo-sync-text{font-size:11px;color:var(--text3);font-weight:500}
.silo-sync-text strong{color:var(--text2);font-weight:600}
.silo-sync-progress{font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums;margin-left:auto}
.silo-sync-bar{display:none}

/* ═══════════════════════════════════════════════════════
   SILO TERMINAL — Transaction Sorter Redesign
   ═══════════════════════════════════════════════════════ */
.silo-terminal{--st-t2:#9898b0;--st-t3:#52526a;--st-bd:rgba(255,255,255,.07);--st-bd2:rgba(255,255,255,.04);--st-asoft:rgba(52,211,153,.10);display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;position:relative}

/* Progress strip */
.st-prog-strip{display:flex;align-items:center;gap:14px;padding:9px 24px;border-bottom:1px solid var(--st-bd);flex-shrink:0;background:transparent;z-index:2;position:relative}
.st-prog-track{flex:1;height:4px;background:rgba(255,255,255,.06);border-radius:2px;position:relative;overflow:visible}
.st-prog-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,rgba(52,211,153,.6),var(--accent));position:relative;transition:width .4s ease}
.st-prog-fill::after{content:'';position:absolute;right:-1px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.st-prog-txt{font-size:12px;color:var(--st-t3);white-space:nowrap}
.st-prog-txt strong{color:var(--st-t2);font-weight:700}
.st-back-btn{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:var(--text3);font-size:14px;cursor:pointer;font-family:var(--font);padding:4px 10px;border-radius:7px;transition:all .2s;line-height:1;flex-shrink:0}
.st-back-btn:hover{color:var(--red);border-color:rgba(239,68,68,.2);background:rgba(239,68,68,.06)}
.st-strip-btn{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:var(--st-t2);font-size:12px;cursor:pointer;font-family:var(--font);padding:4px 10px;border-radius:7px;transition:all .2s;line-height:1;flex-shrink:0;font-weight:600}
.st-strip-btn:hover{color:var(--text);border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.08)}

/* Outer shell — centers the panel */
.st-outer{flex:1;display:flex;flex-direction:column;align-items:center;overflow-y:auto;overflow-x:hidden;position:relative;z-index:2;padding:20px 40px 16px}
.st-shell{width:100%;max-width:860px;flex-shrink:0;transition:transform .35s cubic-bezier(.4,0,.2,1)}
.st-shell.help-open{transform:translateY(-8px)}

/* The Panel — one unified frosted surface */
.st-panel{display:flex;align-items:stretch;background:rgba(20,20,30,.82);border:1px solid rgba(255,255,255,.1);border-radius:22px;backdrop-filter:blur(20px) saturate(160%);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 24px 80px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3);overflow:hidden;position:relative;width:100%}
.st-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,.13);border-radius:22px 22px 0 0;pointer-events:none;z-index:3}
@keyframes st-panelFlash{0%{box-shadow:0 0 0 1px rgba(52,211,153,.0),0 24px 80px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3)}30%{box-shadow:0 0 0 2px rgba(52,211,153,.5),0 24px 80px rgba(52,211,153,.12),0 8px 24px rgba(52,211,153,.08)}100%{box-shadow:0 0 0 1px rgba(0,0,0,.4),0 24px 80px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3)}}
.st-panel.st-confirmed{animation:st-panelFlash .6s cubic-bezier(.4,0,.2,1)}

/* Left zone: card + shelf */
.st-stack-zone{width:290px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding:28px 24px;background:rgba(0,0,0,.18);position:relative}

/* Card */
.st-tcard{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:14px 14px 0 0;border-bottom:none;overflow:hidden;position:relative}
.st-tcard::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,.12);border-radius:14px 14px 0 0;pointer-events:none}
.st-tc-inner{padding:20px 20px 16px}
.st-tc-eyebrow-row{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.st-tc-eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--st-t3)}
.st-tc-tag-inline{display:flex;gap:3px}
.st-tc-tag{font-size:12px;font-weight:700;padding:2px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.08);background:none;color:var(--st-t3);cursor:pointer;font-family:var(--font);transition:all .15s}
.st-tc-tag:hover{border-color:rgba(255,255,255,.16);color:var(--st-t2)}
.st-tc-tag.active{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.16);color:var(--text)}
.st-tc-amt{font-size:38px;font-weight:900;font-family:var(--mono);letter-spacing:-.06em;line-height:.95;margin-bottom:7px}
.st-tc-name{font-size:20px;font-weight:900;letter-spacing:-.04em;color:var(--text);margin-bottom:4px;word-break:break-word}
.st-tc-meta{font-size:12px;color:var(--st-t3);font-family:var(--mono)}

/* Shelf */
.st-shelf{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.09);border-bottom:none;border-radius:0;overflow:hidden}
.st-shelf-hdr{display:flex;align-items:center;justify-content:space-between;padding:7px 14px 5px;border-bottom:1px solid var(--st-bd2)}
.st-shelf-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--st-t3)}
.st-shelf-total{font-size:12px;font-weight:700;font-family:var(--mono);opacity:.6}
.st-shelf-rows{border:1px solid rgba(255,255,255,.09);border-top:none;border-radius:0 0 14px 14px;overflow:visible;background:rgba(0,0,0,.2);max-height:280px;overflow-y:auto}
.st-shelf-rows::-webkit-scrollbar{width:4px}
.st-shelf-rows::-webkit-scrollbar-track{background:transparent}
.st-shelf-rows::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:4px}
.st-shelf-rows::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}
.st-txr-wrap{display:flex;align-items:stretch}
.st-txr{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--st-bd2);flex:1;min-width:0;cursor:grab;position:relative}
.st-txr:active{cursor:grabbing}
.st-txr:last-child{border-bottom:none}
.st-txr-info{flex:1;min-width:0}
.st-txr-date{font-size:12px;color:var(--st-t3);font-family:var(--mono)}
.st-txr-raw{font-size:12px;font-weight:600;font-family:var(--mono);color:var(--st-t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.st-txr-amt{font-size:12px;font-weight:700;font-family:var(--mono);flex-shrink:0}
.st-txr-handle{font-size:12px;color:var(--st-t3);opacity:0;transition:opacity .12s;flex-shrink:0;margin-right:-2px;cursor:grab;user-select:none;padding:0 2px;letter-spacing:-.5px}
.st-txr:hover .st-txr-handle{opacity:.6}
.st-txr-pb{font-size:12px;font-weight:800;width:18px;height:18px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:var(--st-t3);cursor:pointer;font-family:var(--mono);flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s,color .15s,border-color .15s;line-height:1;padding:0}
.st-txr:hover .st-txr-pb{opacity:1}
.st-txr-pb.business{opacity:1;background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.25);color:var(--yellow)}
.st-txr-skip{width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;opacity:0.35;transition:opacity .15s,color .15s;color:var(--st-t3);position:relative}
.st-txr-skip:hover{opacity:1;color:var(--st-t2)}
.st-txr-skip svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.st-txr-skip::after{content:'Skip';position:absolute;right:calc(100% + 5px);top:50%;transform:translateY(-50%);background:rgba(22,22,32,.96);border:1px solid rgba(255,255,255,.1);border-radius:5px;font-size:12px;font-weight:700;font-family:var(--font);color:var(--st-t2);padding:3px 7px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;box-shadow:0 4px 12px rgba(0,0,0,.4);z-index:100}
.st-txr-skip:hover::after{opacity:1}
.st-txr.dragging{opacity:.3;background:rgba(255,255,255,.02)}
@keyframes st-txrSlideOut{0%{max-height:40px;opacity:1;transform:translateX(0)}40%{transform:translateX(6px);opacity:.5}100%{max-height:0;opacity:0;transform:translateX(16px);padding:0;border:none}}
.st-txr.sliding{animation:st-txrSlideOut .32s cubic-bezier(.4,0,.2,1) forwards;overflow:hidden}
.st-stack-hint{display:flex;align-items:center;gap:5px;padding:7px 2px 0;font-size:12px;color:var(--st-t3);line-height:1.4;opacity:.6}
.st-stack-hint svg{width:11px;height:11px;flex-shrink:0;opacity:.7}

/* Panel divider */
.st-panel-div{width:1px;background:rgba(255,255,255,.07);flex-shrink:0;align-self:stretch}

/* Right zone: decision */
.st-dec-zone{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 28px;gap:12px;overflow:hidden;min-width:0}
.st-dec-top{display:flex;align-items:center;gap:10px;flex-shrink:0}
.st-progress-fraction{font-size:13px;font-family:var(--mono);font-weight:700;color:var(--st-t3);white-space:nowrap;flex-shrink:0}
.st-progress-fraction strong{font-size:18px;color:var(--text);font-weight:900}
.st-pf-sep{margin:0 2px;opacity:.4}
.st-progress-mini{flex:1;height:4px;background:rgba(255,255,255,.06);border-radius:2px;overflow:hidden;min-width:60px}
.st-progress-mini-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,rgba(52,211,153,.5),var(--accent));transition:width .4s ease}
.st-meta-done{font-size:12px;color:var(--st-t3);white-space:nowrap;flex-shrink:0}
.st-meta-done strong{font-size:16px;font-weight:900;font-family:var(--mono);color:var(--accent);margin-right:2px}

/* Suggestion pill */
.st-sug-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(52,211,153,.55);flex-shrink:0}
.st-cat-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--st-t3);flex-shrink:0}
.st-sug-pill{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:linear-gradient(135deg,rgba(52,211,153,.1),rgba(52,211,153,.03));border:1.5px solid rgba(52,211,153,.3);cursor:pointer;transition:all .18s;flex-shrink:0}
.st-sug-pill:hover{background:linear-gradient(135deg,rgba(52,211,153,.17),rgba(52,211,153,.06));border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 28px rgba(52,211,153,.1)}
.st-sp-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.st-sp-name{font-size:16px;font-weight:800;color:var(--accent);flex:1}
.st-sp-conf{font-size:12px;color:rgba(52,211,153,.55);font-weight:600}
.st-sp-key{background:var(--accent);color:#000;font-size:12px;font-weight:800;padding:3px 9px;border-radius:6px;font-family:var(--mono);flex-shrink:0}

/* Category grid */
.st-cat-grid{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
.st-cat-row-g{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.st-cg{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:10px;border:1px solid var(--st-bd);background:rgba(255,255,255,.03);cursor:pointer;transition:all .14s,box-shadow .14s;position:relative}
.st-cg:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);transform:translateY(-1px)}
.st-cg.on{background:var(--st-asoft);border-color:rgba(52,211,153,.28)}
.st-cg.sug{border-color:rgba(52,211,153,.2);background:rgba(52,211,153,.06)}
.st-cg.sug .st-cg-name,.st-cg.on .st-cg-name{color:var(--accent)}
.st-cg-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.st-cg-name{font-size:12px;font-weight:700;color:var(--st-t2);text-align:center;line-height:1.2;white-space:nowrap}
.st-cg-tag{font-size:12px;font-weight:800;color:var(--accent);font-family:var(--mono)}
.st-cg.inv{border-color:rgba(52,211,153,.12);background:rgba(52,211,153,.04)}
.st-cg.inv:hover{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.25)}
.st-cg.inv.on{background:var(--st-asoft);border-color:rgba(52,211,153,.35)}
.st-cg.inv .st-cg-name{color:rgba(52,211,153,.7)}
.st-cg.inv.on .st-cg-name{color:var(--accent)}
/* Drop target states */
.st-cg.drop-hover{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.3)!important;transform:scale(1.06)!important;box-shadow:0 0 0 2px rgba(255,255,255,.15),0 6px 20px rgba(0,0,0,.3);z-index:2}
.st-cg.inv.drop-hover{background:rgba(52,211,153,.18)!important;border-color:rgba(52,211,153,.5)!important;box-shadow:0 0 0 2px rgba(52,211,153,.2),0 6px 20px rgba(52,211,153,.15)}
@keyframes st-dropFlash{0%{background:rgba(255,255,255,.22);transform:scale(1.08)}60%{background:rgba(255,255,255,.1);transform:scale(1.02)}100%{background:rgba(255,255,255,.03);transform:scale(1)}}
.st-cg.dropped{animation:st-dropFlash .45s cubic-bezier(.16,1,.3,1) forwards}
.st-cg.inv.dropped{animation:st-dropFlashGreen .45s cubic-bezier(.16,1,.3,1) forwards}
@keyframes st-dropFlashGreen{0%{background:rgba(52,211,153,.28);transform:scale(1.08)}60%{background:rgba(52,211,153,.12);transform:scale(1.02)}100%{background:rgba(52,211,153,.04);transform:scale(1)}}

/* Investment divider */
.st-cat-divider{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-top:4px}
.st-cd-line{flex:1;height:1px;background:rgba(52,211,153,.15)}
.st-cd-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(52,211,153,.5);flex-shrink:0}

/* Command bar */
@keyframes st-cmdGlow{0%{background-position:0% 50%}25%{background-position:50% 100%}50%{background-position:100% 50%}75%{background-position:50% 0%}100%{background-position:0% 50%}}
.st-cmd-wrap{position:relative;background:rgba(10,10,12,.85);border-radius:10px;flex-shrink:0}
.st-cmd-wrap::before{content:'';position:absolute;inset:-2px;border-radius:12px;padding:2px;background:linear-gradient(135deg,rgba(52,211,153,.6),rgba(124,184,255,.55),rgba(167,139,250,.6),rgba(251,191,36,.5),rgba(248,113,113,.45),rgba(52,211,153,.6));background-size:400% 400%;animation:st-cmdGlow 3s ease infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7;transition:opacity .4s}
.st-cmd-wrap:focus-within::before{opacity:1}
.st-cmd-wrap::after{content:'';position:absolute;inset:-10px;border-radius:20px;background:linear-gradient(135deg,rgba(52,211,153,.15),rgba(124,184,255,.13),rgba(167,139,250,.15),rgba(251,191,36,.1),rgba(248,113,113,.08),rgba(52,211,153,.15));background-size:400% 400%;animation:st-cmdGlow 3s ease infinite;filter:blur(16px);pointer-events:none;opacity:.45;transition:opacity .4s}
.st-cmd-wrap:focus-within::after{opacity:.9}
.st-cmd-input{width:100%;padding:13px 52px 13px 38px;font-size:15px;font-family:var(--font);background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text);outline:none;position:relative;z-index:2;box-sizing:border-box}
.st-cmd-input::placeholder{color:var(--st-t3)}
.st-cmd-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--st-t3);pointer-events:none;z-index:3;font-size:14px}
.st-cmd-ghost{position:absolute;left:38px;top:50%;transform:translateY(-50%);font-size:15px;font-family:var(--font);color:rgba(255,255,255,.25);pointer-events:none;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px);z-index:1}
.st-cmd-tab-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .2s;pointer-events:none;display:flex;align-items:center;gap:4px;z-index:3}
.st-cmd-wrap.has-ghost .st-cmd-tab-hint{opacity:1}
.st-cmd-tab-hint kbd{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.2);padding:2px 6px;border-radius:4px;font-family:var(--mono);font-size:12px;font-weight:800;color:var(--accent)}

/* Action row — compact bottom bar */
.st-action-row{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-top:2px}
.st-action-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.03);color:var(--st-t2);font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .14s;white-space:nowrap}
.st-action-btn:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13);color:var(--text)}
.st-action-btn .st-kbd{font-size:12px;padding:1px 5px;margin-right:1px}
.st-action-hint{font-size:12px;color:var(--st-t3);opacity:.45;display:flex;align-items:center;gap:4px;white-space:nowrap}
.st-action-hint .st-kbd{font-size:12px;padding:1px 5px;opacity:.7}
.st-kbd{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border-radius:5px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);font-size:12px;font-weight:800;font-family:var(--mono);color:var(--st-t2)}

/* Shelf drag-active state */
.st-shelf.drag-active{border-color:rgba(255,255,255,.14)}
.st-drag-hint{font-size:12px;color:rgba(255,255,255,.4);font-weight:600;display:none}
.st-shelf.drag-active .st-drag-hint{display:block}
.st-shelf.drag-active .st-shelf-lbl{display:none}

/* Drag ghost */
.st-drag-ghost{position:fixed;pointer-events:none;z-index:9999;background:rgba(26,26,38,.95);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:7px 12px;display:flex;align-items:center;gap:8px;font-family:var(--mono);box-shadow:0 8px 24px rgba(0,0,0,.5);opacity:0;transition:opacity .1s;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-drag-ghost.show{opacity:1}
.st-dg-date{font-size:12px;color:var(--st-t3);flex-shrink:0}
.st-dg-raw{font-size:12px;font-weight:600;color:var(--st-t2);overflow:hidden;text-overflow:ellipsis;flex:1}
.st-dg-amt{font-size:12px;font-weight:700;flex-shrink:0}

/* Ticker bar */
.st-ticker-bar{width:100%;max-width:860px;margin:8px auto 0;background:rgba(0,0,0,.25);border-top:1px solid var(--st-bd);border-bottom:1px solid var(--st-bd);border-radius:8px;padding:0 16px;height:34px;display:flex;align-items:center;overflow:hidden;flex-shrink:0;position:relative;z-index:10}
.st-ticker-bar::before,.st-ticker-bar::after{content:'';position:absolute;top:0;bottom:0;width:48px;pointer-events:none;z-index:2}
.st-ticker-bar::before{left:0;background:linear-gradient(to right,rgba(0,0,0,.35),transparent)}
.st-ticker-bar::after{right:0;background:linear-gradient(to left,rgba(0,0,0,.35),transparent)}
.st-ticker-track{display:flex;align-items:center;gap:6px;overflow:hidden;width:100%;flex-direction:row;justify-content:flex-end}
.st-ticker-empty{font-size:12px;color:var(--st-t3);font-style:italic;white-space:nowrap;padding:0 4px;transition:opacity .3s}
@keyframes st-tickIn{from{opacity:0;transform:translateX(20px) scale(.85)}to{opacity:1;transform:translateX(0) scale(1)}}
.st-tick-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0;border:1px solid transparent;animation:st-tickIn .3s cubic-bezier(.34,1.42,.64,1) both;cursor:default}
.st-tick-pill.confirm{background:var(--st-asoft);border-color:rgba(52,211,153,.2);color:var(--accent)}
.st-tick-pill.invest{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.18);color:rgba(52,211,153,.9)}
.st-tick-pill.skip{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:var(--st-t2)}
.st-tick-pill.ungroup{background:rgba(248,113,113,.07);border-color:rgba(248,113,113,.15);color:rgba(248,113,113,.85)}
.st-tick-pill.drag{background:rgba(124,184,255,.07);border-color:rgba(124,184,255,.15);color:rgba(124,184,255,.85)}
.st-tick-pill.rule{background:rgba(253,211,77,.07);border-color:rgba(253,211,77,.15);color:var(--yellow)}
.st-tick-pill.undo{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07);color:var(--st-t3)}
.st-tick-pill.section{background:rgba(196,181,253,.07);border-color:rgba(196,181,253,.15);color:var(--purple)}
.st-tick-icon{font-size:12px;opacity:.7;flex-shrink:0}
.st-tick-label{max-width:180px;overflow:hidden;text-overflow:ellipsis}
.st-tick-pill:nth-last-child(2){opacity:.7}
.st-tick-pill:nth-last-child(3){opacity:.5}
.st-tick-pill:nth-last-child(4){opacity:.32}
.st-tick-pill:nth-last-child(n+5){opacity:.18}

/* Inbox badge */
.st-inbox-badge{display:none;align-items:center;gap:8px;width:100%;max-width:860px;margin:8px auto 0;padding:0;box-sizing:border-box;flex-shrink:0}
@keyframes st-ibIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.st-inbox-badge.visible{display:flex;animation:st-ibIn .25s cubic-bezier(.34,1.42,.64,1)}
.st-ib-inner{display:flex;align-items:center;gap:8px;padding:6px 12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px}
.st-ib-icon{font-size:12px;opacity:.4}
.st-ib-text{font-size:12px;font-weight:600;color:var(--st-t3)}
.st-ib-count{font-size:12px;font-weight:900;font-family:var(--mono);color:#000;background:var(--st-t3);min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}
.st-ib-count.has-items{background:rgba(248,113,113,.8);color:#fff}
@keyframes st-ibPop{from{transform:scale(.7)}to{transform:scale(1)}}

/* Help bar + panel */
.st-help-bar{display:flex;align-items:center;justify-content:center;gap:0;width:100%;max-width:860px;margin:10px auto 0;cursor:pointer;position:relative;z-index:10;flex-shrink:0;box-sizing:border-box}
.st-help-rule{flex:1;height:1px;background:rgba(255,255,255,.08);transition:background .2s}
.st-help-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--st-t3);padding:0 14px;white-space:nowrap;display:flex;align-items:center;gap:6px;transition:color .2s;user-select:none}
.st-help-label svg{width:13px;height:13px;transition:transform .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}
.st-help-bar:hover .st-help-rule{background:rgba(255,255,255,.16)}
.st-help-bar:hover .st-help-label{color:var(--st-t2)}
.st-help-bar.open .st-help-label svg{transform:rotate(180deg)}
.st-help-panel{width:100%;max-width:860px;margin:0 auto;overflow:hidden;max-height:0;transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .3s ease;opacity:0;box-sizing:border-box;flex-shrink:0}
.st-help-panel.open{max-height:400px;opacity:1}
.st-help-inner{background:rgba(20,20,30,.75);border:1px solid rgba(255,255,255,.08);border-top:none;border-radius:0 0 16px 16px;padding:20px 24px 22px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px 32px}
.st-help-section-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;color:var(--st-t3);margin-bottom:10px}
.st-help-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.st-help-row:last-child{margin-bottom:0}
.st-help-kbd{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:5px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);font-size:12px;font-weight:800;font-family:var(--mono);color:var(--st-t2);flex-shrink:0;min-width:28px;text-align:center}
.st-help-desc{font-size:12px;color:var(--st-t3);line-height:1.5}
.st-help-desc strong{color:var(--st-t2);font-weight:600}
.st-help-tip{font-size:12px;color:var(--st-t3);line-height:1.6;padding-left:10px;border-left:2px solid rgba(255,255,255,.08);margin-bottom:8px}
.st-help-tip:last-child{margin-bottom:0}
.st-help-tip strong{color:var(--st-t2);font-weight:600}

/* Empty state (all done) */
.st-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center;gap:12px}
.st-empty-icon{width:48px;height:48px;border-radius:50%;background:var(--st-asoft);display:flex;align-items:center;justify-content:center}
.st-empty-title{font-size:20px;font-weight:800;color:var(--text)}
.st-empty-sub{font-size:14px;color:var(--st-t2);max-width:320px}

/* Account card last4/meta — inherit card text color for light backgrounds */
.acct-side-panel .asp-bank .asp-bank-last4{color:currentColor!important;opacity:.55}

/* Account card glassy labels — fit text width */
.acct-side-panel .asp-bank .asp-bank-name{flex:none!important;width:fit-content!important;max-width:100%}
.acct-side-panel .asp-cc .asp-cc-name{width:fit-content!important;max-width:55%}

/* Account drag reorder */
.asp-bank[draggable="true"],.asp-cc[draggable="true"]{cursor:grab}
.asp-bank[draggable="true"]:active,.asp-cc[draggable="true"]:active{cursor:grabbing}
.asp-bank.acct-dragging,.asp-cc.acct-dragging{opacity:.3!important;transform:scale(.96)!important}
.asp-drop-bar{height:3px;background:var(--accent);border-radius:2px;margin:0 8px;transition:opacity .15s;opacity:0;pointer-events:none}
.asp-drop-bar.show{opacity:1}


/* ─── v2 Account System ─── */
/* Plan badges */
.plan-badge { padding: 4px 12px; margin: 8px 16px; border-radius: 8px; font-size: 11px; font-weight: 700; text-align: center; text-transform: uppercase; letter-spacing: 0.05em; }
.plan-free { background: var(--surface2); color: var(--text2); }
.plan-trial { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.plan-monthly { background: rgba(124, 184, 255, 0.15); color: #7cb8ff; }
.plan-lifetime { background: rgba(52, 211, 153, 0.15); color: #34d399; }

/* Upgrade modal */
.upgrade-modal-content { max-width: 480px; margin: auto; padding: 32px; }
.plan-card { background: var(--surface); border: 2px solid var(--border); border-radius: 16px; padding: 24px; margin-bottom: 12px; cursor: pointer; transition: border-color 0.2s; }
.plan-card:hover { border-color: var(--green); }
.plan-card.popular { border-color: var(--green); position: relative; }
.plan-card.popular::before { content: 'MOST POPULAR'; position: absolute; top: -10px; left: 20px; background: var(--green); color: #000; font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 4px; }
.plan-price { font-size: 28px; font-weight: 900; font-family: var(--mono); }
.plan-period { font-size: 13px; color: var(--text2); }
.plan-features { margin-top: 12px; font-size: 13px; color: var(--text2); list-style: none; }
.plan-features li { margin: 4px 0; padding-left: 20px; position: relative; }
.plan-features li::before { content: '\2713'; position: absolute; left: 0; color: var(--green); font-weight: 700; }

/* Onboarding steps */
.onboard-step { display: none; animation: fadeIn 0.3s ease; }
.onboard-step.active { display: block; }
.onboard-dots { display: flex; gap: 8px; justify-content: center; margin-bottom: 24px; }
.onboard-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border); }
.onboard-dot.active { background: var(--green); }
.onboard-dot.done { background: var(--green); opacity: 0.5; }

/* Change password / delete account */
.danger-zone { border: 1px solid var(--red); border-radius: 12px; padding: 16px; margin-top: 24px; }
.danger-zone h4 { color: var(--red); margin-bottom: 8px; }

/* ── Cursor: make all interactive elements show pointer cursor ── */
/* Placed at end so it wins over earlier cursor:default class rules */
button:not(:disabled),[onclick]{cursor:pointer}
