:root {
  --ink: #1d1d1f;
  --muted: #6e6e73;
  --line: rgba(60,60,67,.12);
  --paper: #ffffff;
  --canvas: #f5f5f7;
  --navy: #171719;
  --navy-2: #242426;
  --magenta: #e91880;
  --blue: #007aff;
  --cyan: #14c9ca;
  --green: #0ca56b;
  --amber: #d9820f;
  --red: #db3c4b;
  --shadow: 0 18px 55px rgba(0, 0, 0, .08);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", Inter, ui-sans-serif, sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
.hidden { display: none !important; }
.muted { color: var(--muted); }
.mono { font-variant-numeric: tabular-nums; }

.boot-screen { min-height: 100vh; display: grid; place-content: center; text-align: center; color: var(--muted); }
.boot-mark { display: flex; gap: 6px; justify-content: center; margin-bottom: 10px; }
.boot-mark span { width: 16px; height: 34px; border-radius: 6px; transform: skew(-24deg); background: linear-gradient(180deg,var(--magenta),var(--blue)); animation: pulse 1s ease-in-out infinite alternate; }
.boot-mark span:last-child { animation-delay: .18s; }
@keyframes pulse { to { opacity: .35; transform: skew(-24deg) translateY(-4px); } }

.login { min-height: 100vh; display: grid; grid-template-columns: 1.2fr .8fr; background: var(--paper); }
.login-art { padding: clamp(40px,8vw,110px); display: flex; flex-direction: column; justify-content: space-between; color: white; background: radial-gradient(circle at 22% 15%, #214b70 0, transparent 32%), radial-gradient(circle at 80% 80%, rgba(233,24,128,.32), transparent 28%), var(--navy); overflow: hidden; position: relative; }
.login-art:after { content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(255,255,255,.09); border-radius:50%; right:-160px; top:18%; box-shadow:0 0 0 100px rgba(255,255,255,.025),0 0 0 200px rgba(255,255,255,.02); }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 850; letter-spacing: -.04em; font-size: 25px; }
.brand-logo { width: 105px; height: 58px; object-fit: contain; object-position: left center; display:block; }
.brand-stack { display:flex; flex-direction:column; }
.brand-stack small { white-space:nowrap; }
.brand-mark { width: 38px; height: 38px; border-radius: 12px; background: linear-gradient(135deg,var(--magenta),#8748e9 52%,var(--blue)); display:grid; place-content:center; color:white; font-size:18px; font-weight:900; box-shadow: 0 8px 24px rgba(233,24,128,.3); }
.login-art h1 { max-width: 680px; font-size: clamp(44px,5.3vw,76px); line-height: .98; letter-spacing: -.06em; margin: 60px 0 25px; position:relative; z-index:1; }
.login-art p { max-width: 560px; font-size: 18px; line-height:1.6; color:#bdcbd9; position:relative; z-index:1; }
.login-trust { display:flex; gap:26px; color:#8da1b4; font-size:13px; position:relative; z-index:1; }
.login-panel { display:grid; place-content:center; padding:40px; }
.login-card { width:min(420px,90vw); }
.login-card h2 { font-size:32px; letter-spacing:-.04em; margin:0 0 8px; }
.login-card > p { color:var(--muted); margin:0 0 32px; }
.login-card label { display:block; color:#344258; font-size:13px; font-weight:700; margin:18px 0 8px; }
.login-card input { width:100%; border:1px solid #d9e0e8; border-radius:10px; padding:13px 14px; outline:none; transition:.2s; }
.login-card input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(23,107,255,.1); }
.login-card .button { width:100%; margin-top:24px; }
.demo-note { margin-top:22px; padding:13px 15px; background:#f4f7fb; color:#667389; border-radius:10px; font-size:12px; line-height:1.55; }
.form-error { color:var(--red); font-size:13px; min-height:18px; margin-top:12px; }

.shell { display:grid; grid-template-columns: 238px minmax(0,1fr); min-height:100vh; }
.sidebar { position:fixed; inset:0 auto 0 0; width:238px; background:rgba(23,23,25,.96); backdrop-filter:saturate(160%) blur(28px); color:white; padding:25px 16px 18px; display:flex; flex-direction:column; z-index:20; border-right:1px solid rgba(255,255,255,.06); }
.sidebar .brand { padding:0 10px 26px; }
.sidebar .brand-logo { width:112px;height:66px;filter:drop-shadow(0 8px 16px rgba(233,24,128,.16)); }
.sidebar .brand small { font-size:9px; display:block; letter-spacing:.18em; color:#7990a7; margin-top:2px; }
.nav-label { text-transform:uppercase; color:#617a91; font-size:9px; letter-spacing:.15em; font-weight:800; margin:20px 12px 8px; }
.nav { display:flex; flex-direction:column; gap:4px; }
.nav button { color:#aebdcb; border:0; background:transparent; text-align:left; padding:11px 12px; border-radius:9px; display:flex; align-items:center; gap:12px; font-size:14px; font-weight:600; }
.nav button:hover { color:white; background:rgba(255,255,255,.055); }
.nav button.active { color:white; background:linear-gradient(90deg,rgba(23,107,255,.25),rgba(23,107,255,.08)); box-shadow:inset 2px 0 var(--cyan); }
.nav-icon { width:19px; height:19px; display:grid; place-content:center; font-size:16px; }
.nav-count { margin-left:auto; background:rgba(255,255,255,.09); color:#9fb6ca; min-width:23px; text-align:center; border-radius:20px; padding:3px 6px; font-size:10px; }
.sidebar-foot { margin-top:auto; padding:12px 8px 0; border-top:1px solid rgba(255,255,255,.08); }
.user-chip { display:flex; align-items:center; gap:10px; padding:8px 4px; }
.avatar { width:35px; height:35px; border-radius:11px; background:linear-gradient(135deg,#284661,#1b3045); color:#cfe1f1; display:grid; place-content:center; font-size:12px; font-weight:800; flex:0 0 auto; }
.user-chip strong { display:block; font-size:12px; }
.user-chip small { color:#71899e; font-size:10px; }
.logout { border:0; background:transparent; color:#7891a7; font-size:18px; margin-left:auto; padding:4px; }

.main { grid-column:2; min-width:0; }
.topbar { height:68px; background:rgba(250,250,252,.78); backdrop-filter:saturate(180%) blur(24px); border-bottom:1px solid var(--line); display:flex; align-items:center; padding:0 34px; position:sticky; top:0; z-index:10; }
.crumb { font-size:13px; color:var(--muted); }
.crumb strong { color:var(--ink); }
.top-actions { margin-left:auto; display:flex; align-items:center; gap:10px; }
.search-global { border:1px solid var(--line); border-radius:10px; padding:9px 12px; width:220px; color:var(--ink); background:#fafbfc; }
.content { padding:30px 34px 50px; max-width:1600px; margin:auto; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:25px; }
.eyebrow { color:var(--blue); text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:850; margin:0 0 7px; }
.page-head h1 { margin:0; font-size:31px; letter-spacing:-.045em; line-height:1.1; }
.page-head p { color:var(--muted); margin:8px 0 0; font-size:13px; }
.button { border:0; border-radius:11px; padding:10px 14px; background:var(--navy); color:white; font-weight:650; font-size:13px; display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform:translateY(-1px); box-shadow:0 6px 18px rgba(12,27,47,.16); }
.button.primary { background:var(--blue); }
.button.light { color:var(--ink); background:white; border:1px solid var(--line); }
.button.ghost { color:var(--muted); background:transparent; }
.button.danger { color:var(--red); background:#fff0f2; }
.button.small { padding:7px 10px; font-size:12px; }
.button:disabled { opacity:.5; pointer-events:none; }

.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-bottom:22px; }
.metric { background:rgba(255,255,255,.88); backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.9); border-radius:20px; padding:22px; box-shadow:0 8px 30px rgba(0,0,0,.045),0 0 0 1px var(--line); position:relative; overflow:hidden; }
.metric:after { content:""; position:absolute; width:70px;height:70px;border-radius:50%;right:-27px;top:-27px;background:var(--metric,#e8eff8);opacity:.85; }
.metric-label { font-size:11px; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
.metric-value { font-size:28px; font-weight:820; letter-spacing:-.04em; margin-top:10px; }
.metric-detail { font-size:11px; color:var(--muted); margin-top:7px; }
.metric-link { width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer; }
.metric-link:hover { transform:translateY(-2px);box-shadow:0 14px 38px rgba(0,0,0,.08),0 0 0 1px rgba(0,122,255,.2); }
.metric-link:focus-visible { outline:3px solid rgba(0,122,255,.2);outline-offset:2px; }
.metric-arrow { float:right;color:var(--blue);font-weight:750;opacity:0;transition:opacity .16s; }
.metric-link:hover .metric-arrow,.metric-link:focus-visible .metric-arrow { opacity:1; }
.growth-overview { display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:12px;margin:0 0 20px;padding:18px;background:linear-gradient(135deg,#19191c,#2b2b30);color:white;border-radius:22px;box-shadow:0 14px 38px rgba(0,0,0,.13); }
.growth-intro { padding:4px 8px;align-self:center; }
.growth-intro .eyebrow { color:#64d2ff; }
.growth-intro h2 { margin:3px 0 7px;font-size:19px;letter-spacing:-.035em; }
.growth-intro > p:last-child { margin:0;color:#a1a1a6;font-size:10px; }
.growth-card { min-width:0;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px;position:relative; }
.growth-card > span { display:block;color:#aeaeb2;font-size:9px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:13px; }
.growth-card > div { position:absolute;right:12px;top:11px; }
.growth-card > strong { display:block;font-size:19px;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.growth-card > small { display:block;color:#aeaeb2;font-size:9px;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.category-winner > strong { font-size:15px;margin-top:3px; }
.growth-pill { display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:9px;font-style:normal;font-weight:750;white-space:nowrap; }
.growth-pill.up { color:#087b55;background:#dff7ed; }
.growth-pill.down { color:#c83242;background:#ffeaed; }
.growth-pill.neutral { color:#626269;background:#ececf1; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,.75fr); gap:18px; }
.panel { background:rgba(255,255,255,.92); border:1px solid rgba(255,255,255,.92); border-radius:20px; overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,.045),0 0 0 1px var(--line); }
.panel-head { padding:18px 20px 14px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.panel-head h3 { margin:0; font-size:14px; letter-spacing:-.01em; }
.panel-head a,.text-link { color:var(--blue); font-size:12px; font-weight:700; text-decoration:none; cursor:pointer; }

.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; }
th { text-align:left; padding:11px 16px; font-size:9px; text-transform:uppercase; letter-spacing:.09em; color:#8a95a5; background:#fbfcfd; border-bottom:1px solid var(--line); white-space:nowrap; }
td { padding:14px 16px; font-size:12px; border-bottom:1px solid #edf0f4; vertical-align:middle; }
tbody tr { transition:background .15s; }
tbody tr.clickable:hover { background:#f7faff; cursor:pointer; }
tbody tr:last-child td { border-bottom:0; }
.cell-main { font-weight:750; color:#1a2a3f; }
.cell-sub { color:var(--muted); font-size:10px; margin-top:4px; }
.amount { font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.status { display:inline-flex; align-items:center; gap:6px; border-radius:30px; padding:5px 8px; font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.05em; background:#edf1f5; color:#687487; }
.status:before { content:""; width:5px;height:5px;border-radius:50%;background:currentColor; }
.status.paid,.status.accepted { color:var(--green); background:#e7f7f0; }
.status.overdue,.status.declined { color:var(--red); background:#ffedf0; }
.status.sent { color:var(--blue); background:#eaf1ff; }
.status.draft { color:#6c7482; background:#eff1f4; }
.source-pill { display:inline-flex;align-items:center;gap:5px;background:#f0edff;color:#6650c7;border-radius:20px;padding:5px 8px;font-size:10px;font-weight:750;white-space:nowrap; }

.activity-list { padding:4px 18px 10px; }
.activity-item { display:grid; grid-template-columns:32px 1fr; gap:11px; padding:14px 0; border-bottom:1px solid #edf0f4; }
.activity-item:last-child { border-bottom:0; }
.activity-dot { width:30px;height:30px;border-radius:50%;display:grid;place-content:center;background:#edf3ff;color:var(--blue);font-size:11px;font-weight:800; }
.activity-item p { margin:0; font-size:11px; line-height:1.45; }
.activity-item time { color:#9099a7;font-size:9px;display:block;margin-top:4px; }

.toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:16px; }
.toolbar-search { position:relative; min-width:250px; flex:1; max-width:480px; }
.toolbar-search input { width:100%; border:1px solid var(--line); background:white; border-radius:9px; padding:10px 12px 10px 36px; outline:none; }
.toolbar-search span { position:absolute;left:13px;top:10px;color:#91a0af; }
.segmented { display:flex; padding:3px; background:#e9edf2; border-radius:9px; margin-left:auto; }
.segmented button { border:0;background:transparent;color:#798493;padding:6px 9px;border-radius:6px;font-size:12px; }
.segmented button.active { background:white;color:var(--ink);box-shadow:0 1px 5px rgba(0,0,0,.08); }

.card-grid { display:grid; grid-template-columns:repeat(3,minmax(240px,1fr)); gap:15px; }
.record-card { background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);border-radius:20px;padding:20px;min-height:185px;box-shadow:0 7px 25px rgba(0,0,0,.04),0 0 0 1px var(--line);transition:.2s ease;position:relative; }
.record-card:hover { transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d5dfec;cursor:pointer; }
.record-card-top { display:flex;align-items:center;justify-content:space-between;gap:10px; }
.record-card h3 { font-size:15px;margin:19px 0 5px;letter-spacing:-.02em; }
.record-card p { color:var(--muted);font-size:11px;line-height:1.5;margin:0; }
.record-card-foot { position:absolute;bottom:18px;left:19px;right:19px;display:flex;align-items:flex-end;justify-content:space-between; }
.record-card-foot strong { font-size:19px;letter-spacing:-.03em; }
.company-logo { width:38px;height:38px;border-radius:11px;background:#edf3ff;color:var(--blue);display:grid;place-content:center;font-weight:850;font-size:12px; }
.customer-card-grid { padding:18px;gap:16px; }
.customer-card { min-height:255px;padding:22px; }
.customer-card:hover { transform:translateY(-2px);cursor:pointer;box-shadow:var(--shadow);border-color:#d5dfec; }
.customer-card:focus-visible { outline:3px solid rgba(0,122,255,.2);outline-offset:2px; }
.customer-card h3 { margin:20px 0 16px;font-size:17px;line-height:1.3; }
.customer-contact span,.customer-source span,.customer-card-foot small { display:block;color:#76767c;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.07em; }
.customer-contact strong,.customer-source strong { display:block;margin-top:5px;font-size:13px;line-height:1.35; }
.customer-contact p { margin:4px 0 0;color:#5f6066;font-size:12px;line-height:1.45;overflow-wrap:anywhere; }
.customer-source { margin-top:13px; }
.customer-card .record-card-foot { padding-top:14px;border-top:1px solid #dedfe3;align-items:flex-end; }
.customer-card .record-card-foot strong { display:block;margin-top:5px;font-size:21px;line-height:1; }
.customer-card .document-count { text-align:right; }
.customer-card .document-count strong { font-size:16px;font-weight:750; }
.card-disclosure { position:absolute;right:18px;top:103px;color:#a1a1a6;font-size:24px; }
.customer-hero { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:25px 27px;border-radius:20px;background:linear-gradient(135deg,#18181b,#29292e);color:white;box-shadow:0 14px 38px rgba(0,0,0,.12); }
.customer-hero-main { display:flex;align-items:center;gap:16px;min-width:220px; }
.customer-avatar { width:60px;height:60px;border-radius:18px;font-size:16px; }
.customer-hero h2 { margin:9px 0 4px;font-size:21px;letter-spacing:-.035em; }
.customer-hero p { margin:0;color:#aeaeb2;font-size:11px; }
.customer-metrics { display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:8px; }
.customer-metrics > div { padding:13px 14px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.075); }
.customer-metrics span { display:block;color:#aeaeb2;font-size:9px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px; }
.customer-metrics strong { font-size:16px;letter-spacing:-.025em;white-space:nowrap; }
.customer-detail-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px; }
.customer-info-grid { display:grid;grid-template-columns:1fr 1fr;gap:0;padding:8px 20px 20px; }
.customer-info-grid > div { min-height:76px;padding:15px 12px;border-bottom:1px solid var(--line); }
.customer-info-grid span { display:block;margin-bottom:7px;color:#77777e;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:750; }
.customer-info-grid strong { font-size:13px;line-height:1.55; }
.customer-documents > div:last-child { padding:4px 18px 14px; }
.customer-history { margin-bottom:18px; }
.customer-history .panel-head p { margin:4px 0 0;font-size:10px; }
.empty.compact { padding:25px 15px; }
.library-banner { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:25px 27px;border-radius:20px;background:linear-gradient(135deg,#18181b,#2a2a30);color:white;box-shadow:0 14px 38px rgba(0,0,0,.12); }
.library-banner h2 { margin:0;font-size:21px;letter-spacing:-.035em; }
.library-banner p:not(.eyebrow) { margin:7px 0 0;color:#aeaeb2;font-size:12px; }
.document-workspace-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px; }
.document-workspace-grid .panel-head p { margin:4px 0 0;font-size:10px; }
.library-list,.share-list { padding:5px 18px 15px; }
.library-row { display:grid;grid-template-columns:34px 1fr auto 30px;align-items:center;gap:11px;padding:13px 2px;border-bottom:1px solid var(--line); }
.library-row:last-child { border-bottom:0; }
.library-row strong,.share-row strong { display:block;font-size:12px; }
.library-row span,.share-row span:not(.status) { display:block;margin-top:4px;color:var(--muted);font-size:10px; }
.library-row a { color:var(--blue);font-size:10px;font-weight:750;text-decoration:none; }
.share-row { display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:13px 2px;border-bottom:1px solid var(--line); }
.share-row:last-child { border-bottom:0; }
.share-document-picker { margin-top:24px; }
.share-document-picker h3 { margin:0 0 10px;font-size:13px; }
.share-document-picker > label { display:grid;grid-template-columns:20px 34px 1fr;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;cursor:pointer; }
.share-document-picker > label:hover { background:#f7faff;border-color:#cbdcf2; }
.share-document-picker strong { display:block;font-size:12px; }
.share-document-picker small { display:block;margin-top:3px;color:var(--muted);font-size:10px; }
.share-security-note { margin-top:18px;padding:14px 16px;border-radius:12px;background:#f1f6ff;color:#516478;font-size:11px;line-height:1.5; }
.document-portal-page { display:block;padding:35px 20px; }
.document-portal { max-width:850px;margin:auto;background:white;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden; }
.document-portal-head { padding:38px 42px 28px;border-bottom:1px solid var(--line); }
.document-portal-head h1 { margin:0;font-size:29px;letter-spacing:-.045em; }
.document-portal-head > p:last-child { margin:10px 0 0;color:var(--muted);font-size:13px; }
.portal-file-list { padding:12px 28px; }
.portal-file-list a { display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:13px;padding:17px 12px;border-bottom:1px solid var(--line);text-decoration:none; }
.portal-file-list a:last-child { border-bottom:0; }
.portal-file-list strong { display:block;font-size:14px; }
.portal-file-list span { display:block;margin-top:4px;color:var(--muted);font-size:11px; }
.portal-file-list b { color:var(--blue);font-size:11px; }
.portal-security { padding:15px 40px;background:#f5f5f7;color:var(--muted);font-size:10px;text-align:center; }

.empty { padding:55px 25px;text-align:center;color:var(--muted); }
.empty-icon { margin:auto auto 12px;width:45px;height:45px;border-radius:14px;background:#eff3f8;display:grid;place-content:center;font-size:20px; }

.detail-head { display:flex;align-items:flex-start;gap:18px;margin-bottom:20px; }
.back { border:1px solid var(--line);background:white;border-radius:9px;width:38px;height:38px;color:var(--ink);font-size:18px; }
.detail-title { flex:1; }
.detail-title h1 { margin:0;font-size:27px;letter-spacing:-.04em; }
.detail-title p { margin:6px 0 0;color:var(--muted);font-size:12px; }
.detail-actions { display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end; }
.detail-grid { display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start; }
.invoice-paper { background:white;border:1px solid var(--line);border-radius:15px;padding:48px 52px;box-shadow:var(--shadow);min-height:830px; }
.invoice-brand { display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:30px;border-bottom:1px solid var(--line); }
.invoice-logo { display:flex;align-items:center; }
.invoice-logo img { width:132px;height:80px;object-fit:contain;object-position:left center; }
.invoice-company { text-align:right;color:var(--muted);font-size:12px;line-height:1.65; }
.invoice-kicker { margin:34px 0 28px;display:flex;align-items:flex-end;justify-content:space-between; }
.invoice-kicker h2 { font-size:34px;letter-spacing:-.05em;margin:0; }
.invoice-ref { text-align:right; }
.invoice-ref span { color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:5px; }
.invoice-ref strong { font-size:16px; }
.billing-row { display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:30px; }
.bill-block label { display:block;text-transform:uppercase;letter-spacing:.1em;color:#7d8793;font-size:10px;font-weight:850;margin-bottom:10px; }
.bill-block strong { font-size:15px;display:block;margin-bottom:5px; }
.bill-block p { margin:0;color:var(--muted);font-size:12px;line-height:1.6; }
.invoice-meta { display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #d1d1d6;border-radius:9px;overflow:hidden;margin-bottom:28px; }
.invoice-meta div { padding:12px;border-right:1px solid var(--line); }
.invoice-meta div:last-child { border:0; }
.invoice-meta label { display:block;color:#7d8793;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px; }
.invoice-meta strong { font-size:12px;line-height:1.35; }
.partner-project { margin:-8px 0 24px;border:1px solid #cfd2d7;background:#fafafa;border-radius:12px;overflow:hidden; }
.partner-project-title { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #d7d9dd; }
.partner-project-title span { color:var(--ink);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:850; }
.partner-project-title strong { font-size:15px; }
.partner-project-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:0; }
.partner-project-grid > div { min-height:62px;padding:13px 16px;box-shadow:inset -1px -1px #dedfe2; }
.partner-project-grid label { display:block;color:#73777f;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px; }
.partner-project-grid strong { display:block;font-size:12px;line-height:1.4; }
.subject { font-size:12px;color:var(--muted);margin:0 0 25px;padding:13px 15px;border:1px solid #d1d3d7;border-radius:10px;background:#fff; }
.subject strong { color:var(--ink); }
.partner-project .combined-subject { margin:0;border:0;border-top:1px solid #d7d9dd;border-radius:0;background:#fff; }
.invoice-table th { background:var(--navy);color:#c4cbd3;padding:12px 11px;font-size:10px; }
.invoice-table th:not(:last-child) { border-right:1px solid #3c3d42; }
.invoice-table th:first-child { color:white; }
.invoice-table td { padding:16px 11px;font-size:12px;line-height:1.5; }
.invoice-table td:not(:last-child) { border-right:1px solid #d8dade; }
.invoice-table .cell-sub { font-size:11px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;word-break:break-word; }
.invoice-table .desc { width:55%; }
.invoice-financials { border:1px solid #d1d3d7;border-radius:12px;overflow:hidden;margin-bottom:34px;background:white; }
.invoice-financials .invoice-table td { border-bottom:1px solid #e1e2e5; }
.financial-summary { width:390px;margin:0 0 0 auto;padding:18px 18px 16px;border-left:1px solid #d8dade;border-top:1px solid #d8dade;background:#fcfcfd; }
.financial-summary > p { margin:0 0 5px;color:#6e6e73;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em; }
.totals { width:100%;margin:0; }
.totals div { display:flex;justify-content:space-between;align-items:center;padding:11px 2px;font-size:13px;line-height:1.35;color:#55565c;border-bottom:1px solid #dedfe3; }
.totals div strong { color:var(--ink);font-size:13px;font-weight:750; }
.totals .grand { margin:0;padding:13px 2px;color:var(--ink);font-size:14px;font-weight:850; }
.totals .grand strong { font-size:14px;font-weight:850; }
.totals .balance { background:#edf4ff;border:0;border-radius:9px;padding:13px;color:#086de0;font-size:13px;font-weight:850;margin-top:7px; }
.totals .balance strong { color:#086de0;font-size:13px;font-weight:850; }
.card-payment-option { display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 28px;padding:16px 18px;border:1px solid #cfd8e6;border-radius:11px;background:#f7faff; }
.card-payment-option strong { display:block;font-size:13px;margin-bottom:4px; }
.card-payment-option span { display:block;color:var(--muted);font-size:11px;line-height:1.45; }
.card-payment-option .button { flex:0 0 auto;text-decoration:none; }
.terms { border-top:1px solid #d7d9dd;padding-top:20px;color:var(--muted);font-size:11px;line-height:1.65; }
.terms strong { display:block;color:var(--ink);font-size:12px;margin-bottom:6px; }
.paid-stamp { transform:rotate(-7deg);border:2px solid var(--green);color:var(--green);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;border-radius:4px;padding:5px 8px;display:inline-block;margin-top:10px; }

.side-stack { display:flex;flex-direction:column;gap:15px; }
.side-card { background:white;border:1px solid var(--line);border-radius:14px;padding:18px; }
.side-card h3 { margin:0 0 14px;font-size:13px; }
.payment-link-card p { margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.5; }
.payment-link-actions { display:flex;justify-content:flex-end;gap:8px;margin-top:9px; }
.payment-link-actions a { text-decoration:none; }
.collapsible-card summary { display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-size:13px;user-select:none; }
.collapsible-card summary::-webkit-details-marker { display:none; }
.collapse-chevron { width:25px;height:25px;display:grid;place-content:center;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:15px;transition:transform .18s ease; }
.collapsible-card:not([open]) .collapse-chevron { transform:rotate(-90deg); }
.collapsible-card-body { padding-top:14px; }
.share-box { display:flex;gap:7px; }
.share-box input { min-width:0;flex:1;border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--muted);font-size:10px; }
.timeline { position:relative; }
.timeline:before { content:"";position:absolute;left:13px;top:16px;bottom:14px;width:1px;background:var(--line); }
.timeline .activity-item { grid-template-columns:27px 1fr;position:relative; }
.timeline .activity-dot { width:27px;height:27px;background:#f0f3f7;border:3px solid white;box-shadow:0 0 0 1px var(--line);font-size:9px; }
.comment-form { display:flex;gap:7px;margin-top:12px; }
.comment-form input { min-width:0;flex:1;border:1px solid var(--line);border-radius:8px;padding:9px;font-size:11px; }
.doc-row { display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line); }
.doc-row:last-child { border:0; }
.doc-download { min-width:0;flex:1;display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none; }
.doc-icon { width:30px;height:34px;border-radius:7px;background:#ffedf0;color:var(--red);display:grid;place-content:center;font-size:10px;font-weight:800; }
.doc-info { min-width:0;flex:1; }
.doc-info strong { display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px; }
.doc-info small { color:var(--muted);font-size:9px; }
.document-actions { display:flex;align-items:center;justify-content:flex-end;gap:10px; }
.document-remove { width:28px;height:28px;border:1px solid #efc7cd;border-radius:8px;background:#fff7f8;color:#be3144;font-size:17px;line-height:1;cursor:pointer; }
.document-remove:hover { background:#feecef;border-color:#e7aeb8; }

.report-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px; }
.report-filter { display:flex;align-items:flex-end;gap:18px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.9);box-shadow:0 4px 22px rgba(0,0,0,.035),0 0 0 1px var(--line);border-radius:16px;padding:14px 17px;margin-bottom:16px; }
.report-filter label { display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:6px; }
.report-filter select { border:1px solid var(--line);border-radius:8px;background:white;padding:8px 34px 8px 10px;font-size:11px;color:var(--ink); }
.report-filter > span { font-size:11px;color:var(--muted);padding-bottom:9px; }
.report-filter > small { margin-left:auto;color:var(--muted);padding-bottom:9px; }
.chart-panel { padding:20px; }
.chart-panel h3 { font-size:13px;margin:0 0 20px; }
.report-title { display:flex;align-items:center;justify-content:space-between;margin-bottom:18px; }
.report-title h3 { margin:0; }
.chart-legend { display:flex;gap:12px;color:var(--muted);font-size:9px; }
.chart-legend span { display:flex;align-items:center;gap:5px; }
.chart-legend i { width:7px;height:7px;border-radius:2px;background:var(--blue); }
.chart-legend i.collected { background:var(--green); }
.bar-row { width:100%;display:grid;grid-template-columns:95px 1fr 90px 12px;gap:12px;align-items:center;margin:5px 0;padding:9px 8px;font-size:10px;text-align:left;border:0;border-radius:10px;background:transparent;color:var(--ink); }
.bar-track { height:8px;background:#edf1f5;border-radius:9px;overflow:hidden; }
.bar-fill { height:100%;border-radius:9px;background:linear-gradient(90deg,var(--blue),var(--cyan));min-width:3px; }
.bar-row strong { text-align:right;font-size:11px; }
.trend-row { width:100%;display:grid;grid-template-columns:54px 1fr 118px 62px 12px;gap:10px;align-items:center;margin:5px 0;padding:9px 8px;font-size:10px;text-align:left;border:0;border-radius:10px;background:transparent;color:var(--ink); }
.trend-bars { display:flex;flex-direction:column;gap:3px; }
.trend-bar { height:5px;border-radius:5px;background:var(--blue);min-width:2px; }
.trend-bar.collected { background:var(--green); }
.trend-values { text-align:right; }
.trend-values strong { display:block;font-size:10px; }
.trend-values small { display:block;color:var(--muted);font-size:8px;margin-top:2px; }
.trend-row.comparison-month { opacity:.6; }
.chart-drill { cursor:pointer;transition:background .16s ease,transform .16s ease; }
.chart-drill:hover { background:#f2f2f7;transform:translateX(2px); }
.chart-drill:focus-visible { outline:3px solid rgba(0,122,255,.22);outline-offset:1px; }
.chart-drill > i { color:#a1a1a6;font-size:18px;font-style:normal;text-align:right; }
.drill-hint { color:var(--muted);font-size:11px;margin:-5px 0 14px; }
.drill-hint span { display:inline-grid;place-content:center;width:21px;height:21px;border-radius:50%;background:#e8f2ff;color:var(--blue);margin-right:6px; }
.drill-head p:last-child { color:var(--muted);font-size:11px;margin:6px 0 0; }
.drill-summary { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px; }
.drill-summary > div { background:#f5f5f7;border-radius:14px;padding:15px; }
.drill-summary span { display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px; }
.drill-summary strong { font-size:18px;letter-spacing:-.03em; }
.drill-section { margin:0 0 24px; }
.drill-section h3 { font-size:13px;margin:0 0 10px; }
.drill-section .table-wrap { border:1px solid var(--line);border-radius:14px; }
.metric-invoice-table table { min-width:1040px; }
.metric-invoice-table td { vertical-align:top; }
.metric-invoice-table td:last-child { min-width:150px;max-width:220px; }
.comment-preview { max-width:210px;white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.4;color:var(--ink); }
.metric-invoice-table td:last-child small { display:block;margin-top:4px;color:var(--muted);font-size:9px; }
.metric-comments { margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fafbfc; }
.metric-comments-head h3 { margin:2px 0 4px;font-size:14px; }
.metric-comments-head span { color:var(--muted);font-size:10px;line-height:1.45; }
.metric-comments-log { display:grid;gap:7px;margin:13px 0; }
.metric-comments-log:empty { display:none; }
.metric-comments-log > div { padding:9px 11px;border:1px solid #e0e3e7;border-radius:9px;background:white; }
.metric-comments-log strong { font-size:10px; }
.metric-comments-log p { margin:3px 0 0;font-size:11px;line-height:1.4; }
#metric-comment-form { display:grid;grid-template-columns:190px 1fr auto;gap:8px;align-items:stretch; }
#metric-comment-form select,#metric-comment-form textarea { min-width:0;border:1px solid #d7dce2;border-radius:9px;padding:9px 10px;background:white;font:inherit;font-size:11px; }
#metric-comment-form textarea { min-height:62px;resize:vertical; }
.category-report .panel-head { align-items:flex-end; }
.category-report .panel-head .eyebrow { margin-bottom:5px; }
.panel-actions { display:flex;align-items:center;gap:8px; }
.leader-badge { display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;background:#fff6d8;color:#886600;font-size:9px;font-weight:750; }
.rank { display:grid;place-content:center;width:24px;height:24px;border-radius:8px;background:#ededf2;color:var(--muted);font-size:10px;font-weight:800; }
.rank.winner { color:#8a6500;background:#fff1b8; }
.category-row .disclosure { color:#a1a1a6;font-size:18px;text-align:right; }
.collection-meter { display:inline-block;width:54px;height:5px;border-radius:6px;background:#e8e8ed;overflow:hidden;margin-right:5px;vertical-align:middle; }
.collection-meter span { display:block;height:100%;border-radius:6px;background:var(--green); }
.category-row small { color:var(--muted);font-size:9px;white-space:nowrap; }
.report-section { margin-bottom:18px; }

.settings-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:16px; }
.setting-card { background:white;border:1px solid var(--line);border-radius:14px;padding:23px; }
.setting-card h3 { margin:0 0 6px;font-size:14px; }
.setting-card p { color:var(--muted);font-size:11px;line-height:1.55;margin:0 0 18px; }
.security-state { display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);font-size:11px; }
.user-admin { margin-bottom:18px;overflow:hidden; }
.user-admin-head { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px 20px;background:linear-gradient(180deg,#fff,#fbfbfd);border-bottom:1px solid var(--line); }
.user-admin-head h2 { margin:0;font-size:20px;letter-spacing:-.035em; }
.user-admin-head p:not(.eyebrow) { margin:6px 0 0;color:var(--muted);font-size:11px; }
.user-counts { display:flex;gap:8px; }
.user-counts > div { min-width:76px;padding:10px 13px;border-radius:13px;background:#f2f2f7;text-align:center; }
.user-counts strong { display:block;font-size:18px;letter-spacing:-.03em; }
.user-counts span { display:block;margin-top:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em; }
.user-directory { padding:0 10px 10px; }
.user-profile-row { display:grid;grid-template-columns:42px minmax(170px,1.15fr) minmax(190px,1.1fr) minmax(170px,1fr) auto 54px;gap:13px;align-items:center;padding:14px 15px;border-bottom:1px solid var(--line); }
.user-profile-row:last-child { border-bottom:0; }
.profile-avatar { width:38px;height:38px;border-radius:12px;display:grid;place-content:center;background:linear-gradient(145deg,#e6f0ff,#eee8ff);color:#34649c;font-size:11px;font-weight:850;box-shadow:inset 0 0 0 1px rgba(0,122,255,.07); }
.profile-avatar.large { width:54px;height:54px;border-radius:17px;font-size:15px; }
.profile-main,.profile-contact,.profile-location { min-width:0; }
.profile-main strong,.profile-contact strong,.profile-location strong { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px; }
.profile-main span,.profile-contact span,.profile-location span { display:block;margin-top:4px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.profile-main > div { display:flex;align-items:center;gap:7px; }
.you-badge { display:inline-flex!important;margin:0!important;padding:3px 6px;border-radius:999px;background:#e7f2ff;color:var(--blue)!important;font-size:8px!important;font-weight:800;text-transform:uppercase; }
.profile-access { display:flex;align-items:center;gap:6px; }
.role-pill { padding:5px 8px;border-radius:999px;background:#eef2f7;color:#536578;font-size:9px;font-weight:750;white-space:nowrap; }
.role-pill.admin { background:#eee9ff;color:#6748a5; }
.role-pill.finance { background:#e5f6ff;color:#126287; }
.profile-edit { border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:700;padding:7px; }
.profile-edit:hover { text-decoration:underline; }
.profile-form-intro { display:flex;align-items:center;gap:13px;margin-bottom:24px;padding:15px;border-radius:16px;background:linear-gradient(135deg,#f4f8ff,#fbf7ff);border:1px solid #e2eafa; }
.profile-form-intro strong { display:block;font-size:13px; }
.profile-form-intro p { margin:4px 0 0;color:var(--muted);font-size:10px; }
.form-section { margin:0 0 24px;padding:0 0 24px;border-bottom:1px solid var(--line); }
.form-section:last-child { border-bottom:0;margin-bottom:0; }
.form-section h3 { margin:0 0 14px;font-size:12px; }
.field-help { display:block;margin-top:6px;color:var(--muted);font-size:9px; }
.restricted-note { display:flex;align-items:center;gap:13px;margin:18px;padding:18px;border-radius:14px;background:#f5f5f7; }
.restricted-note > span { font-size:24px;color:var(--muted); }
.restricted-note strong { font-size:12px; }
.restricted-note p { margin:4px 0 0;color:var(--muted);font-size:10px; }

.modal-shell { position:fixed;inset:0;z-index:100;display:flex;justify-content:flex-end;background:rgba(6,17,30,.48);backdrop-filter:blur(3px); }
.drawer { width:min(960px,100vw);height:100%;background:white;box-shadow:-20px 0 60px rgba(5,19,34,.18);display:flex;flex-direction:column;animation:slide .22s ease-out; }
@keyframes slide { from { transform:translateX(35px);opacity:.5; } }
.drawer-head { padding:22px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between; }
.drawer-head h2 { font-size:20px;margin:0;letter-spacing:-.03em; }
.close { width:34px;height:34px;border:0;border-radius:9px;background:#f1f3f6;font-size:20px;color:var(--muted); }
.drawer-body { flex:1;overflow:auto;padding:22px 25px; }
.drawer-foot { padding:15px 25px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px; }
.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:15px; }
.field { min-width:0; }
.field.full { grid-column:1/-1; }
.field label { display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#697689;font-weight:800;margin:0 0 7px; }
.field input,.field select,.field textarea { width:100%;border:1px solid #dce2e9;border-radius:8px;padding:10px 11px;background:white;color:var(--ink);font-size:12px;outline:none; }
.field textarea { min-height:75px;resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,107,255,.08); }
.line-builder { margin-top:22px;border-top:1px solid var(--line);padding-top:19px; }
.partner-intake { grid-column:1/-1;margin:6px 0 20px;border:1px solid #d9e8ff;background:linear-gradient(145deg,#f7faff,#faf8ff);border-radius:17px;padding:19px; }
.partner-intake-head { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:15px; }
.partner-intake-head h3 { margin:2px 0 5px;font-size:15px;letter-spacing:-.02em; }
.partner-intake-head p:last-child { margin:0;color:var(--muted);font-size:10px;line-height:1.5; }
.paste-assist { display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-bottom:16px;padding:12px;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:12px; }
.paste-assist textarea { width:100%;min-height:65px;border:0;background:transparent;resize:vertical;font-size:11px;line-height:1.45;outline:0; }
.brief-grid { padding-top:2px; }
.line-builder-head { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px; }
.line-builder-head h3 { margin:0;font-size:12px; }
.line-labels,.line-row { display:grid;grid-template-columns:105px 1fr 1.25fr 90px 78px 105px 32px;gap:7px;margin-bottom:8px;align-items:center; }
.line-labels { color:#778397;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:0 2px; }
.line-row { align-items:start; }
.line-row input,.line-row select,.line-row textarea { width:100%;min-width:0;border:1px solid #dce2e9;border-radius:8px;padding:9px 7px;font:inherit;font-size:11px;background:white; }
.line-row textarea { min-height:58px;line-height:1.45;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere; }
.line-remove { border:0;background:#fff0f2;color:var(--red);border-radius:8px; }
.builder-total { text-align:right;margin:13px 40px 0 0;font-size:13px;font-weight:800; }
.totals-editor { margin:18px 40px 0 auto;width:min(340px,100%);border:1px solid #d3d6da;border-radius:12px;padding:14px 16px;background:#fcfcfd; }
.total-edit-row { display:grid;grid-template-columns:1fr 90px 110px;gap:8px;align-items:center;margin:8px 0;font-size:11px; }
.total-edit-row input,.total-edit-row select { width:100%;border:1px solid #dce2e9;border-radius:8px;padding:8px;font-size:11px;background:white; }
.card-payment-editor { display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;align-items:end;margin:14px 40px 0;padding:15px 16px;border:1px solid #d3d6da;border-radius:12px;background:#f7faff; }
.card-payment-editor h3 { margin:3px 0 4px;font-size:13px; }
.card-payment-editor small { display:block;color:var(--muted);font-size:10px;line-height:1.45; }
.card-payment-editor .field { margin:0; }
.attachment-drop { border:1px dashed #b9c9db;border-radius:10px;padding:17px;text-align:center;background:#fafcff;color:var(--blue);font-size:11px;cursor:pointer; }
.attachment-drop small { color:var(--muted);display:block;margin-top:5px; }
.selected-files { font-size:10px;color:var(--muted);margin-top:8px;line-height:1.5; }
.quick-customer { display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:7px;padding:11px;background:#f5f8fc;border-radius:9px;margin-top:8px; }
.quick-customer input { border:1px solid #dce2e9;border-radius:8px;padding:9px;font-size:11px;min-width:0; }

.toast-region { position:fixed;right:22px;top:20px;z-index:200;display:flex;flex-direction:column;gap:8px; }
.toast { background:var(--navy);color:white;padding:12px 15px;border-radius:10px;box-shadow:0 12px 35px rgba(0,0,0,.2);font-size:12px;animation:toast-in .2s ease-out; }
.toast.error { background:var(--red); }
@keyframes toast-in { from { transform:translateY(-8px);opacity:0; } }

.public-page { min-height:100vh;background:#eef2f6;padding:35px 20px; }
.public-bar { max-width:1020px;margin:0 auto 18px;display:flex;justify-content:space-between;align-items:center; }
.public-bar .brand-logo { width:105px;height:66px;object-position:left center; }
.public-bar p { font-size:11px;color:var(--muted); }
.public-page .invoice-paper { max-width:1020px;margin:auto; }
.public-contact { max-width:1020px;margin:18px auto 0;background:white;border:1px solid var(--line);border-radius:15px;padding:27px 30px;box-shadow:var(--shadow);display:grid;grid-template-columns:.8fr 1.2fr;gap:45px; }
.public-contact h2 { margin:5px 0 7px;font-size:19px;letter-spacing:-.03em; }
.public-contact p { margin:0;color:var(--muted);font-size:11px;line-height:1.55; }
.public-contact label { display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#697689;font-weight:800;margin-bottom:7px; }
.public-contact textarea { width:100%;min-height:90px;border:1px solid #dce2e9;border-radius:9px;padding:11px;resize:vertical;font:inherit;font-size:12px; }
.public-contact textarea:focus { outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,107,255,.08); }
.public-message-actions { display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:9px; }
.public-message-actions span { color:#16795a;font-size:11px;margin-right:auto; }
.report-catalog { display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 18px 18px; }
.report-catalog > div { border:1px solid var(--line);background:#fbfcfe;border-radius:11px;padding:16px; }
.report-catalog h4 { margin:12px 0 6px;font-size:13px; }
.report-catalog p { margin:0;font-size:11px;line-height:1.55;color:var(--muted); }

@media (max-width:1100px) {
  .metric-grid { grid-template-columns:1fr 1fr; }
  .growth-overview { grid-template-columns:1fr 1fr; }
  .card-grid { grid-template-columns:1fr 1fr; }
  .detail-grid { grid-template-columns:1fr; }
  .side-stack { display:grid;grid-template-columns:1fr 1fr; }
  .user-profile-row { grid-template-columns:42px 1fr 1fr auto 52px; }
  .profile-location { display:none; }
  .customer-hero { align-items:flex-start;flex-direction:column; }
  .customer-metrics { width:100%; }
}
@media (max-width:760px) {
  .shell { display:block; }
  .sidebar { width:72px;padding:20px 10px; }
  .sidebar .brand { width:52px;height:48px;overflow:hidden;padding:0 0 16px 0;align-items:flex-start; }
  .sidebar .brand-logo { width:52px;height:52px;flex:0 0 auto;clip-path:inset(0 0 35% 0); }
  .sidebar .brand > div:last-child,.nav-label,.nav button span:not(.nav-icon),.nav-count,.user-chip > div,.logout { display:none; }
  .nav button { justify-content:center;padding:12px; }
  .main { margin-left:72px; }
  .topbar { padding:0 18px; }
  .search-global { display:none; }
  .content { padding:22px 18px 40px; }
  .dashboard-grid,.report-grid,.settings-grid { grid-template-columns:1fr; }
  .card-grid { grid-template-columns:1fr; }
  .page-head { align-items:flex-start; }
  .login { grid-template-columns:1fr; }
  .login-art { display:none; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .invoice-paper { padding:28px 22px; }
  .financial-summary { width:100%;border-left:0; }
  .card-payment-option,.card-payment-editor { grid-template-columns:1fr;flex-direction:column;align-items:stretch; }
  .card-payment-option .button { text-align:center; }
  .card-payment-editor { margin:14px 0 0; }
  .invoice-meta { grid-template-columns:1fr 1fr; }
  .invoice-meta div { border-right:1px solid var(--line);border-bottom:1px solid var(--line); }
  .invoice-meta div:nth-child(even) { border-right:0; }
  .invoice-meta div:last-child { border-bottom:0; }
  .side-stack { display:flex; }
  .detail-head { flex-wrap:wrap; }
  .detail-actions { width:100%;justify-content:flex-start; }
  .line-builder { overflow-x:auto; }
  .drawer { width:100vw; }
  .line-labels,.line-row { min-width:665px;grid-template-columns:92px 120px 140px 78px 72px 92px 28px; }
  .quick-customer { grid-template-columns:1fr; }
  .paste-assist { grid-template-columns:1fr; }
  .partner-project-grid { grid-template-columns:1fr 1fr; }
  .public-contact,.report-catalog { grid-template-columns:1fr;gap:16px; }
  .drill-summary { grid-template-columns:1fr 1fr; }
  .growth-overview { grid-template-columns:1fr; }
  .user-admin-head { align-items:flex-start; }
  .user-profile-row { grid-template-columns:38px 1fr auto; }
  .profile-contact { grid-column:2; }
  .profile-access { grid-column:2; }
  .profile-edit { grid-column:3;grid-row:1; }
  .customer-metrics { grid-template-columns:1fr 1fr; }
  .customer-detail-grid,.document-workspace-grid { grid-template-columns:1fr; }
  .customer-info-grid { grid-template-columns:1fr; }
  #metric-comment-form { grid-template-columns:1fr; }
  .library-banner { align-items:flex-start;flex-direction:column; }
  .share-row { grid-template-columns:1fr auto; }
}

@media print {
  body { background:white; }
  .sidebar,.topbar,.detail-head,.side-stack,.public-bar,.public-contact,.toast-region { display:none !important; }
  .shell,.main,.content,.detail-grid,.public-page { display:block;margin:0;padding:0; }
  .invoice-paper { width:100%;max-width:none;min-height:0;border:0;box-shadow:none;border-radius:0;padding:28px 35px; }
  @page { size:Letter; margin:0.35in; }
}
