@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@300;400;500;600&display=swap');

:root{
  --bg:#f4f2ed;--surf:#fff;--surf2:#f9f8f5;--bord:#e2dfd8;
  --text:#1a1917;--panel-text:#1a1917;--mut:#7a776e;
  --mut-weight:500;--mut-style:normal;--mut-transform:uppercase;--mut-letter-spacing:.06em;
  --grn:#2d5016;--grnl:#e8f0de;
  --red:#b91c1c;--redl:#fee2e2;
  --blu:#1d4ed8;--blul:#dbeafe;
  --amb:#92400e;--ambl:#fef3c7;
  --bdg-grn-bg:#c8e6a0;--bdg-grn-fg:#1a3d0f;--bdg-grn-bd:#5a9e2f;
  --bdg-red-bg:#fca5a5;--bdg-red-fg:#7f1d1d;--bdg-red-bd:#dc2626;
  --bdg-blu-bg:#93c5fd;--bdg-blu-fg:#1e3a8a;--bdg-blu-bd:#2563eb;
  --bdg-amb-bg:#fcd34d;--bdg-amb-fg:#78350f;--bdg-amb-bd:#d97706;
  --bdg-neutral-bg:#d6d3d1;--bdg-neutral-fg:#1c1917;--bdg-neutral-bd:#78716c;
  --bdg-gray-bg:#e7e5e4;--bdg-gray-fg:#44403c;--bdg-gray-bd:#a8a29e;
  --bdg-warn-bg:#fdba74;--bdg-warn-fg:#7c2d12;--bdg-warn-bd:#ea580c;
  --mono:'DM Mono',monospace;--sans:'DM Sans',sans-serif;
  /* Sidebar palette — derived from the panel color in applyAppearance().
     Defaults preserve the original dark sidebar look. */
  --sb-bg:#1a1917;
  --sb-text:#f4f2ed;
  --sb-text-mut:#555555;
  --sb-text-soft:#a09d95;
  --sb-border:#2a2826;
  --sb-hover:#252320;
  --sb-bdg-bg:#2a2826;
  --sb-bdg-text:#777777;
  --sb-input-bg:#1e1c1a;
  --sb-input-bord:#333333;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;font-size:13px}

/* ══ SHELL ══ */
.shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}
.sb{background:var(--sb-bg);color:var(--sb-text);padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.main{overflow-y:auto}
.page{display:none;padding:1.75rem 2rem}.page.on{display:block}

/* ══ SIDEBAR ══ */
.brand{border-bottom:1px solid var(--sb-border);padding-bottom:1.25rem}
.brand strong{display:block;font-size:14px;font-weight:600;color:var(--sb-text);margin-bottom:2px}
.brand span{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--sb-text-mut)}
.nl{font-size:9px;letter-spacing:.16em;text-transform:var(--mut-transform);color:var(--sb-text-mut);font-weight:var(--mut-weight);font-style:var(--mut-style);margin-bottom:.35rem}
.nb{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:12px;font-family:var(--sans);color:var(--sb-text-soft);background:none;border:none;width:100%;text-align:left;transition:all .15s}
.nb:hover{background:var(--sb-hover);color:var(--sb-text)}
.nb.on{background:var(--grn);color:#fff}
.nb i{font-size:14px;width:17px;text-align:center}
.nb .bdg{margin-left:auto;background:var(--sb-bdg-bg);color:var(--sb-bdg-text);font-family:var(--mono);font-size:9px;padding:1px 6px;border-radius:20px}
.nb.on .bdg{background:rgba(255,255,255,.15);color:#fff}
.sb-foot{margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--sb-border)}
.sr{margin-bottom:.6rem}
.sr label{display:block;font-size:10px;color:var(--sb-text-mut);margin-bottom:3px}
.sr input,.sr select{width:100%;padding:6px 8px;background:var(--sb-input-bg);border:1px solid var(--sb-input-bord);border-radius:5px;color:var(--sb-text);font-family:var(--mono);font-size:12px}
.sr input:focus,.sr select:focus{outline:none;border-color:#5a8a2a}

/* ══ PAGE HEADER ══ */
.phead{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:flex-start}
.phead h1{font-size:21px;font-weight:600}
.phead p{color:var(--mut);font-size:12px;margin-top:2px}
.phead-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}

/* ══ BUTTONS ══ */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:7px;font-size:12px;font-family:var(--sans);font-weight:500;cursor:pointer;border:1px solid var(--bord);background:var(--surf);color:var(--panel-text);transition:all .15s;white-space:nowrap}
.btn:hover{background:var(--surf2)}
.btn.pri{background:var(--grn);color:#fff;border-color:var(--grn)}
.btn.pri:hover{background:#243f11}
.btn.dan{background:var(--red);color:#fff;border-color:var(--red)}
.btn.dan:hover{background:#991b1b}
.btn.sml{padding:4px 10px;font-size:11px}
.btn.ico-only{padding:6px 8px}

/* ══ CARDS & TABLES ══ */
.card{background:var(--surf);color:var(--panel-text);border:1px solid var(--bord);border-radius:10px;overflow:hidden;margin-bottom:1rem}
.card-head{background:var(--surf2);border-bottom:1px solid var(--bord);padding:8px 14px;display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.card-head h3{font-size:11px;font-weight:var(--mut-weight);font-style:var(--mut-style);text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing);color:var(--mut)}
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:10px;text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing);color:var(--mut);font-weight:var(--mut-weight);font-style:var(--mut-style);text-align:left;padding:7px 12px;background:var(--surf2);border-bottom:1px solid var(--bord)}
.tbl th.r,.tbl td.r{text-align:right}
.tbl th.c,.tbl td.c{text-align:center}
.tbl td{padding:7px 12px;border-bottom:1px solid var(--bord);font-size:12px;vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--surf2)}
.tbl td input,.tbl td select{width:100%;border:1px solid transparent;border-radius:5px;background:transparent;font-family:var(--sans);font-size:12px;color:var(--panel-text);padding:3px 5px;transition:all .15s}
.tbl td input.mono{font-family:var(--mono);text-align:right}
.tbl td input:hover,.tbl td select:hover{border-color:var(--bord);background:var(--bg)}
.tbl td input:focus,.tbl td select:focus{outline:none;border-color:var(--grn);background:var(--surf)}
.tbl td input.name-field{font-weight:500}
.tbl td input[readonly],.tbl td select:disabled{cursor:default;color:var(--mut)}
.tbl td input[readonly]:hover,.tbl td select:disabled:hover{border-color:transparent;background:transparent}
.tbl td select.lv-est-basic-sel{font-weight:500}
.lv-est-name-cell,.lv-db-item-name-col{vertical-align:top;padding-top:8px!important;padding-bottom:8px!important}
.lv-est-cat-big{font-size:13px;font-weight:600;color:var(--panel-text);line-height:1.3}
.lv-est-cat-sub{font-size:11px;font-weight:500;color:var(--mut);margin-top:3px;padding-left:.85rem;line-height:1.35}
.lv-est-cat-sub::before{content:'↳ ';font-weight:600;opacity:.85}
.lv-est-name-cell select.lv-est-sub-sel,.lv-db-item-name-col select.lv-est-sub-sel{margin-top:6px;width:100%;font-size:11px;font-weight:500}
.lv-est-name-cell select.lv-est-item-sel,.lv-db-item-name-col select.lv-est-item-sel{width:100%;font-weight:400;font-size:11px}
.lv-est-item-part{margin-top:5px;font-size:11px;color:var(--panel-text);font-weight:500}
tr.lv-est-desc-row td{padding:2px 12px 8px!important;border-bottom:1px solid var(--bord)!important;background:var(--surf2)}
tr.lv-est-desc-row .lv-est-desc-input{width:100%;border:none;background:transparent;font-size:11px;color:var(--mut);font-style:italic;padding:2px 4px}
tr.lv-est-desc-row .lv-est-desc-empty{color:var(--mut);font-style:italic;font-size:11px}

/* ══ FORM ══ */
.fg{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}
.fg.g1{grid-template-columns:1fr}
.fg.g3{grid-template-columns:1fr 1fr 1fr}
.fld label{display:block;font-size:10px;color:var(--mut);margin-bottom:3px;font-weight:var(--mut-weight);font-style:var(--mut-style);text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing)}
.fld input,.fld select,.fld textarea{width:100%;padding:7px 10px;border:1px solid var(--bord);border-radius:7px;font-family:var(--sans);font-size:12px;background:var(--surf);color:var(--panel-text);transition:border-color .15s}
.fld textarea{resize:vertical;min-height:52px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--grn)}
.fld.span2{grid-column:1/-1}

/* ══ MODAL ══ */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:100}
.modal-bg.on{display:flex}
.modal{background:var(--surf);color:var(--panel-text);border-radius:12px;padding:1.5rem;width:560px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.modal.modal-sm{width:auto;max-width:min(96vw,460px)}
.modal.modal-md{width:auto;max-width:min(96vw,580px)}
.modal.modal-lg{width:auto;max-width:min(96vw,720px)}
.modal.lv-cust-org-modal{max-width:min(96vw,820px);max-height:min(92vh,900px);overflow:auto}
.lv-cust-sites-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin:1rem 0 .65rem;padding-top:.75rem;border-top:1px solid var(--bord)}
.lv-cust-sites-toolbar strong{display:block;font-size:13px}
.lv-cust-sites-hint{display:block;font-size:11px;color:var(--mut);margin-top:.2rem;max-width:34rem;line-height:1.4}
.lv-cust-sites{display:flex;flex-direction:column;gap:.75rem}
.lv-cust-site-card{border:1px solid color-mix(in srgb,var(--bord) 85%,var(--blu));border-radius:12px;padding:.75rem .85rem;background:color-mix(in srgb,var(--surf2) 55%,var(--surf))}
.lv-cust-site-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}
.lv-cust-site-card-head strong{display:inline-flex;align-items:center;gap:.35rem;font-size:12px}
.lv-cust-site-contacts-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.75rem 0 .45rem;font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.lv-cust-site-contacts{display:flex;flex-direction:column;gap:.55rem}
.lv-cust-contact-row{border:1px solid var(--bord);border-radius:10px;padding:.65rem .7rem;background:var(--surf)}
.lv-cust-contact-row-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem;font-size:11px;font-weight:700;color:var(--mut)}
.lv-cust-contact-fields{margin:0}
.lv-custdb-sites-block{margin-top:.25rem}
.lv-custdb-site-card{border:1px solid var(--bord);border-radius:10px;padding:.7rem .8rem;margin-bottom:.55rem;background:color-mix(in srgb,var(--surf2) 40%,var(--surf))}
.lv-custdb-site-card-head{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:12px}
.lv-custdb-site-notes{font-size:12px;color:var(--mut);margin:.35rem 0;white-space:pre-wrap}
.lv-custdb-site-contacts{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}
.lv-custdb-site-contact{padding:.4rem .5rem;border-radius:8px;background:var(--surf);border:1px solid color-mix(in srgb,var(--bord) 90%,transparent)}
.lv-custdb-site-contact-name{font-size:12px;font-weight:650}
.lv-custdb-site-contact-meta{font-size:11px;color:var(--mut);margin-top:.15rem}
.modal.modal-xl{width:auto;max-width:min(96vw,1080px)}
.print-preview-body{background:var(--bg2,#f6f7fa);border:1px solid var(--bord);border-radius:8px;padding:1rem;max-height:62vh;overflow:auto;margin-bottom:1rem}
/* Shared print layout — Print dialog, Preview modal, and Save-as export */
.lv-print-surface .doc-preview,
.lv-print-surface .inv-stage-block,
body.lv-printing #printArea .doc-preview,
body.lv-printing #printArea .inv-stage-block{
  padding:0.5in!important;
  max-width:100%!important;
  width:100%!important;
  margin:0 auto!important;
  box-shadow:none!important;
  border:none!important;
  border-radius:0!important;
  background:#fff!important;
  color:#1a1917!important;
  font-family:var(--sans);
  font-size:12px;
}
.lv-print-surface .inv-stage-block{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px dashed #ddd}
.lv-print-surface .inv-stage-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0.5in}
.lv-doc-render-host.lv-print-surface{background:#fff}
/* PDF export host: padding comes from PDF page margins (same as @page 0.5in print). */
.lv-doc-render-host.lv-doc-render-print-margins .doc-preview,
.lv-doc-render-host.lv-doc-render-print-margins .inv-stage-block{
  padding:0!important;
}
.modal h2{font-size:16px;font-weight:600;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--bord)}
.modal-foot{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bord)}
.modal-bg.lv-modal-float.on{display:block;overflow:hidden;padding:0}
.modal.lv-modal-float-panel{position:fixed;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;min-width:320px;min-height:240px}
.modal.lv-modal-float-panel > h2{flex-shrink:0;margin:0;padding:1rem 1.5rem .75rem;border-bottom:1px solid var(--bord)}
.modal.lv-modal-float-panel > .lv-catalog-cat-modal-head{flex-shrink:0;margin:0;border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:1px solid var(--bord);padding:10px 12px}
.modal.lv-modal-float-panel .lv-modal-float-body,.modal.lv-modal-float-panel #catalogModalBody,.modal.lv-modal-float-panel .fg{flex:1 1 auto;min-height:0;overflow:auto;padding:1rem 1.5rem}
.modal.lv-modal-float-panel .modal-foot{flex-shrink:0;margin-top:0;padding:1rem 1.5rem}
.modal.lv-modal-float-panel #catalogModalBody{max-height:none}
.lv-modal-drag-bar{cursor:move;touch-action:none;user-select:none}
.lv-modal-resize-br{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;touch-action:none;z-index:12;border-bottom-right-radius:12px;background:linear-gradient(135deg, transparent 50%, color-mix(in srgb, var(--mut) 42%, transparent) 50%)}
.lv-modal-resize-br:hover{background:linear-gradient(135deg, transparent 45%, color-mix(in srgb, var(--grn) 55%, transparent) 45%)}
body.lv-modal-float-dragging,body.lv-modal-float-dragging *{cursor:move!important;user-select:none!important}
body.lv-modal-float-resizing,body.lv-modal-float-resizing *{cursor:nwse-resize!important;user-select:none!important}

/* ══ TAGS / BADGES ══ */
.badge{display:inline-block;font-size:10px;padding:3px 9px;border-radius:20px;font-family:var(--sans);font-weight:700;letter-spacing:.04em;line-height:1.25;border:1.5px solid transparent;box-shadow:0 1px 2px rgba(26,25,23,.08);white-space:nowrap}
.badge.grn{background:var(--bdg-grn-bg);color:var(--bdg-grn-fg);border-color:var(--bdg-grn-bd)}
.badge.red{background:var(--bdg-red-bg);color:var(--bdg-red-fg);border-color:var(--bdg-red-bd)}
.badge.blu{background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd)}
.badge.amb{background:var(--bdg-amb-bg);color:var(--bdg-amb-fg);border-color:var(--bdg-amb-bd)}
.badge.gray{background:var(--bdg-gray-bg);color:var(--bdg-gray-fg);border-color:var(--bdg-gray-bd)}
.badge.warn{background:var(--bdg-warn-bg);color:var(--bdg-warn-fg);border-color:var(--bdg-warn-bd)}

/* ══ SUMMARY CARDS ══ */
.sc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:1.25rem}
.sc{background:var(--surf);border:1px solid var(--bord);border-radius:10px;padding:1rem}
.sc.hi{background:var(--grn);border-color:var(--grn)}
.sc.hi .sc-l{color:rgba(255,255,255,.6)}.sc.hi .sc-v{color:#fff}
.sc-l{font-size:10px;text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing);color:var(--mut);font-weight:var(--mut-weight);font-style:var(--mut-style);margin-bottom:4px}
.sc-v{font-family:var(--mono);font-size:20px;font-weight:500}

/* ══ BREAKDOWN TABLE ══ */
.bkt{background:var(--surf);border:1px solid var(--bord);border-radius:10px;overflow:hidden;margin-bottom:1rem}
.br{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--bord);font-size:12px}
.br:last-child{border-bottom:none}
.br.ch{background:var(--surf2);font-weight:var(--mut-weight);font-style:var(--mut-style);font-size:11px;text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing);color:var(--mut)}
.br.ind{padding-left:28px;color:var(--mut);font-size:11px}
.br.div{border-top:2px solid var(--bord)}
.br.gd{background:var(--grn);color:#fff;font-weight:600;font-size:14px}
.br.gd span:last-child{font-family:var(--mono)}
.bv{font-family:var(--mono);font-size:11px}

/* ══ LOGO ZONE ══ */
.logo-drop{border:2px dashed var(--bord);border-radius:9px;padding:.9rem;text-align:center;cursor:pointer;transition:all .15s;position:relative;overflow:hidden}
.logo-drop:hover,.logo-drop.drag{border-color:var(--grn);background:var(--grnl)}
.logo-drop input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.logo-drop img{max-height:54px;max-width:200px;object-fit:contain;margin:0 auto;display:none}
.logo-drop img.show{display:block}
.ld-hint{font-size:11px;color:var(--mut);margin-top:4px}

/* ══ PROPOSAL & INVOICE PREVIEW ══ */
.doc-preview{background:#fff;border:1px solid var(--bord);border-radius:10px;padding:2.5rem 3rem;max-width:800px;margin:0 auto;font-family:var(--sans);font-size:12px}
.doc-page-shell{display:flex;flex-direction:column;gap:1rem}
.doc-settings-panel{margin-bottom:0;border:1px solid var(--bord);border-radius:10px;background:var(--surf);overflow:hidden}
.doc-settings-panel>summary{list-style:none;cursor:pointer;padding:8px 14px;background:var(--surf2);border-bottom:1px solid var(--bord);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.doc-settings-panel>summary::-webkit-details-marker{display:none}
.doc-settings-panel>summary::after{content:'▾';font-size:12px;color:var(--mut);transition:transform .15s}
.doc-settings-panel:not([open])>summary{border-bottom:none}
.doc-settings-panel:not([open])>summary::after{transform:rotate(-90deg)}
.doc-settings-panel .doc-settings-body{padding:1rem}
.doc-page-preview-wrap{flex:1;min-width:0;width:100%}
#page-proposal .doc-page-preview,#page-invoice .doc-page-preview,
#page-proposal #proposalPreview.doc-page-preview,#page-invoice #invoicePreview.doc-page-preview{
  max-width:none;width:100%;margin:0;min-height:calc(100vh - 11rem);box-sizing:border-box;padding:2.5rem 3rem
}
#page-invoice #invoicePreview.doc-page-preview>.inv-stage-block,
#page-proposal #proposalPreview.doc-page-preview>.doc-preview,
#page-invoice #invoicePreview.doc-page-preview>.doc-preview{
  max-width:none;width:100%;margin:0;border:none;border-radius:0;padding:0;min-height:0;box-shadow:none
}
/* Full-width pages — proposal, invoice, estimator, payments, account */
.page.doc-page-layout,
.page.lv-full-page,
.page.lv-est-page{
  padding:1.25rem 1.25rem 1.75rem;
  max-width:none;
  width:100%;
  box-sizing:border-box;
}
.doc-saved-select{min-width:210px;max-width:min(360px,42vw);padding:7px 10px;border:1px solid var(--bord);border-radius:7px;font-size:12px;background:var(--surf);color:var(--panel-text)}
.lv-doc-link-proj-select{min-width:160px;max-width:min(280px,36vw)}
.doc-saved-toolbar{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.doc-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:2.5px solid #1a1917;position:relative}
.doc-hd-l h2{font-size:19px;font-weight:700}
.doc-hd-l p{font-size:11px;color:#666;margin-top:2px}
.doc-hd-l img.logo{max-height:64px;max-width:200px;object-fit:contain;margin-bottom:8px;display:block}
.doc-hd-brand--left{display:flex;align-items:flex-start;gap:1rem}
.doc-hd-brand--left img.logo{margin-bottom:0;flex-shrink:0}
.doc-hd-brand--center{text-align:center}
.doc-hd-brand--center img.logo{margin-left:auto;margin-right:auto;margin-bottom:10px}
.doc-hd-brand--center h2,.doc-hd-brand--center p{text-align:center}
.doc-hd-brand--stack img.logo{margin-bottom:8px}
.doc-hd--logo-right .doc-hd-r{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.doc-hd-r-logo img.logo{margin-bottom:0;max-height:72px}
.doc-hd-l img.logo.logo-draggable{cursor:move;touch-action:none}
.co-header-preview .doc-hd{margin-bottom:0}
.co-logo-layout-hint{font-size:10px;color:var(--mut);margin:8px 0 0;line-height:1.45}
.doc-hd-r{text-align:right;min-width:150px}
.doc-hd-r strong{display:block;font-size:18px;font-weight:800;color:#1a1917;letter-spacing:.04em}
.doc-hd-r .doc-meta{font-size:11px;color:#666;margin-top:4px}
.doc-section{margin-bottom:1.25rem}
.doc-section h3{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#aaa;margin-bottom:4px}
.doc-section p{font-size:12px;line-height:1.6}
/* line items */
.li-tbl{width:100%;border-collapse:collapse;margin-bottom:.5rem}
.li-tbl th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#888;padding:4px 8px;border-bottom:1px solid #ddd;text-align:right}
.li-tbl th:first-child,.li-tbl th:nth-child(2),.li-tbl th:nth-child(3),.li-tbl th:nth-child(4){text-align:left}
.li-tbl td{padding:5px 8px;border-bottom:1px solid #f0f0f0;font-size:11px;text-align:right;vertical-align:top}
.li-tbl td:first-child,.li-tbl td:nth-child(2),.li-tbl td:nth-child(3),.li-tbl td:nth-child(4){text-align:left}
.li-tbl tr:last-child td{border-bottom:none}
.li-sect-head td{background:#f4f2ed;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#666;padding:4px 8px}
.li-grp-head td{background:#ece9e2;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#555;padding:3px 8px}
.li-sub-head td{background:#f7f6f3;font-weight:500;font-size:10px;color:#666;padding:3px 8px 3px 12px}
/* Proposal / invoice line-item column widths (screen preview + print) */
.li-tbl-doc{table-layout:fixed}
.li-tbl-doc col.li-col-item{width:9%}
.li-tbl-doc col.li-col-desc{width:26%}
.li-tbl-doc col.li-col-vendor{width:8%}
.li-tbl-doc col.li-col-part{width:9%}
.li-tbl-doc col.li-col-uom{width:4%}
.li-tbl-doc col.li-col-qty{width:4%}
.li-tbl-doc col.li-col-mat{width:7%}
.li-tbl-doc col.li-col-laborhrs{width:5%}
.li-tbl-doc col.li-col-labor{width:4.5%}
.li-tbl-doc col.li-col-total{width:8%}
.li-tbl-doc td:nth-child(2){word-wrap:break-word;overflow-wrap:break-word}
.li-tbl-doc td:nth-child(3),.li-tbl-doc td:nth-child(4){word-wrap:break-word;overflow-wrap:break-word}
.li-tbl-doc th:nth-child(8),.li-tbl-doc td:nth-child(8),
.li-tbl-doc th:nth-child(9),.li-tbl-doc td:nth-child(9){padding:4px 2px;font-size:9px;white-space:nowrap}
.li-tbl-doc th:nth-child(8),.li-tbl-doc th:nth-child(9){font-size:8px;letter-spacing:.02em;line-height:1.2}
/* totals */
.doc-tots{border-top:2px solid #1a1917;margin-top:.75rem}
.dt{display:flex;justify-content:space-between;padding:4px 8px;font-size:12px}
.dt.gd{background:#1a1917;color:#fff;border-radius:4px;font-weight:700;font-size:14px;margin-top:4px;padding:8px 10px}
.dt.inv-pay-status{font-size:13px;font-weight:600;padding:6px 10px}
.dt.inv-pay-status span:last-child{font-family:var(--mono);font-size:14px;font-weight:700}
/* progress invoice */
.pi-tbl{width:100%;border-collapse:collapse;margin-bottom:.75rem}
.pi-tbl th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#888;padding:5px 8px;border-bottom:1px solid #ddd;text-align:right}
.pi-tbl th:first-child,.pi-tbl th:nth-child(2){text-align:left}
.pi-tbl td{padding:5px 8px;font-size:11px;text-align:right;border-bottom:1px solid #f0f0f0}
.pi-tbl td:first-child,.pi-tbl td:nth-child(2){text-align:left}
.pi-tbl tr:last-child td{border-bottom:none}
.doc-foot{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ddd;font-size:10px;color:#aaa;line-height:1.6}
.inv-doc-wrap{position:relative}
.inv-paid-stamp{position:absolute;left:50%;top:50%;z-index:6;pointer-events:none;transform:translate(-50%,-50%) rotate(-12deg)}
.inv-paid-stamp-inner{border:5px double #b91c1c;border-radius:12px;padding:14px 30px;color:#b91c1c;background:rgba(255,255,255,0.95);text-align:center;font-weight:800;letter-spacing:.16em;box-shadow:0 3px 14px rgba(185,28,28,.14)}
.inv-paid-stamp-title{font-size:34px;display:block;line-height:1;font-family:var(--sans)}
.inv-paid-stamp-date{font-size:12px;display:block;margin-top:6px;letter-spacing:.05em;font-weight:700;text-transform:none}
.lv-print-surface .inv-paid-stamp,
body.lv-printing #printArea .inv-paid-stamp{print-color-adjust:exact;-webkit-print-color-adjust:exact}

/* ══ PROGRESS INVOICE BUILDER ══ */
.pi-stage-row{display:grid;grid-template-columns:1fr 120px 120px 110px 70px 70px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bord)}
.pi-stage-row .action-badge{justify-content:center;width:100%}
.pi-stage-row:last-child{border-bottom:none}
.pi-stage-row input{border:1px solid var(--bord);border-radius:6px;padding:5px 8px;font-family:var(--sans);font-size:12px;background:var(--surf);color:var(--panel-text);width:100%}
.pi-stage-row input:focus{outline:none;border-color:var(--grn)}
.pi-stage-row select{border:1px solid var(--bord);border-radius:6px;padding:5px 8px;font-size:12px;background:var(--surf);color:var(--panel-text);width:100%}
.pi-stage-row .pct-out{font-family:var(--mono);font-size:11px;color:var(--mut);text-align:right}
.pi-stage-row-head{padding:4px 0 8px 0;font-size:10px;text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing);color:var(--mut);font-weight:var(--mut-weight);font-style:var(--mut-style)}
.pi-stage-row-head span{padding:0 4px}

/* ══ CUSTOMER LIST CARD ══ */
.cust-info{flex:1;min-width:0}
.cust-db-split{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:1rem;align-items:start}
@media(max-width:900px){.cust-db-split{grid-template-columns:1fr}}
.cust-db-split .card{margin:0}
.cust-db-split .cust-detail-card{position:sticky;top:1rem;display:flex;flex-direction:column}
.cust-card .cust-card-main{flex:1;min-width:0;display:flex;align-items:flex-start;gap:.65rem}
.cust-card .cust-sel-cb{flex-shrink:0;margin:0}
.cust-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px 20px;align-items:start}
.cust-detail-row .cust-detail-k{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.cust-detail-row .cust-detail-v{font-size:12px;line-height:1.45;word-break:break-word;color:var(--panel-text)}
.cust-projects-panel{display:flex;flex-direction:column;gap:1rem}
.cust-projects-panel .cust-project-block{overflow:hidden}
.cust-projects-panel .project-current-layout{margin-top:0}
.cust-doc-section{display:flex;flex-direction:column;gap:.5rem}
.cust-doc-section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.cust-doc-section-head h4{margin:0;font-size:12px;font-weight:600;color:var(--panel-text);letter-spacing:.02em}
.cust-doc-count{font-size:10px;font-weight:600;color:var(--mut);background:var(--surf2);border:1px solid var(--bord);padding:2px 8px;border-radius:20px}
.cust-doc-list{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--bord);border-radius:8px;background:var(--surf);overflow:hidden}
.cust-doc-card{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem;border-bottom:1px solid var(--bord);font-size:12px;background:var(--surf)}
.cust-doc-card:last-child{border-bottom:none}
.cust-doc-card:hover{background:var(--surf2)}
.cust-doc-card-main{flex:1;min-width:0}
.cust-doc-title{font-weight:600;font-size:12px;line-height:1.35;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.cust-doc-meta{font-size:11px;color:var(--mut);margin-top:.2rem;line-height:1.4}
.cust-doc-actions{display:flex;flex-wrap:wrap;gap:.35rem;flex-shrink:0;align-items:center}
.cust-doc-empty{padding:1rem;text-align:center;font-size:11px;color:var(--mut);background:var(--surf2);border:1px dashed var(--bord);border-radius:8px}
.cust-doc-group{border-bottom:1px solid var(--bord)}
.cust-doc-group:last-child{border-bottom:none}
.cust-doc-group-head{display:flex;align-items:flex-start;gap:.65rem;padding:.7rem .85rem;background:var(--surf2);border-bottom:1px solid var(--bord)}
.cust-doc-group-body{display:flex;flex-direction:column}
.cust-doc-stage{padding:.55rem .85rem .55rem 1.35rem;border-bottom:1px solid var(--bord);display:flex;align-items:center;gap:.65rem;font-size:11px;background:var(--surf)}
.cust-doc-stage:last-child{border-bottom:none}
.cust-doc-stage:hover{background:var(--surf2)}
.cust-doc-pill{font-size:10px;padding:3px 9px;border-radius:20px;font-weight:700;letter-spacing:.04em;line-height:1.25;border:1.5px solid transparent;white-space:nowrap;box-shadow:0 1px 2px rgba(26,25,23,.08)}
.cust-doc-pill.prop{background:var(--bdg-gray-bg);color:var(--bdg-gray-fg);border-color:var(--bdg-gray-bd)}
.cust-doc-pill.regular{background:var(--bdg-neutral-bg);color:var(--bdg-neutral-fg);border-color:var(--bdg-neutral-bd)}
.cust-doc-pill.progress{background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd)}
.cust-doc-pill.installment{background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd)}
.cust-doc-pill.project-current{background:var(--bdg-grn-bg);color:var(--bdg-grn-fg);border-color:var(--bdg-grn-bd)}
.cust-doc-pill.project-finished{background:var(--bdg-gray-bg);color:var(--bdg-gray-fg);border-color:var(--bdg-gray-bd)}

/* ══ CUSTOMER DATABASE (polished page) ══ */
#page-custdb.page{display:none;flex-direction:column}
#page-custdb.page.on{display:flex}
.lv-custdb-shell{display:flex;flex-direction:column;gap:1rem;max-width:none;width:100%;min-width:0;flex:1}
.lv-custdb-hero{margin-bottom:0}
.lv-custdb-hero .lv-page-hero-stat{border-color:color-mix(in srgb,var(--bord) 85%,var(--blu))}
.lv-custdb-hero .lv-page-hero-stat-accent{border-color:color-mix(in srgb,var(--blu) 35%,var(--bord));background:color-mix(in srgb,var(--blul) 55%,var(--surf))}
.lv-custdb-hero .lv-page-hero-stat-accent strong{color:var(--blu)}
.lv-custdb-hero .lv-page-hero-stat-bid{margin-left:0}
.lv-custdb-page .card{border-radius:12px;box-shadow:0 8px 22px rgba(26,25,23,.04);overflow:hidden}
.lv-custdb-portal-card{border-color:color-mix(in srgb,var(--amb) 18%,var(--bord))}
.lv-custdb-portal-body{padding:1rem 1.15rem 1.15rem}
.lv-custdb-muted{font-size:12px;color:var(--mut);margin:0;line-height:1.5}
.lv-custdb-split.cust-db-split{gap:1.1rem}
.lv-custdb-list-card,.lv-custdb-detail-card{border-color:color-mix(in srgb,var(--blu) 12%,var(--bord))}
.lv-custdb-list-card .lv-custdb-list{max-height:min(72vh,640px);overflow-y:auto;scrollbar-gutter:stable}
.lv-custdb-detail-card.cust-detail-card{min-height:min(480px,62vh)}
.lv-custdb-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;padding:.85rem 1rem;border-bottom:1px solid var(--bord);background:linear-gradient(180deg,var(--surf2),color-mix(in srgb,var(--surf2) 72%,var(--surf)))}
.lv-custdb-search{flex:1;min-width:160px;max-width:100%;padding:8px 11px;border-radius:8px;font-size:12px}
.lv-custdb-select-all{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--panel-text);cursor:pointer;white-space:nowrap}
.lv-custdb-sel-count{font-size:11px;color:var(--mut);font-variant-numeric:tabular-nums;white-space:nowrap}
.cust-card{display:flex;align-items:center;gap:.65rem;padding:.82rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--bord) 88%,transparent);cursor:pointer;transition:background .12s,box-shadow .12s,border-color .12s}
.cust-card:last-child{border-bottom:none}
.cust-card:hover{background:color-mix(in srgb,var(--blul) 28%,var(--surf))}
.cust-card.sel{background:linear-gradient(90deg,color-mix(in srgb,var(--blul) 72%,var(--surf)),var(--surf));border-left:3px solid var(--blu);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blu) 12%,transparent)}
.cust-avatar{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--blul),color-mix(in srgb,var(--blu) 18%,var(--surf)));display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--blu);flex-shrink:0;letter-spacing:.03em;box-shadow:0 1px 2px rgba(26,25,23,.06)}
.cust-card.sel .cust-avatar{background:linear-gradient(145deg,color-mix(in srgb,var(--blu) 22%,var(--surf)),var(--blul));color:var(--blu)}
.cust-name{font-size:13px;font-weight:650;color:var(--panel-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cust-sub{font-size:11px;color:var(--mut);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cust-card-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.cust-card-badge{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid transparent;line-height:1.3}
.cust-card-badge.portal{background:var(--grnl);color:var(--grn);border-color:color-mix(in srgb,var(--grn) 24%,transparent)}
.cust-card-badge.submission{background:var(--ambl);color:var(--amb);border-color:color-mix(in srgb,var(--amb) 24%,transparent)}
.lv-custdb-detail-empty,.cust-detail-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.75rem;text-align:center;color:var(--mut);background:radial-gradient(480px 140px at 50% 18%,color-mix(in srgb,var(--blu) 8%,transparent),transparent 70%)}
.lv-custdb-empty-icon{width:56px;height:56px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--blul);color:var(--blu);font-size:28px;margin-bottom:.85rem;opacity:.85}
.lv-custdb-detail-empty strong{font-size:15px;color:var(--panel-text);margin-bottom:.35rem}
.lv-custdb-detail-empty p{font-size:12px;max-width:26rem;line-height:1.55;margin:0}
.lv-custdb-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;border-bottom:1px solid color-mix(in srgb,var(--blu) 10%,var(--bord));background:linear-gradient(180deg,color-mix(in srgb,var(--blul) 40%,var(--surf2)),var(--surf2))}
.lv-custdb-detail-head-main{display:flex;align-items:flex-start;gap:.85rem;min-width:0;flex:1}
.lv-custdb-detail-avatar{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--blu);background:linear-gradient(145deg,var(--blul),color-mix(in srgb,var(--blu) 16%,var(--surf)));flex-shrink:0}
.lv-custdb-detail-head h3{margin:0;font-size:16px;font-weight:700;color:var(--panel-text);line-height:1.25;word-break:break-word}
.lv-custdb-detail-sub{font-size:11px;color:var(--mut);margin-top:3px;line-height:1.4}
.lv-custdb-detail-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.cust-detail-panel{padding:1rem 1.15rem 1.2rem;flex:1;overflow-y:auto}
.lv-custdb-detail-body{display:block;margin-bottom:0}
.lv-custdb-contact-card{border:1px solid color-mix(in srgb,var(--blu) 14%,var(--bord));border-radius:12px;background:linear-gradient(165deg,color-mix(in srgb,var(--blul) 32%,var(--surf)),var(--surf));padding:1rem 1.05rem;margin-bottom:1rem;box-shadow:0 8px 22px rgba(26,25,23,.04)}
.lv-custdb-contact-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.35rem}
.lv-custdb-contact-col{display:flex;flex-direction:column;gap:1rem;min-width:0}
.lv-custdb-contact-section{min-width:0}
.lv-custdb-contact-section-head{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--blu);margin-bottom:.45rem;padding-bottom:.4rem;border-bottom:1px solid color-mix(in srgb,var(--blu) 16%,var(--bord))}
.lv-custdb-contact-section-head i{font-size:14px;opacity:.9}
.lv-custdb-contact-rows{border:1px solid color-mix(in srgb,var(--bord) 88%,var(--blu));border-radius:10px;background:color-mix(in srgb,var(--surf2) 45%,var(--surf));overflow:hidden}
.lv-custdb-contact-row{display:grid;grid-template-columns:minmax(74px,34%) minmax(0,1fr);gap:.4rem .85rem;align-items:baseline;padding:.55rem .75rem}
.lv-custdb-contact-row+.lv-custdb-contact-row{border-top:1px solid color-mix(in srgb,var(--bord) 82%,transparent)}
.lv-custdb-contact-label{font-size:10px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:.05em;line-height:1.35}
.lv-custdb-contact-row .cust-detail-v{font-size:12px;line-height:1.45;word-break:break-word;color:var(--panel-text)}
.lv-custdb-contact-notes{margin-top:1rem;padding-top:.15rem}
.lv-custdb-contact-notes .cust-detail-v{font-size:12px;line-height:1.55;white-space:pre-wrap;padding:.65rem .75rem;border-radius:10px;border:1px solid color-mix(in srgb,var(--bord) 88%,var(--blu));background:color-mix(in srgb,var(--surf2) 45%,var(--surf))}
@media (max-width:720px){.lv-custdb-contact-cols{grid-template-columns:1fr}}
.lv-custdb-contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:1rem}
.lv-custdb-field{padding:.65rem .75rem;border-radius:10px;border:1px solid color-mix(in srgb,var(--bord) 88%,var(--blu));background:color-mix(in srgb,var(--surf2) 55%,var(--surf));min-height:3.25rem}
.lv-custdb-field-wide{grid-column:1/-1}
.cust-detail-k,.lv-custdb-field .cust-detail-k{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:4px}
.cust-detail-v,.lv-custdb-field .cust-detail-v{font-size:12px;line-height:1.45;word-break:break-word;color:var(--panel-text)}
.lv-custdb-portal-panel{margin-bottom:1rem;padding:.85rem .9rem;border-radius:10px;border:1px dashed color-mix(in srgb,var(--amb) 28%,var(--bord));background:color-mix(in srgb,var(--ambl) 35%,var(--surf))}
.lv-custdb-portal-panel .cust-detail-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.45rem .75rem;padding:.35rem 0}
.lv-custdb-portal-panel .cust-detail-row+.cust-detail-row{border-top:1px solid color-mix(in srgb,var(--amb) 12%,var(--bord))}
.cust-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bord)}
.cust-documents{margin-top:.25rem;padding-top:0;border-top:none;display:flex;flex-direction:column;gap:1rem}
.cust-doc-section-head h4{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.cust-doc-count{font-size:10px;font-weight:700;color:var(--blu);background:var(--blul);border:1px solid color-mix(in srgb,var(--blu) 18%,var(--bord))}
.cust-doc-list{border-radius:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.cust-doc-card{padding:.78rem .95rem;transition:background .12s,transform .12s}
.cust-doc-card:hover{background:color-mix(in srgb,var(--blul) 22%,var(--surf))}
.cust-doc-empty{border-radius:10px;padding:1.1rem}
.lv-custdb-list-empty{padding:2.5rem 1.25rem;text-align:center;color:var(--mut);font-size:12px;line-height:1.55;background:radial-gradient(420px 120px at 50% 0%,color-mix(in srgb,var(--blu) 8%,transparent),transparent 70%)}
.lv-custdb-list-empty .btn{margin-top:.65rem}
.db-sel-col{width:44px;text-align:center;vertical-align:middle}
.db-edit-badge{cursor:pointer;user-select:none}
.db-edit-badge:hover{filter:brightness(.92)}
.action-badge{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:10px;font-size:11px;font-weight:700;letter-spacing:.03em;line-height:1.25;border:1.5px solid transparent;transition:filter .15s,box-shadow .15s;box-shadow:0 1px 2px rgba(26,25,23,.08);text-shadow:0 1px 0 rgba(255,255,255,.28)}
.action-badge i{font-size:12px}
.action-badge:hover{filter:brightness(1.05);box-shadow:0 2px 4px rgba(26,25,23,.12)}
.action-badge.add,.action-badge.save,.action-badge.pay{background:var(--bdg-grn-bg);color:var(--bdg-grn-fg);border-color:var(--bdg-grn-bd)}
.action-badge.edit{background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd)}
.action-badge.view{background:var(--bdg-amb-bg);color:var(--bdg-amb-fg);border-color:var(--bdg-amb-bd)}
.action-badge.del{background:var(--bdg-red-bg);color:var(--bdg-red-fg);border-color:var(--bdg-red-bd)}
.action-badge.neutral{background:var(--bdg-neutral-bg);color:var(--bdg-neutral-fg);border-color:var(--bdg-neutral-bd)}
.action-badge.warn{background:var(--bdg-warn-bg);color:var(--bdg-warn-fg);border-color:var(--bdg-warn-bd)}
.action-badge.disabled{opacity:.45;pointer-events:none;cursor:not-allowed;filter:none;box-shadow:none}
.save-bar .action-badge,.phead-actions .action-badge,.modal-foot .action-badge,.db-list-toolbar .action-badge,.lv-itemsdb-toolbar .action-badge,.cust-list-toolbar .action-badge,.cust-doc-actions .action-badge,.cust-list-actions .action-badge,.lv-im-cat-admin .action-badge,.doc-saved-toolbar .action-badge,.takeoff-plan-badges .action-badge,.pi-stage-row .action-badge{padding:5px 12px;font-size:11px;font-weight:700}
.db-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}
#btnDeleteItemsDb.action-badge.del{background:#fca5a5;color:#450a0a;border-color:#dc2626;font-weight:800;letter-spacing:.04em;text-shadow:none;box-shadow:0 1px 3px rgba(220,38,38,.22)}
#btnDeleteItemsDb.action-badge.del:not(.disabled):hover{filter:brightness(1.04);box-shadow:0 2px 5px rgba(220,38,38,.28)}
#btnDeleteItemsDb.action-badge.del.disabled{opacity:.62;filter:none;box-shadow:none}

/* ══ TABS ══ */
.tabs{display:flex;gap:3px;border-bottom:1px solid var(--bord);margin-bottom:1.25rem}
.tab{padding:6px 14px;font-size:12px;font-weight:500;cursor:pointer;color:var(--mut);border-bottom:2px solid transparent;transition:all .15s;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--sans)}
.tab.on{color:var(--grn);border-bottom-color:var(--grn)}
.tab:hover{color:var(--panel-text)}
.lv-itemsdb-subj-tab-wrap{display:inline-flex;align-items:center;gap:1px;border-bottom:2px solid transparent;margin-bottom:-1px;vertical-align:bottom}
.lv-itemsdb-subj-tab-wrap.on{border-bottom-color:var(--grn)}
.lv-itemsdb-subj-tab-wrap.on .lv-itemsdb-subj-tab-btn{color:var(--grn);border-bottom-color:transparent}
.lv-itemsdb-subj-tab-btn{border-bottom:none!important;padding:6px 8px 6px 14px}
.lv-itemsdb-subj-tab-wrap.lv-itemsdb-subj-tab-editing{padding:2px 4px;min-width:4rem;border-bottom-color:transparent}
.lv-itemsdb-subj-tab-rename{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:0 4px 0 0;padding:0;border:none;border-radius:5px;background:transparent;color:var(--mut);opacity:.7;cursor:pointer;flex-shrink:0}
.lv-itemsdb-subj-tab-rename:hover,.lv-itemsdb-subj-tab-wrap.on .lv-itemsdb-subj-tab-rename{opacity:1;color:var(--grn);background:color-mix(in srgb,var(--grn) 14%,transparent)}
.lv-itemsdb-subj-tab-rename i{font-size:12px;pointer-events:none}
.lv-itemsdb-subj-tab-inp{font:inherit;font-size:12px;font-weight:500;padding:4px 10px;border:2px solid var(--grn);border-radius:6px;min-width:5rem;max-width:12rem;background:var(--surf);color:var(--panel-text);font-family:var(--sans)}
.lv-est-nav-row{display:flex;align-items:stretch;gap:1px;margin-bottom:1px}
.lv-est-nav-row .nb{flex:1;min-width:0}
.lv-est-nav-hide{display:inline-flex;align-items:center;justify-content:center;width:26px;flex-shrink:0;padding:0;border:none;border-radius:7px;background:transparent;color:var(--sb-text-mut);cursor:pointer;opacity:.55}
.lv-est-nav-hide:hover{opacity:1;color:#fca5a5;background:rgba(220,38,38,.15)}
.lv-est-sidebar-hidden{margin:.35rem 0 .25rem;padding:.35rem 0 0;border-top:1px solid var(--sb-border)}
.lv-est-sidebar-hidden .nl{margin-bottom:.25rem!important}
.lv-est-sidebar-restore{display:flex;align-items:center;gap:6px;width:100%;padding:5px 10px;margin-bottom:2px;border:none;border-radius:7px;background:transparent;color:var(--sb-text-soft);font-size:11px;font-family:var(--sans);cursor:pointer;text-align:left}
.lv-est-sidebar-restore:hover{background:var(--sb-hover);color:var(--sb-text)}
.lv-est-combined-total{margin:.45rem 0 .15rem;padding:.65rem .7rem;border:1px solid var(--sb-border);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));font-size:11px;line-height:1.45}
.lv-est-combined-total .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--sb-text-mut);margin-bottom:4px}
.lv-est-combined-total .val{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--sb-text)}
.lv-est-combined-total .subs{font-size:10px;color:var(--sb-text-soft);margin-top:4px}
.takeoff-meas-line-ctrl{display:inline-flex;align-items:center;gap:6px;font-size:11px;margin-left:8px;white-space:nowrap}
.takeoff-meas-line-ctrl input[type=range]{width:72px;accent-color:var(--grn)}
.takeoff-rotate-ctrl{display:inline-flex;align-items:center;gap:4px;margin-left:4px;white-space:nowrap}
.takeoff-rotate-lbl{font-family:var(--mono);font-size:11px;color:var(--mut);min-width:28px;text-align:center}
.lv-itemsdb-hidden-subj-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin:0 0 .65rem;padding:.45rem .65rem;background:var(--surf2);border:1px solid var(--bord);border-radius:8px;font-size:11px;color:var(--mut)}
.lv-itemsdb-hidden-subj-bar .action-badge{font-size:10px;padding:2px 8px}

/* ══ TOAST ══ */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:#1a1917;color:#f4f2ed;padding:.6rem 1rem;border-radius:8px;font-size:12px;z-index:200;opacity:0;transition:opacity .25s;pointer-events:none}
.toast.show{opacity:1}

/* ══ PRINT AREA ══ */
#printArea{display:none}
body.lv-printing #printArea{display:block}
body.lv-printing .shell{display:none!important}
body.lv-printing #printArea .doc-preview{box-shadow:none;border:none;max-width:100%}
body.lv-printing #printArea,body.lv-printing #printArea *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
.inv-stage-block{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px dashed #ddd}
.inv-stage-block:last-child{border-bottom:none}
@media print{
  body.lv-printing{background:#fff}
  #printArea{display:block!important}
  #printArea .doc-preview{box-shadow:none;border:none;padding:1rem;max-width:100%;border-radius:0}
  .inv-stage-block{page-break-after:always}
  .inv-stage-block:last-child{page-break-after:auto}
  /* Keep proposal/invoice line rows intact across page breaks */
  .li-tbl-doc tr,
  .li-tbl-doc tr td,
  .li-tbl-doc tr th{
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .li-tbl-doc tr.li-sect-head,
  .li-tbl-doc tr.li-grp-head,
  .li-tbl-doc tr.li-sub-head{
    break-after:avoid;
    page-break-after:avoid;
  }
  .doc-hd,
  .doc-tots,
  .doc-tots .dt{
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .doc-section{
    break-inside:auto;
    page-break-inside:auto;
  }
}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}
.saved-inv-row{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;border-bottom:1px solid var(--bord);font-size:12px}
.saved-inv-row:last-child{border-bottom:none}
.saved-inv-row:hover{background:var(--surf2)}
.dirty-badge{display:none}
.dirty-badge.on{display:inline-block}
.save-bar{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.save-bar .doc-output-card--toolbar-end{margin-left:auto}
/* Document output card — Print / Preview / Save as (proposal & invoice). */
.doc-output-card{display:inline-flex;align-items:stretch;border:1px solid var(--bord);border-radius:8px;overflow:visible;background:var(--surf);box-shadow:0 1px 3px rgba(0,0,0,.05);flex-shrink:0}
.doc-output-card .doc-output-btn{display:inline-flex;align-items:center;gap:.35rem;border:none;background:var(--surf);color:var(--panel-text);padding:6px 12px;font-size:11px;font-family:var(--sans);cursor:pointer;border-right:1px solid var(--bord);white-space:nowrap;line-height:1.3}
.doc-output-card .doc-output-btn:last-child{border-right:none}
.doc-output-card .doc-output-btn:hover{background:var(--surf2)}
.doc-output-card .doc-output-btn i{font-size:14px;opacity:.85}
.doc-output-card .save-as-dd{position:relative;display:inline-flex;border-right:none}
.doc-output-card .save-as-dd>summary.doc-output-btn{list-style:none;border-right:none}
.doc-output-card .save-as-dd>summary.doc-output-btn::-webkit-details-marker{display:none}
.doc-output-card .save-as-dd>summary.doc-output-btn::after{content:" ▾";font-size:9px;opacity:.7;margin-left:.15rem}
.doc-output-card .save-as-menu{left:auto;right:0;top:calc(100% + 4px)}
/* Standalone "Save as" dropdown (e.g. Payments page). */
.save-as-dd{position:relative;display:inline-block}
.save-as-dd>summary{list-style:none;cursor:pointer}
.save-as-dd>summary::-webkit-details-marker{display:none}
.save-as-dd>summary::after{content:" ▾";font-size:9px;opacity:.7;margin-left:.15rem}
.save-as-menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--surf);border:1px solid var(--bord);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:140px;padding:.3rem;z-index:20}
.save-as-menu button{display:flex;align-items:center;gap:.4rem;width:100%;justify-content:flex-start;border:none;background:transparent;padding:.45rem .55rem;border-radius:6px;font-size:12px;color:var(--ink);cursor:pointer}
.save-as-menu button:hover{background:var(--surf2)}
.save-as-menu button i{font-size:14px;color:var(--mut)}
.phead-actions .save-as-dd>summary.action-badge{display:inline-flex}
.phead-actions .save-as-dd>summary.action-badge::after{content:" ▾";font-size:9px;opacity:.7;margin-left:.15rem}
.co-header-preview{margin-top:0;padding:1rem;background:var(--surf2);border:1px solid var(--bord);border-radius:10px}
.co-header-preview .doc-hd-l{border:none;padding:0;margin:0}
/* ══ COMPANY PAGE ══ */
.lv-company-shell{display:flex;flex-direction:column;gap:1rem;max-width:none;width:100%;flex:1}
.lv-company-hero{margin-bottom:0;border-color:color-mix(in srgb,var(--grn) 22%,var(--bord))}
.lv-company-hero .lv-page-hero-stat{border-color:color-mix(in srgb,var(--bord) 85%,var(--grn))}
.lv-company-hero .lv-page-hero-stat-accent{border-color:color-mix(in srgb,var(--grn) 35%,var(--bord));background:color-mix(in srgb,var(--grnl) 55%,var(--surf))}
.lv-company-hero .lv-page-hero-stat-accent strong{color:var(--grn)}
.lv-company-page .card{border-radius:12px;box-shadow:0 8px 22px rgba(26,25,23,.04);overflow:hidden;border-color:color-mix(in srgb,var(--grn) 12%,var(--bord))}
.lv-company-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;align-items:start}
@media(max-width:980px){.lv-company-grid{grid-template-columns:1fr}}
.lv-company-profile-card,.lv-company-header-card{grid-column:1}
.lv-company-logo-card,.lv-company-preview-card,.lv-company-email-card{grid-column:2}
@media(max-width:980px){.lv-company-profile-card,.lv-company-logo-card,.lv-company-header-card,.lv-company-preview-card,.lv-company-email-card{grid-column:1}}
.lv-company-email-card{grid-column:1/-1;border-color:color-mix(in srgb,var(--amb) 16%,var(--bord))}
.lv-company-email-intro{margin-bottom:.85rem}
.lv-company-check{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--panel-text);cursor:pointer;margin:0}
.lv-company-check input{margin:0}
.lv-send-doc-hint{font-size:11px;color:var(--mut);line-height:1.5;margin:0 0 .85rem}
.lv-send-doc-hint a{color:var(--grn);font-weight:600;text-decoration:none}
.lv-send-doc-hint a:hover{text-decoration:underline}
.lv-send-doc-modal textarea{min-height:7rem;resize:vertical}
.lv-company-smtp-status{font-size:11px;line-height:1.5;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--bord);background:var(--surf2);color:var(--mut);min-height:2.5rem}
.lv-company-smtp-status-pending{border-color:color-mix(in srgb,var(--amb) 24%,var(--bord));color:var(--panel-text)}
.lv-company-smtp-status-ok{border-color:color-mix(in srgb,var(--grn) 28%,var(--bord));background:color-mix(in srgb,var(--grnl) 45%,var(--surf2));color:var(--grn)}
.lv-company-smtp-status-err{border-color:color-mix(in srgb,var(--red) 28%,var(--bord));background:color-mix(in srgb,var(--redl) 45%,var(--surf2));color:var(--red)}
.lv-company-nas-update{margin-top:.35rem;padding:.85rem 1rem;border-radius:8px;border:1px dashed color-mix(in srgb,var(--amb) 35%,var(--bord));background:color-mix(in srgb,var(--amb) 8%,var(--surf2))}
.lv-company-nas-steps{margin:.5rem 0 0 1.1rem;padding:0;font-size:11px;line-height:1.55;color:var(--panel-text)}
.lv-company-nas-steps li{margin:.35rem 0}
.lv-proposal-revise-hint{margin:0 0 .65rem;padding:.55rem .75rem;font-size:11px;line-height:1.45;color:var(--panel-text);background:color-mix(in srgb,var(--blu) 10%,var(--surf2));border:1px solid color-mix(in srgb,var(--blu) 28%,var(--bord));border-radius:8px}
.lv-company-card-body{padding:1rem 1.15rem 1.15rem}
.lv-company-fg{gap:.85rem 1rem}
.lv-company-field-note,.lv-company-range-note{font-size:11px;color:var(--mut);line-height:1.45;margin:0}
.lv-company-range-note{margin-top:4px}
.lv-company-logo-body{display:flex;flex-direction:column;gap:.75rem}
.lv-company-logo-drop{min-height:168px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--grn) 24%,var(--bord));background:radial-gradient(420px 120px at 50% 0%,color-mix(in srgb,var(--grn) 8%,transparent),transparent 70%),var(--surf2)}
.lv-company-logo-drop.drag{border-color:var(--grn);background:color-mix(in srgb,var(--grnl) 55%,var(--surf2))}
.lv-company-logo-hint-icon{font-size:28px;color:var(--mut)}
.lv-company-logo-hint-text{font-size:12px;font-weight:500;margin-top:6px;color:var(--panel-text)}
.lv-company-logo-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}
.lv-company-logo-fname{font-size:11px;color:var(--mut);font-family:var(--mono);word-break:break-all}
.lv-company-preview-pane{background:linear-gradient(165deg,color-mix(in srgb,var(--grnl) 28%,var(--surf2)),var(--surf2));border-color:color-mix(in srgb,var(--grn) 16%,var(--bord))}
.lv-company-preview-hint{margin-top:.85rem;margin-bottom:0}
/* ══ TAKEOFF ══ */
.takeoff-layout{display:grid;grid-template-columns:220px 1fr 260px;gap:1rem;min-height:calc(100vh - 120px)}
.takeoff-side,.takeoff-panel{background:var(--surf);border:1px solid var(--bord);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.takeoff-side-head,.takeoff-panel-head{padding:8px 12px;background:var(--surf2);border-bottom:1px solid var(--bord);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.takeoff-plan-list{flex:1;overflow-y:auto;padding:.35rem}
.takeoff-plan-item{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;border-radius:7px;font-size:12px;border:1px solid transparent;margin-bottom:4px}
.takeoff-plan-item-main{flex:1;min-width:0;cursor:pointer}
.takeoff-plan-item:hover{background:var(--surf2)}
.takeoff-plan-item.on{background:var(--grnl);border-color:var(--grn)}
.takeoff-plan-item .sub{font-size:10px;color:var(--mut);margin-top:2px}
.takeoff-plan-badges{display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.takeoff-plan-badges .action-badge{justify-content:center;min-width:52px}
.takeoff-plan-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px 4px}
.takeoff-plan-head .takeoff-plan-badge.add{width:auto;padding:0 8px;font-size:11px;font-weight:700;gap:4px}
.takeoff-tools{display:flex;flex-wrap:wrap;gap:4px;padding:8px}
.takeoff-tools .btn{padding:6px 10px;font-size:11px}
.takeoff-tools .btn.on{background:var(--grn);color:#fff;border-color:var(--grn)}
.takeoff-panel.center{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;overflow:visible}
.takeoff-viewport{position:relative;flex:1 1 0;overflow:scroll;background:#525252;height:0;min-height:380px;min-width:0;width:100%;display:flex;align-items:flex-start;justify-content:flex-start;scrollbar-width:auto;contain:size layout}
.takeoff-viewport.is-fit{overflow:auto;align-items:center;justify-content:center}
.takeoff-viewport::-webkit-scrollbar{width:14px;height:14px}
.takeoff-viewport::-webkit-scrollbar-track{background:#3a3a3a}
.takeoff-viewport::-webkit-scrollbar-corner{background:#3a3a3a}
.takeoff-viewport::-webkit-scrollbar-thumb{background:#888;border:2px solid #3a3a3a;border-radius:8px}
.takeoff-viewport::-webkit-scrollbar-thumb:hover{background:#aaa}
.takeoff-viewport-inner{position:relative;display:block;flex-shrink:0}
.takeoff-viewport.is-panning{cursor:grabbing!important}
.takeoff-viewport.is-panning .takeoff-overlay{cursor:grabbing!important}
.takeoff-viewport.takeoff-file-drag,.takeoff-plan-list.takeoff-file-drag{outline:2px dashed color-mix(in srgb,var(--grn) 70%,#fff);outline-offset:-4px;background:color-mix(in srgb,var(--grn) 12%,transparent)}
#page-takeoff #takeoffRoot{overflow-x:auto}
#page-takeoff .takeoff-layout{min-width:min-content}
.takeoff-scale-wrap{position:relative;display:inline-flex}
.takeoff-scale-popover{position:fixed;width:320px;max-width:calc(100vw - 16px);background:var(--surf);border:1px solid var(--bord);border-radius:9px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:12px;font-size:11px;z-index:10050}
.takeoff-scale-popover[hidden]{display:none}
.takeoff-scale-popover .sg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.takeoff-scale-popover label{display:block;font-size:10px;color:var(--mut);margin-bottom:3px;text-transform:uppercase;letter-spacing:.05em}
.takeoff-scale-popover input,.takeoff-scale-popover select{width:100%;padding:6px 8px;border:1px solid var(--bord);border-radius:6px;font-size:12px}
.takeoff-scale-modes{display:flex;gap:4px;margin-bottom:8px}
.takeoff-scale-modes button{flex:1;padding:6px 8px;font-size:11px;border:1px solid var(--bord);border-radius:6px;background:var(--surf);cursor:pointer}
.takeoff-scale-modes button.on{background:var(--grn);color:#fff;border-color:var(--grn)}
.takeoff-calib-hint{font-size:11px;color:var(--mut);margin:6px 0;line-height:1.4}
.takeoff-calib-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.takeoff-viewport canvas.pdf-canvas{display:block}
.takeoff-overlay{position:absolute;left:0;top:0;pointer-events:auto;cursor:crosshair}
.takeoff-bar{display:flex;align-items:center;gap:.5rem;padding:6px 10px;background:var(--surf2);border-bottom:1px solid var(--bord);flex-wrap:wrap;font-size:11px;flex-shrink:0;overflow:visible;max-width:100%}
.takeoff-preview-modal{position:fixed;inset:0;z-index:12000;background:rgba(20,20,18,.55);display:flex;align-items:flex-start;justify-content:center;padding:2vh 2vw;overflow:auto}
.takeoff-preview-modal[hidden]{display:none!important}
.takeoff-preview-dialog{width:min(1100px,100%);margin:auto;background:#fff;color:#1a1917;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.28);overflow:hidden}
.takeoff-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #e5e5e5;background:#f7f6f3;position:sticky;top:0;z-index:2}
.takeoff-preview-titles{display:flex;flex-direction:column;gap:2px;min-width:0}
.takeoff-preview-titles strong{font-size:14px}
.takeoff-preview-titles span{font-size:11px;color:#666}
.takeoff-preview-actions{display:flex;gap:8px;flex-shrink:0}
.takeoff-preview-body{padding:16px;background:#fff}
.takeoff-preview-img{display:block;width:100%;height:auto;border:1px solid #e8e8e8;background:#fafafa}
.takeoff-preview-sec{margin-top:16px}
.takeoff-preview-sec h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#666}
.takeoff-preview-tbl{width:100%;border-collapse:collapse;font-size:12px}
.takeoff-preview-tbl th,.takeoff-preview-tbl td{border-bottom:1px solid #ececec;padding:7px 8px;text-align:left}
.takeoff-preview-tbl th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#777}
.takeoff-preview-tbl td.num{width:2.5rem;font-weight:700;font-family:var(--mono)}
.takeoff-preview-tbl td.val{font-family:var(--mono);white-space:nowrap}
.takeoff-preview-tbl .swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:middle;border:1px solid rgba(0,0,0,.15)}
.takeoff-preview-empty{font-size:12px;color:#777;margin:0}
.takeoff-preview-ft{margin-top:14px;font-size:10px;color:#888}
body.takeoff-preview-open{overflow:hidden}
@media print{
  body.takeoff-preview-open > *:not(#takeoffPreviewModal){display:none!important}
  body.takeoff-preview-open #takeoffPreviewModal{position:static;inset:auto;background:#fff;padding:0;display:block!important;overflow:visible}
  body.takeoff-preview-open .takeoff-preview-dialog{box-shadow:none;border-radius:0;width:100%}
  body.takeoff-preview-open .takeoff-preview-toolbar{display:none!important}
  body.takeoff-preview-open .takeoff-preview-body{padding:0}
  body.takeoff-preview-open .takeoff-preview-img{border:none}
}
.takeoff-coord-bar{flex-shrink:0}
.takeoff-layout.takeoff-popout-mode{height:calc(100vh - 72px);min-height:0;min-width:0;max-width:100%;overflow:hidden}
.takeoff-layout.takeoff-popout-mode .takeoff-panel-popout-center{min-height:0;min-width:0;overflow:hidden;max-width:100%;height:100%}
.takeoff-layout.takeoff-popout-mode .takeoff-panel-popout-center .takeoff-bar{position:relative;z-index:25;background:var(--surf2);width:100%;max-width:100%}
.takeoff-layout.takeoff-popout-mode .takeoff-viewport{min-height:0;min-width:0;height:0;flex:1 1 0;width:100%;max-width:100%}
.takeoff-meas-panel{min-height:0;max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden}
.takeoff-meas-list{flex:1;min-height:60px;max-height:min(200px,26vh);overflow-y:auto;font-size:11px}
.takeoff-speakers-section{border-top:2px solid var(--bord);display:flex;flex-direction:column;flex-shrink:0;min-height:0;background:var(--surf)}
.takeoff-speakers-section .takeoff-speakers-head{border-top:none}
.takeoff-speakers-list{max-height:min(160px,22vh)}
.takeoff-speakers-actions{padding:8px;border-top:1px solid var(--bord);display:flex;gap:6px;flex-shrink:0}
.takeoff-speakers-section .takeoff-point-editor{border-bottom:1px solid var(--bord)}
.takeoff-speaker-positions{border-bottom:1px solid var(--bord);padding:8px 10px;background:var(--surf2);font-size:11px;flex-shrink:0}
.takeoff-speaker-positions[hidden]{display:none!important}
.takeoff-spk-pos-head{font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-bottom:6px}
.takeoff-spk-pos-table-wrap{overflow-x:auto}
.takeoff-spk-pos-table{width:100%;border-collapse:collapse;font-size:10px}
.takeoff-spk-pos-table th,.takeoff-spk-pos-table td{padding:4px 6px;border-bottom:1px solid var(--bord);text-align:left;white-space:nowrap}
.takeoff-spk-pos-table th{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:600}
.takeoff-spk-pos-table .mono{font-family:var(--mono)}
.takeoff-spk-pos-start td{color:var(--mut);font-style:italic}
.takeoff-spk-dist-ref{color:var(--mut);font-size:9px;white-space:nowrap}
.takeoff-spk-run{color:var(--grn);font-weight:600}
.takeoff-export-edit{flex:1;min-height:240px;border-top:1px solid var(--bord);background:var(--surf2);display:flex;flex-direction:column;overflow:hidden}
.takeoff-export-edit-head{padding:8px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);border-bottom:1px solid var(--bord);flex-shrink:0}
.takeoff-export-edit-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.takeoff-export-edit.is-empty .takeoff-export-preview-wrap,.takeoff-export-edit.is-empty .takeoff-export-controls{opacity:.55;pointer-events:none}
.takeoff-export-preview-wrap{margin:8px 8px 0;border:1px solid var(--bord);border-radius:8px;overflow:auto;background:#e8e6e0;flex-shrink:0;height:min(200px,28vh);min-height:100px;max-height:min(520px,58vh)}
.takeoff-export-preview-head{padding:8px 10px;font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--mut);background:#f9f8f5;border-bottom:1px solid var(--bord);position:sticky;top:0;z-index:1}
.takeoff-sb-preview-size{font-weight:400;text-transform:none;margin-left:6px;color:var(--grn)}
.takeoff-export-preview-canvas{display:block;width:100%;height:auto;cursor:grab;touch-action:none}
.takeoff-export-preview-canvas:active{cursor:grabbing}
.takeoff-export-resize{flex-shrink:0;height:10px;margin:4px 8px 0;border-radius:5px;background:var(--bord);cursor:ns-resize;touch-action:none;position:relative}
.takeoff-export-resize::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:3px;border-radius:2px;background:var(--mut);opacity:.55}
.takeoff-export-resize:hover{background:var(--grnl)}
.takeoff-export-resize:hover::after{opacity:.9}
.takeoff-export-controls{flex:1;min-height:140px;overflow-y:auto;padding:10px;font-size:10px;color:var(--mut);-webkit-overflow-scrolling:touch}
.takeoff-export-hint{margin:0 0 8px;font-size:10px;line-height:1.4;color:var(--mut)}
.takeoff-sb-val{float:right;font-family:var(--mono);color:var(--panel-text);font-weight:600}
body.takeoff-export-resizing,body.takeoff-export-resizing *{cursor:ns-resize!important;user-select:none!important}
.takeoff-meas-row{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--bord);cursor:pointer}
.takeoff-meas-row:hover{background:var(--surf2)}
.takeoff-meas-row.on{background:var(--grnl)}
.takeoff-meas-cb{flex-shrink:0;width:14px;height:14px;margin:0;accent-color:var(--grn);cursor:pointer}
.takeoff-num-badge{flex-shrink:0;width:20px;height:20px;border-radius:50%;font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--mono)}
.takeoff-meas-lbl{flex:1;min-width:0}
.takeoff-meas-val{font-family:var(--mono);font-weight:500;margin-left:auto}
.takeoff-meas-length-row{align-items:flex-start}
.takeoff-meas-body{flex:1;min-width:0}
.takeoff-meas-detail{width:100%;padding:2px 0 4px 26px;margin-top:4px;font-size:10px;font-family:var(--mono);line-height:1.45;color:var(--mut)}
.takeoff-meas-detail .takeoff-meas-total{color:var(--panel-text);font-size:12px;margin-top:3px;font-weight:600}
.takeoff-meas-detail .takeoff-meas-total strong{color:var(--grn)}
.takeoff-meas-seg{white-space:nowrap}
.takeoff-meas-linear-total{font-family:var(--mono);font-size:12px;margin-top:4px;color:var(--panel-text)}
.takeoff-meas-linear-total strong{font-weight:600;color:var(--grn)}
.takeoff-meas-draft-title{font-weight:600;color:var(--panel-text);margin-bottom:4px}
.takeoff-meas-draft{padding:8px 10px;border-top:1px solid var(--bord);font-size:11px;color:var(--mut);background:var(--grnl)}
.takeoff-meas-draft strong{color:var(--grn);font-family:var(--mono)}
.takeoff-meas-need-scale{color:var(--amb);font-style:italic}
.takeoff-meas-row.has-length{align-items:flex-start;flex-wrap:wrap}
.takeoff-meas-summary{padding:10px 12px;border-top:2px solid var(--bord);font-size:11px;background:var(--surf2);flex-shrink:0}
.takeoff-meas-summary-page{border-top:2px solid var(--grn)}
.takeoff-meas-summary-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-bottom:4px}
.takeoff-meas-summary-val{font-family:var(--mono);font-size:14px;color:var(--panel-text)}
.takeoff-meas-summary-val strong{color:var(--grn);font-weight:700}
.takeoff-meas-summary-plan{margin-top:0;border-top:1px solid var(--bord)}
.takeoff-export-controls label{display:block;margin-bottom:8px}
.takeoff-export-controls input[type=range]{accent-color:var(--grn);width:100%;display:block;margin-top:4px}
.takeoff-meas-val-total{color:var(--grn);font-weight:600}
.takeoff-meas-ref{font-family:var(--mono);font-size:10px;color:var(--mut);min-width:18px}
.takeoff-meas-pt-hint{font-size:10px;color:var(--mut);margin-top:2px}
.takeoff-coord-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:var(--grnl);border-bottom:2px solid var(--grn);font-size:11px;flex-shrink:0}
.takeoff-coord-bar[hidden]{display:none!important}
.takeoff-coord-bar-title{font-weight:700;color:var(--panel-text);white-space:nowrap}
.takeoff-coord-bar-hint{font-size:10px;color:var(--mut);flex:1;min-width:140px}
.takeoff-coord-bar-hint.takeoff-coord-bar-warn,.takeoff-point-editor-hint.takeoff-coord-bar-warn{color:var(--amb);font-weight:500}
.takeoff-coord-bar .fc{padding:5px 8px;font-size:11px;border:1px solid var(--bord);border-radius:6px;background:var(--surf)}
.takeoff-coord-bar #takeoffBarPtLabel{min-width:88px;max-width:120px}
.takeoff-coord-bar #takeoffBarPtX,.takeoff-coord-bar #takeoffBarPtY{width:72px}
.takeoff-coord-bar #takeoffBarPtDel,.takeoff-coord-bar #takeoffBarPtStart{white-space:nowrap}
.takeoff-point-editor{border-bottom:2px solid var(--grn);padding:10px 12px;font-size:11px;background:var(--grnl);flex-shrink:0;max-height:none;overflow:visible}
.takeoff-point-editor-head{font-weight:600;font-size:11px;margin-bottom:4px;color:var(--panel-text)}
.takeoff-point-editor-hint{font-size:10px;color:var(--mut);margin:0 0 8px;line-height:1.4}
.takeoff-point-table-wrap{overflow-x:auto;margin-bottom:8px}
.takeoff-point-table{width:100%;border-collapse:collapse;font-size:10px}
.takeoff-point-table th{text-align:left;padding:3px 4px;color:var(--mut);font-weight:500;border-bottom:1px solid var(--bord)}
.takeoff-point-table td{padding:3px 4px;border-bottom:1px solid var(--bord);vertical-align:middle}
.takeoff-point-table .fc{width:100%;min-width:0;padding:2px 4px;font-size:10px}
.takeoff-point-table .takeoff-pt-x,.takeoff-point-table .takeoff-pt-y{max-width:64px}
.takeoff-point-table .takeoff-pt-label{min-width:56px}
.takeoff-point-table .takeoff-pt-num{color:var(--mut);width:20px;text-align:center}
.takeoff-point-table .takeoff-pt-seg{font-family:var(--mono);color:var(--grn);white-space:nowrap;font-size:10px}
.takeoff-point-table .takeoff-pt-actions{width:28px;text-align:center}
.takeoff-pt-empty{text-align:center;color:var(--mut);padding:8px!important}
.takeoff-point-add{display:grid;grid-template-columns:1fr 72px 72px auto;gap:6px;align-items:center}
.takeoff-point-add .fc{padding:4px 6px;font-size:10px}
.takeoff-point-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.takeoff-pt-row{cursor:pointer}
.takeoff-pt-row-on{background:var(--grnl)!important;outline:1px solid var(--grn)}
.takeoff-pt-start{white-space:nowrap}
.takeoff-pt-start-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.04em;color:var(--grn);background:#fff;padding:2px 6px;border-radius:4px;border:1px solid var(--grn)}
.takeoff-pt-set-start{font-size:9px!important;padding:2px 6px!important}
.takeoff-point-table .takeoff-pt-start{width:64px}
@media(max-width:900px){.takeoff-point-add{grid-template-columns:1fr 1fr;}.takeoff-point-add #takeoffPtAddBtn{grid-column:1/-1}}
.takeoff-3d-note{font-size:11px;color:var(--amb);background:var(--ambl);padding:8px 10px;border-radius:7px;margin:8px;line-height:1.45}
@media(max-width:1100px){.takeoff-layout{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}}
/* ══ PROJECT DATABASE ══ */
.project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}
.project-current-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.35rem;align-items:stretch;margin-top:1rem}
.project-current-card-wrap,.project-open-section-wrap{min-width:0}
.project-current-card-wrap .project-list{display:block;margin:0}
.project-current-card-wrap .project-card{padding:1.5rem 1.75rem;font-size:13px}
.project-current-card-wrap .project-card-name{font-size:16px;margin-bottom:8px}
.project-current-card-wrap .project-card-sub{font-size:13px;margin-bottom:8px;line-height:1.5}
.project-current-card-wrap .project-card-meta{font-size:12px;margin-bottom:.9rem}
.project-current-card-wrap .project-card-links{margin:12px 0 10px}
.project-current-card-wrap .proj-section-link{font-size:12px;padding:5px 11px}
.project-open-section-wrap .proj-status-panel{margin-top:0;padding:1.5rem 1.75rem;border:1px solid var(--bord);border-radius:10px;background:var(--surf);min-height:280px;height:100%;box-sizing:border-box}
.project-open-section-wrap .proj-status-panel h4{font-size:12px;margin:0 0 14px}
.project-open-section-wrap .proj-status-grid{gap:12px}
.project-open-section-wrap .proj-status-row{font-size:13px;line-height:1.55}
.project-open-section-wrap .proj-status-row .proj-status-label{flex:0 0 100px}
.project-open-section-wrap .proj-status-row .proj-status-dot{width:8px;height:8px}
.project-open-section-wrap .proj-status-empty{font-size:13px;line-height:1.55}
@media(max-width:960px){.project-current-layout{grid-template-columns:1fr}}
.project-card{background:var(--surf);border:1px solid var(--bord);border-radius:10px;padding:1rem;cursor:pointer;transition:border-color .15s}
.project-card:hover{border-color:var(--grn)}
.project-card.on{border-color:var(--grn);box-shadow:0 0 0 1px var(--grn)}
.project-card.draft{border-style:dashed}
.project-card.archived{opacity:.92;border-color:var(--bord);cursor:default}
.project-card.archived:hover{border-color:var(--bord)}
.project-card-name{font-weight:600;font-size:13px;margin-bottom:4px;line-height:1.45;white-space:normal;overflow-wrap:break-word;word-break:break-word;letter-spacing:normal;text-transform:none}
#dbProjectName,#projectName{letter-spacing:normal;text-transform:none}
.project-card-sub{font-size:11px;color:var(--mut);margin-bottom:6px}
.project-card-meta{font-size:10px;color:var(--mut);font-family:var(--mono);margin-bottom:.75rem}
.project-card-actions{display:flex;gap:6px;flex-wrap:wrap}
.project-card-links{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px}
.proj-section-link{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid var(--bord);border-radius:999px;background:var(--surf2);color:var(--panel-text);font-size:10px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}
.proj-section-link:hover{border-color:var(--grn);background:var(--surf)}
.proj-section-link.has-data{border-color:color-mix(in srgb,var(--grn) 45%,var(--bord));color:var(--grn)}
.proj-status-val .proj-section-link{border:none;background:transparent;padding:0;border-radius:0;font-size:inherit;font-weight:inherit;color:inherit;text-align:left;text-decoration:underline;text-underline-offset:2px}
.proj-status-val .proj-section-link:hover{background:transparent;color:var(--grn)}
.proj-status-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--bord)}
#page-projects .proj-status-panel{margin-top:0;padding-top:0;border-top:none}
#page-projects .project-open-section-wrap .proj-status-panel{
  padding:1.5rem 1.75rem;
  border:1px solid var(--bord);
  border-radius:10px;
  background:var(--surf);
  min-height:280px;
  height:100%;
  box-sizing:border-box;
}
.proj-status-panel h4{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin:0 0 8px;font-weight:600}
.proj-status-grid{display:grid;gap:7px}
.proj-status-row{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.45}
.proj-status-row .proj-status-label{flex:0 0 76px;font-weight:600;color:var(--panel-text);display:flex;align-items:center;gap:5px}
.proj-status-row .proj-status-val{flex:1;color:var(--mut);min-width:0}
.proj-status-row.is-ok .proj-status-val{color:var(--panel-text)}
.proj-status-row.is-empty .proj-status-val{font-style:italic}
.proj-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--bord)}
.proj-status-row.is-ok .proj-status-dot{background:var(--grn)}
.proj-status-row.is-partial .proj-status-dot{background:var(--amb)}
.proj-status-empty{font-size:11px;color:var(--mut);line-height:1.45;margin:0}
.export-opts{display:grid;gap:.65rem;margin:1rem 0}
.export-opts label{display:flex;align-items:flex-start;gap:8px;font-size:12px;cursor:pointer}
.export-opts input{margin-top:2px}
.export-delivery{display:flex;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--bord)}
.export-delivery label{font-size:12px;display:flex;align-items:center;gap:6px;cursor:pointer}

/* ══ PROJECT SCHEDULE (Tom's Planner style) ══ */
.sched-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}
.sched-toolbar .sched-week-nav{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.sched-week-label{font-size:12px;font-weight:500;min-width:200px;text-align:center;color:var(--mut)}
.tp-shell{padding:0;overflow:hidden;margin-bottom:1rem}
.tp-gantt{display:grid;grid-template-columns:300px 1fr;min-height:420px;max-height:min(70vh,640px)}
.tp-sidebar{display:flex;flex-direction:column;border-right:2px solid var(--bord);background:var(--surf);min-height:0}
.tp-sidebar-head{flex-shrink:0;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);background:var(--surf2);border-bottom:1px solid var(--bord);height:56px;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;padding-bottom:8px}
.tp-sidebar-head-hint{font-size:9px;font-weight:500;text-transform:none;letter-spacing:0;opacity:.75;white-space:nowrap}
.tp-task-list{flex:1;overflow-y:auto;min-height:0}
.tp-task-row{display:flex;align-items:center;gap:6px;padding:0 8px 0 6px;border-bottom:1px solid var(--bord);cursor:pointer;transition:background .1s;position:relative}
.tp-task-row:hover{background:#f7f6f3}
.tp-task-row.tp-sel{background:#e8f4fc}
.tp-task-row.tp-task-dragging{opacity:.45}
.tp-task-row.tp-task-drop-before::before,.tp-task-row.tp-task-drop-after::after{content:'';position:absolute;left:8px;right:8px;height:2px;background:var(--grn);z-index:2}
.tp-task-row.tp-task-drop-before::before{top:0}
.tp-task-row.tp-task-drop-after::after{bottom:0}
.tp-task-drag-handle{flex-shrink:0;width:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--mut);cursor:grab;user-select:none;font-size:11px;letter-spacing:-1px;opacity:.55;touch-action:none}
.tp-task-drag-handle:hover{opacity:1;color:var(--panel-text)}
.tp-task-drag-handle:active{cursor:grabbing}
.tp-task-order-btns{display:flex;flex-direction:column;gap:1px;flex-shrink:0}
.tp-task-order-btn{width:18px;height:16px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.tp-task-order-btn:hover:not(:disabled){background:var(--surf2);color:var(--panel-text)}
.tp-task-order-btn:disabled{opacity:.3;cursor:default}
.tp-task-order-btn i{font-size:12px}
.tp-task-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15);cursor:pointer;padding:0}
.tp-task-text{flex:1;min-width:0}
.tp-task-title-row{display:flex;align-items:center;gap:6px;min-width:0}
.tp-task-name{flex:1;min-width:0;border:none;background:transparent;font-size:12px;font-weight:600;padding:2px 0 2px 6px;color:var(--panel-text);font-family:var(--sans)}
.tp-status-badge{flex-shrink:0;font-size:10px!important;padding:3px 8px!important;line-height:1.25;font-weight:700!important;border-width:1.5px!important}
.tp-task-name:focus{outline:none;background:#fff;border-radius:4px;padding:2px 4px;box-shadow:0 0 0 2px rgba(74,144,217,.35)}
.tp-task-sub{display:block;font-size:10px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.tp-add-task{flex-shrink:0;margin:8px 10px;padding:8px 12px;border:1px dashed var(--bord);border-radius:8px;background:var(--surf2);color:var(--grn);font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--sans)}
.tp-add-task:hover{background:var(--grnl);border-color:var(--grn)}
.tp-empty,.tp-chart-empty{padding:2rem 1rem;text-align:center;color:var(--mut);font-size:12px}
.tp-timeline-wrap{overflow:auto;min-height:0;background:#fafaf8}
.tp-timeline-head{position:sticky;top:0;z-index:5;background:var(--surf);border-bottom:1px solid var(--bord)}
.tp-week-row{display:flex;height:24px;border-bottom:1px solid var(--bord);background:var(--surf2)}
.tp-band-cell{flex-shrink:0;padding:4px 8px;font-size:10px;font-weight:600;color:var(--mut);border-right:1px solid var(--bord);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-day-row{display:flex;height:32px}
.tp-day-cell{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--bord);font-size:10px;color:var(--mut)}
.tp-day-cell.weekend{background:#f3f2ef}
.tp-day-cell.today{background:#fff3e0;color:#c2410c;font-weight:700}
.tp-day-dow{font-size:9px;text-transform:uppercase;line-height:1}
.tp-day-num{font-family:var(--mono);font-size:12px;font-weight:600;line-height:1.2}
.tp-chart-body{position:relative}
.tp-chart-row{position:relative;border-bottom:1px solid var(--bord);cursor:pointer}
.tp-chart-row:hover{background:rgba(74,144,217,.04)}
.tp-chart-row.tp-sel{background:rgba(74,144,217,.08)}
.tp-grid{position:absolute;inset:0;display:flex;pointer-events:none}
.tp-grid-cell{flex-shrink:0;height:100%;border-right:1px solid #eceae4}
.tp-grid-cell.tp-task-day{opacity:1;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tp-grid-cell.tp-task-day.done{opacity:.55}
.tp-grid-cell.tp-task-day.progress{box-shadow:inset 0 -3px 0 #f59e0b}
.tp-grid-cell.weekend{background:rgba(0,0,0,.02)}
.tp-grid-cell.today{background:rgba(255,152,0,.06)}
.tp-bar{position:absolute;top:8px;height:30px;border-radius:15px;padding:0 10px;display:flex;align-items:center;gap:6px;color:#fff;font-size:11px;font-weight:600;cursor:grab;box-shadow:0 2px 6px rgba(0,0,0,.12);z-index:2;min-width:24px;overflow:visible;white-space:nowrap;touch-action:none;user-select:none}
.tp-bar:hover{filter:brightness(1.06);box-shadow:0 3px 10px rgba(0,0,0,.18)}
.tp-bar.tp-bar-dragging,.tp-bar:active{cursor:grabbing;filter:brightness(1.08);z-index:6}
body.tp-gantt-dragging{cursor:grabbing!important;user-select:none!important}
body.tp-gantt-dragging .tp-timeline-wrap{overflow:hidden}
.tp-bar.progress{box-shadow:0 0 0 2px #fff,0 0 0 4px #f59e0b}
.tp-bar.done{opacity:.55}
.tp-bar-text{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;pointer-events:none}
.tp-bar-status{flex-shrink:0;font-size:9px;opacity:.92;background:rgba(0,0,0,.18);padding:1px 6px;border-radius:8px;pointer-events:none}
.tp-bar-handle{position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize;z-index:3}
.tp-bar-handle-start{left:0;border-radius:15px 0 0 15px}
.tp-bar-handle-end{right:0;border-radius:0 15px 15px 0}
.tp-bar-handle:hover{background:rgba(255,255,255,.22)}
.tp-insp-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;margin-right:4px;border:1px solid rgba(0,0,0,.12)}
.tp-color-palette{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tp-color-chip{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.tp-color-chip.on{border-color:var(--text);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--grn)}
.tp-color-custom-row{display:flex;align-items:center;gap:8px;margin-top:8px}
.tp-color-custom-row input[type=color]{width:40px;height:32px;border:1px solid var(--bord);border-radius:6px;padding:2px;cursor:pointer;background:var(--surf)}
.tp-today-line{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;z-index:4;pointer-events:none;margin-top:-56px;height:calc(100% + 56px)}
.tp-insp-empty{padding:2rem 1.25rem;text-align:center;color:var(--mut);font-size:12px;line-height:1.5}
.tp-insp-empty i{font-size:28px;display:block;margin-bottom:8px;opacity:.5}
.tp-insp-head{padding:1rem 1rem .75rem;border-bottom:1px solid var(--bord)}
.tp-insp-head strong{display:block;font-size:14px;margin-bottom:2px}
.tp-insp-proj{font-size:11px;color:var(--mut)}
.tp-insp-body{padding:1rem}
.tp-insp-row{display:flex;justify-content:space-between;gap:1rem;font-size:12px;padding:5px 0;border-bottom:1px solid var(--bord)}
.tp-insp-row span{color:var(--mut)}
.tp-insp-notes{margin-top:.75rem;font-size:11px;color:var(--mut);line-height:1.45;padding:.5rem;background:var(--surf2);border-radius:6px}
.tp-insp-actions{display:flex;gap:.5rem;margin-top:1rem}
.tp-layout{display:grid;grid-template-columns:1fr 280px;gap:1rem;align-items:start}
@media(max-width:1100px){.tp-layout{grid-template-columns:1fr}.tp-gantt{grid-template-columns:220px 1fr}}

/* ══ CALENDAR ══ */
.cal-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.cal-month-label{font-size:14px;font-weight:600;color:var(--panel-text);min-width:170px;text-align:center;font-variant-numeric:tabular-nums}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--bord);padding:0;border-top:1px solid var(--bord)}
.cal-hd{background:var(--surf2);padding:8px 6px;text-align:center;font-size:10px;font-weight:var(--mut-weight);color:var(--mut);text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing)}
.cal-day{background:var(--surf);min-height:96px;padding:6px;cursor:pointer;position:relative;display:flex;flex-direction:column;gap:3px;transition:background .12s}
.cal-day:hover{background:var(--surf2)}
.cal-day.other{background:var(--surf2);opacity:.45}
.cal-day.today{background:var(--grnl);box-shadow:inset 0 0 0 2px var(--grn)}
.cal-day-num{font-size:12px;font-weight:600;color:var(--panel-text);display:flex;align-items:center;justify-content:space-between;font-variant-numeric:tabular-nums}
.cal-day.other .cal-day-num{color:var(--mut)}
.cal-day-add{visibility:hidden;font-size:14px;line-height:1;color:var(--mut);background:transparent;border:none;cursor:pointer;padding:0 2px}
.cal-day:hover .cal-day-add{visibility:visible}
.cal-event{background:var(--blul);color:var(--blu);font-size:10px;padding:2px 6px;border-radius:4px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1.4}
.cal-event:hover{filter:brightness(.96)}
.cal-event.tag-meeting{background:var(--blul);color:var(--blu)}
.cal-event.tag-site{background:var(--grnl);color:var(--grn)}
.cal-event.tag-call{background:var(--ambl);color:var(--amb)}
.cal-event.tag-install{background:#e9d8fd;color:#6b21a8}
.cal-event.tag-followup{background:var(--redl);color:var(--red)}
.cal-event.tag-other{background:var(--surf2);color:var(--panel-text);border:1px solid var(--bord)}
.cal-event-more{font-size:10px;color:var(--mut);padding:0 2px;cursor:pointer}
.cal-upcoming-row{display:grid;grid-template-columns:80px 1fr auto;gap:.75rem;padding:8px 12px;border-bottom:1px solid var(--bord);align-items:center;cursor:pointer;transition:background .12s}
.cal-upcoming-row:hover{background:var(--surf2)}
.cal-upcoming-row:last-child{border-bottom:none}
.cal-upcoming-date{font-family:var(--mono);font-size:11px;color:var(--mut);text-align:right;line-height:1.3}
.cal-upcoming-date strong{display:block;color:var(--panel-text);font-size:13px;font-weight:600;font-family:var(--sans)}
.cal-upcoming-title{font-size:12px;color:var(--panel-text);font-weight:600}
.cal-upcoming-sub{font-size:11px;color:var(--mut);margin-top:1px}
.cal-upcoming-chip{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.cal-empty{padding:1.5rem;text-align:center;color:var(--mut);font-size:12px}
@media(max-width:760px){.cal-day{min-height:64px}.cal-day-num{font-size:11px}.cal-event{font-size:9px;padding:1px 4px}.cal-upcoming-row{grid-template-columns:64px 1fr}.cal-upcoming-chip{display:none}}

/* ══ SHARED PAGE HERO (estimator / payments / account) ══ */
.lv-page-hero{
  padding:1.15rem 1.35rem 1.05rem;
  border:1px solid color-mix(in srgb,var(--grn) 22%,var(--bord));
  border-radius:14px;
  background:
    radial-gradient(1200px 180px at 0% 0%,color-mix(in srgb,var(--grn) 14%,transparent),transparent 60%),
    linear-gradient(135deg,color-mix(in srgb,var(--grn) 8%,var(--surf)),var(--surf) 55%,color-mix(in srgb,var(--surf2) 80%,var(--surf)));
  box-shadow:0 10px 28px rgba(26,25,23,.05);
  margin-bottom:1rem;
}
.lv-page-phead{margin-bottom:.85rem;gap:1rem;align-items:flex-start}
.lv-page-kicker{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--grn);margin-bottom:6px;padding:3px 8px;border-radius:999px;
  background:color-mix(in srgb,var(--grn) 12%,var(--surf));
  border:1px solid color-mix(in srgb,var(--grn) 18%,var(--bord));
}
.lv-page-kicker i{font-size:12px}
.lv-page-phead h1{font-size:24px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;color:var(--panel-text)}
.lv-page-phead h1 i{font-size:22px;color:var(--grn)}
.lv-page-phead p{color:var(--mut);font-size:12px;margin-top:5px;line-height:1.5;max-width:52rem}
.lv-page-phead-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;justify-content:flex-end}
.lv-page-phead-actions .action-badge{padding:7px 13px;font-size:11px;font-weight:700;border-radius:8px}
.lv-page-hero-stats{display:flex;flex-wrap:wrap;gap:.55rem}
.lv-page-hero-stat{
  min-width:7.5rem;padding:.55rem .8rem;border-radius:10px;
  background:color-mix(in srgb,var(--surf) 88%,transparent);
  border:1px solid color-mix(in srgb,var(--bord) 85%,var(--grn));
  display:flex;flex-direction:column;gap:2px;backdrop-filter:blur(4px);
}
.lv-page-hero-stat span{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.lv-page-hero-stat strong{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--panel-text);font-variant-numeric:tabular-nums}
.lv-page-hero-stat-accent{border-color:color-mix(in srgb,var(--grn) 35%,var(--bord));background:color-mix(in srgb,var(--grnl) 55%,var(--surf))}
.lv-page-hero-stat-accent strong{color:var(--grn)}
.lv-page-hero-stat-bid{margin-left:auto;background:linear-gradient(135deg,#1a1917,#2a2826);border-color:#1a1917;color:#fff}
.lv-page-hero-stat-bid span{color:rgba(255,255,255,.65)}
.lv-page-hero-stat-bid strong{color:#fff;font-size:15px}
.lv-page-card-head{align-items:center!important;padding:.85rem 1rem!important;background:linear-gradient(180deg,var(--surf2),color-mix(in srgb,var(--surf2) 70%,var(--surf)))}
.lv-page-card-title{display:flex;align-items:center;gap:.7rem;min-width:0}
.lv-page-card-title h3{margin:0;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:none;color:var(--panel-text)}
.lv-page-card-sub{display:block;font-size:11px;color:var(--mut);font-weight:500;margin-top:2px}
.lv-page-card-icon{
  width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--grnl);color:var(--grn);font-size:16px;flex-shrink:0;
}
.lv-page-card-icon-blu{background:var(--blul);color:var(--blu)}
.lv-page-card-icon-amb{background:var(--ambl);color:var(--amb)}
.lv-page-card-icon-red{background:var(--redl);color:var(--red)}
#page-payments.page,#page-account.page{display:none;flex-direction:column}
#page-payments.page.on,#page-account.page.on{display:flex}
#page-payments .card,#page-account .card{
  border-radius:12px;box-shadow:0 8px 22px rgba(26,25,23,.04);overflow:hidden;
}

/* ══ PAYMENTS ══ */
.lv-payments-shell{display:flex;flex-direction:column;gap:1rem;max-width:none;width:100%;min-width:0;flex:1}
.lv-payments-hero{margin-bottom:0}
.lv-payments-hero-meta{display:flex;flex-wrap:wrap;gap:.55rem}
.lv-payments-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bord);border-radius:10px;overflow:hidden;border:1px solid var(--bord);margin:0 1rem 1rem;contain:layout style}
.pay-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bord);border-radius:10px;overflow:hidden;contain:layout style}
#page-payments #payReceiptsWrap{contain:layout style;min-height:3.25rem}
.lv-payments-workspace{padding:0;overflow:hidden;border-color:color-mix(in srgb,var(--grn) 16%,var(--bord))}
.lv-payments-workspace-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--grn) 12%,var(--bord));background:linear-gradient(180deg,color-mix(in srgb,var(--grnl) 35%,var(--surf2)),var(--surf2))}
.lv-payments-workspace-title{display:flex;align-items:center;gap:.75rem;min-width:0}
.lv-payments-workspace-icon,.lv-payments-history-icon{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;background:var(--grnl);color:var(--grn);flex-shrink:0}
.lv-payments-history-icon{background:var(--blul);color:var(--blu)}
.lv-payments-workspace-title h3,.lv-payments-history-title h3{margin:0;font-size:14px;font-weight:700;color:var(--text);line-height:1.25}
.lv-payments-workspace-meta{font-size:11px;color:var(--mut);display:block;margin-top:2px;line-height:1.35}
.lv-payments-workspace-meta.active{color:var(--panel-text);font-weight:600}
.lv-payments-workspace-toolbar{padding:.75rem 1rem;border-bottom:1px solid var(--bord);background:var(--surf)}
.lv-payments-progress{padding:0 1rem 1rem}
.lv-payments-progress-labels{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem;font-size:11px;color:var(--mut);font-weight:500}
.lv-payments-progress-labels span:last-child{font-variant-numeric:tabular-nums;color:var(--panel-text);font-weight:600}
.lv-payments-history-head{align-items:center!important;padding:.85rem 1rem!important;background:linear-gradient(180deg,var(--surf2),color-mix(in srgb,var(--surf2) 70%,var(--surf)))!important}
.lv-payments-history{border-color:color-mix(in srgb,var(--blu) 14%,var(--bord))}
.lv-payments-stats,.pay-stats{border-radius:0;box-shadow:none}
.lv-payments-history-title{display:flex;align-items:center;gap:.75rem;min-width:0}
.lv-payments-history-title span{font-size:11px;color:var(--mut);display:block;margin-top:2px}
.lv-payments-history .pay-ledger-head{border-top:1px solid var(--bord)}
.lv-payments-modal{max-width:520px}
.lv-payments-modal-head{display:flex;align-items:center;gap:.65rem;margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--bord)}
.lv-payments-modal-icon{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;background:var(--grnl);color:var(--grn);flex-shrink:0}
.lv-payments-modal-head h2{margin:0;font-size:1.05rem}
.pay-empty.lv-payments-empty{padding:2.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.65rem}
.pay-empty.lv-payments-empty i{font-size:2rem;color:var(--mut);opacity:.45}
.pay-empty.lv-payments-empty p{margin:0;max-width:22rem;line-height:1.5}
.pay-stat{background:var(--surf);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.35rem;min-height:5.25rem;position:relative}
.pay-stat-icon{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-bottom:.1rem}
.pay-stat.contract .pay-stat-icon{background:var(--blul);color:var(--blu)}
.pay-stat.scheduled .pay-stat-icon{background:#ede9fe;color:#6d28d9}
.pay-stat.received .pay-stat-icon{background:var(--grnl);color:var(--grn)}
.pay-stat.balance .pay-stat-icon{background:var(--ambl);color:var(--amb)}
.pay-stat.balance.zero .pay-stat-icon{background:var(--grnl);color:var(--grn)}
.pay-stat.balance.overdue .pay-stat-icon{background:var(--redl);color:var(--red)}
.pay-stat-label{font-size:10px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.pay-stat-value{font-size:1.2rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.2;font-family:var(--sans)}
.pay-stat-sub{font-size:10px;color:var(--mut);font-variant-numeric:tabular-nums;line-height:1.35}
.pay-stat.received .pay-stat-value{color:var(--grn)}
.pay-stat.balance.zero .pay-stat-value{color:var(--grn)}
.pay-stat.balance.overdue .pay-stat-value{color:var(--red)}
.lv-account-shell{display:flex;flex-direction:column;gap:1rem;max-width:none;width:100%;flex:1}
.lv-account-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;margin-bottom:0;border-color:color-mix(in srgb,var(--blu) 16%,var(--bord))}
.lv-account-toolbar-left,.lv-account-toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}
.lv-account-toolbar label{display:flex;align-items:center;gap:.45rem;font-size:12px;color:var(--mut);font-weight:500}
.lv-account-hero{
  border-color:color-mix(in srgb,var(--blu) 24%,var(--bord));
  background:
    radial-gradient(1200px 180px at 0% 0%,color-mix(in srgb,var(--blu) 12%,transparent),transparent 60%),
    linear-gradient(135deg,color-mix(in srgb,var(--blu) 8%,var(--surf)),var(--surf) 55%,color-mix(in srgb,var(--surf2) 80%,var(--surf)));
  margin-bottom:0;
}
.lv-account-hero .lv-page-kicker{color:var(--blu);background:color-mix(in srgb,var(--blu) 10%,var(--surf));border-color:color-mix(in srgb,var(--blu) 18%,var(--bord))}
.lv-account-hero .lv-page-phead h1 i{color:var(--blu)}
.lv-account-hero .lv-page-hero-stat{border-color:color-mix(in srgb,var(--bord) 85%,var(--blu))}
.lv-account-hero .lv-page-hero-stat-accent{border-color:color-mix(in srgb,var(--blu) 35%,var(--bord));background:color-mix(in srgb,var(--blul) 55%,var(--surf))}
.lv-account-hero .lv-page-hero-stat-accent strong{color:var(--blu)}
.lv-account-hero-meta{display:flex;flex-wrap:wrap;gap:.55rem}
.lv-account-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--bord);border-radius:12px;overflow:hidden;border:1px solid var(--bord);box-shadow:0 8px 22px rgba(26,25,23,.04)}
@media(max-width:1100px){.lv-account-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.lv-account-stats{grid-template-columns:repeat(2,1fr)}}
.lv-account-stat{background:var(--surf);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.35rem;min-height:5.5rem;position:relative}
.lv-account-stat-icon{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-bottom:.15rem}
.lv-account-stat.sales .lv-account-stat-icon{background:var(--blul);color:var(--blu)}
.lv-account-stat.cash .lv-account-stat-icon{background:var(--grnl);color:var(--grn)}
.lv-account-stat.expense .lv-account-stat-icon{background:var(--redl);color:var(--red)}
.lv-account-stat.profit .lv-account-stat-icon{background:var(--ambl);color:var(--amb)}
.lv-account-stat.profit.positive .lv-account-stat-icon{background:var(--grnl);color:var(--grn)}
.lv-account-stat.profit.negative .lv-account-stat-icon{background:var(--redl);color:var(--red)}
.lv-account-stat.tax .lv-account-stat-icon{background:#ede9fe;color:#6d28d9}
.lv-account-stat.ar .lv-account-stat-icon{background:var(--surf2);color:var(--mut)}
.lv-account-stat-label{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.lv-account-stat-value{font-size:1.2rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.2}
.lv-account-stat.cash .lv-account-stat-value{color:var(--grn)}
.lv-account-stat.expense .lv-account-stat-value{color:var(--red)}
.lv-account-stat.profit.positive .lv-account-stat-value{color:var(--grn)}
.lv-account-stat.profit.negative .lv-account-stat-value{color:var(--red)}
.lv-account-stat-sub{font-size:10px;color:var(--mut)}
.lv-account-two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}
@media(max-width:900px){.lv-account-two-col{grid-template-columns:1fr}}
.lv-account-chart{padding:1rem 1rem .5rem}
.lv-account-chart-row{display:grid;grid-template-columns:4.5rem 1fr 5rem;align-items:center;gap:.65rem;margin-bottom:.55rem;font-size:11px}
.lv-account-chart-label{color:var(--mut);font-weight:500}
.lv-account-chart-bars{display:flex;flex-direction:column;gap:3px;min-width:0}
.lv-account-chart-bar{height:7px;border-radius:4px;min-width:2px;transition:width .2s ease}
.lv-account-chart-bar.sales{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
.lv-account-chart-bar.cash{background:linear-gradient(90deg,#16a34a,#4ade80)}
.lv-account-chart-bar.expense{background:linear-gradient(90deg,#dc2626,#f87171)}
.lv-account-chart-val{text-align:right;font-variant-numeric:tabular-nums;color:var(--text);font-size:10px;white-space:nowrap}
.lv-account-chart-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid var(--bord);font-size:11px;color:var(--mut)}
.lv-account-chart-legend span{display:inline-flex;align-items:center;gap:.35rem}
.lv-account-chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.lv-account-tbl{font-size:12px}
.lv-account-tbl td:last-child,.lv-account-tbl th:last-child,.lv-account-tbl td.num,.lv-account-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.lv-account-tbl tr.total-row td{font-weight:700;background:var(--surf2);border-top:2px solid var(--bord)}
.lv-account-tbl tr.profit-pos td.num{color:var(--grn)}
.lv-account-tbl tr.profit-neg td.num{color:var(--red)}
.lv-account-expense-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) auto;gap:.5rem;padding:1rem;border-bottom:1px solid var(--bord);align-items:end}
@media(max-width:900px){.lv-account-expense-form{grid-template-columns:1fr 1fr;}}
.lv-account-expense-form .fld{margin:0}
.lv-account-expense-form label{font-size:10px;color:var(--mut);margin-bottom:2px;display:block}
.lv-account-expense-form input,.lv-account-expense-form select{width:100%;padding:6px 8px;font-size:12px;border:1px solid var(--bord);border-radius:6px;background:var(--surf);color:var(--text)}
.lv-account-expense-empty{padding:1.25rem;text-align:center;color:var(--mut);font-size:12px}
.lv-account-pl-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;padding:1rem}
.lv-account-pl-line{display:flex;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;background:var(--surf2);border-radius:8px;font-size:12px}
.lv-account-pl-line strong{font-variant-numeric:tabular-nums}
.lv-account-pl-line.highlight{background:color-mix(in srgb,var(--grn) 10%,var(--surf2));font-weight:600}
.lv-account-pl-line.highlight.negative{background:color-mix(in srgb,var(--red) 10%,var(--surf2))}
.lv-account-tax-month-wrap{overflow-x:auto;padding:0 1rem 1rem}
.lv-account-tax-month-tbl th,.lv-account-tax-month-tbl td{white-space:nowrap}
.lv-account-tax-month-tbl th.num,.lv-account-tax-month-tbl td.num{font-size:11px}
.lv-account-tax-section-title{padding:.75rem 1rem .35rem;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.lv-account-tax-section-title:not(:first-child){padding-top:1rem;border-top:1px solid var(--bdr);margin-top:.25rem}
.lv-account-cat1-month-sel{display:flex;align-items:center;gap:.45rem;font-size:12px;color:var(--mut);font-weight:500;white-space:nowrap}
.lv-account-cat1-month-sel .inp{min-width:8.5rem}
.lv-account-cat1-head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}
.pay-receipt-amt-refund{color:var(--red)}
.pay-receipt-refund{background:rgba(220,38,38,.04)}
.pay-receipt-other-inv{opacity:.92}
.pay-progress{margin-top:0;height:16px;background:var(--surf2);border-radius:999px;overflow:hidden;border:1px solid var(--bord);position:relative;box-shadow:inset 0 1px 2px rgba(0,0,0,.04)}
.pay-progress-fill{height:100%;background:linear-gradient(90deg,#15803d,#4ade80);transition:width .25s ease;display:flex;align-items:center;justify-content:flex-end;color:#fff;font-size:10px;font-weight:600;padding:0 10px;font-variant-numeric:tabular-nums;min-width:0;border-radius:999px}
.pay-progress-inv{position:absolute;top:0;left:0;height:100%;background:repeating-linear-gradient(45deg,#1d4ed833,#1d4ed833 4px,transparent 4px,transparent 8px);pointer-events:none}
.pay-mode-toggle{display:inline-flex;border:1px solid var(--bord);border-radius:7px;overflow:hidden}
.pay-mode-toggle button{background:var(--surf);color:var(--panel-text);border:none;padding:6px 14px;font-size:11px;font-family:var(--sans);cursor:pointer;border-right:1px solid var(--bord)}
.pay-mode-toggle button:last-child{border-right:none}
.pay-mode-toggle button.on{background:var(--grn);color:#fff}
.pay-mode-toggle button:hover:not(.on){background:var(--surf2)}
.pay-inst-grid{display:grid;grid-template-columns:1fr 110px 100px 110px 120px 110px 90px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bord)}
.pay-inst-grid .action-badge{justify-content:center;width:100%}
.pay-inst-grid.head{padding-bottom:8px}
.pay-inst-grid.head span{font-size:10px;text-transform:var(--mut-transform);letter-spacing:var(--mut-letter-spacing);color:var(--mut);font-weight:var(--mut-weight);font-style:var(--mut-style)}
.pay-inst-grid.head span.r{text-align:right}
.pay-inst-grid input,.pay-inst-grid select{width:100%;padding:6px 8px;font-size:11px;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--panel-text);font-family:var(--sans)}
.pay-inst-grid input.r{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.pay-inst-grid input:focus,.pay-inst-grid select:focus{outline:none;border-color:var(--grn)}
.pay-inst-grid input:disabled{background:var(--surf2);color:var(--mut)}
.pay-inst-amount{font-family:var(--mono);font-size:11px;text-align:right;color:var(--panel-text);font-variant-numeric:tabular-nums;padding-right:4px}
.pay-inst-received{font-family:var(--mono);font-size:10px;color:var(--mut);text-align:right;font-variant-numeric:tabular-nums;margin-top:2px}
.pay-inst-received.paid{color:var(--grn)}
.pay-inst-received.partial{color:var(--amb)}
.pay-status-chip{display:inline-block;padding:2px 9px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.pay-status-chip.planned{background:var(--surf2);color:var(--mut);border:1px solid var(--bord)}
.pay-status-chip.invoiced{background:var(--blul);color:var(--blu)}
.pay-status-chip.partial{background:var(--ambl);color:var(--amb)}
.pay-status-chip.paid{background:var(--grnl);color:var(--grn)}
.pay-status-chip.overdue{background:var(--redl);color:var(--red)}
.pay-ledger-head{display:grid;grid-template-columns:28px 92px 1fr minmax(104px,120px) minmax(136px,auto);gap:.75rem;align-items:center;padding:10px 16px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);background:var(--surf2);border-bottom:1px solid var(--bord)}
.pay-ledger-head span:last-child{text-align:right}
.pay-ledger-col-print{text-align:center;font-size:9px}
.pay-receipt-row{display:grid;grid-template-columns:28px 92px 1fr minmax(104px,120px) minmax(136px,auto);gap:.75rem;align-items:start;padding:14px 16px;border-bottom:1px solid var(--bord);transition:background .12s}
.pay-receipt-row:nth-child(even){background:color-mix(in srgb,var(--surf2) 45%,transparent)}
.pay-receipt-row.pay-receipt-print-selected{background:var(--blul)}
.pay-receipt-print-cb{accent-color:var(--grn);cursor:pointer;margin-top:2px;width:15px;height:15px}
.pay-receipt-row.pay-receipt-group{align-items:start}
.pay-receipt-group-payments{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.pay-receipt-group-pay{display:grid;grid-template-columns:92px 1fr minmax(104px,120px) minmax(136px,auto);gap:.5rem .75rem;align-items:start;padding:8px 0;border-top:1px dashed var(--bord);font-size:12px}
.pay-receipt-group-pay:first-child{border-top:none;padding-top:0}
.pay-receipt-group-pay .pay-receipt-date{font-size:11px}
.pay-receipt-group-pay>div:last-child{align-self:center}
.pay-receipt-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:8px;display:inline-block;margin-bottom:6px;border:1.5px solid transparent;box-shadow:0 1px 2px rgba(26,25,23,.08)}
.pay-receipt-type.pay{color:var(--bdg-grn-fg);background:var(--bdg-grn-bg);border-color:var(--bdg-grn-bd)}
.pay-receipt-type.refund{color:var(--bdg-red-fg);background:var(--bdg-red-bg);border-color:var(--bdg-red-bd)}
.pay-receipt-detail{min-width:0;display:flex;flex-direction:column;gap:3px}
.pay-receipt-inv-num{font-size:15px;font-weight:700;color:var(--panel-text);line-height:1.35;letter-spacing:-.01em}
.pay-receipt-inv-line{font-size:13px;font-weight:500;color:var(--panel-text);line-height:1.4;opacity:.92}
.pay-receipt-bal-line{font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums;line-height:1.4}
.pay-receipt-row:hover{background:var(--surf2)}
.pay-receipt-row:last-child{border-bottom:none}
.pay-receipt-date{font-family:var(--mono);font-size:12px;color:var(--mut);padding-top:2px}
.pay-receipt-title{font-size:12px;color:var(--mut);font-weight:500;line-height:1.35}
.pay-receipt-sub{font-size:11px;color:var(--mut);margin-top:1px}
.pay-receipt-amt{font-family:var(--mono);font-size:15px;color:var(--grn);font-weight:700;text-align:right;font-variant-numeric:tabular-nums;align-self:center}
.pay-receipt-row>div:last-child{align-self:center}
.pay-receipt-method{font-size:11px;color:var(--mut)}
.pay-receipt-chip{font-size:10px;padding:2px 8px;border-radius:10px;background:var(--surf2);color:var(--panel-text);text-align:center;font-weight:500}
.pay-empty{padding:1.5rem;text-align:center;color:var(--mut);font-size:12px}
.pay-link-chip{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:10px;padding:2px 8px;border-radius:10px;background:var(--blul);color:var(--blu);font-weight:600;letter-spacing:.02em;font-family:var(--mono)}
.pay-link-chip i{font-size:11px}
.pay-inst-inv-ref{font-size:10px;color:var(--blu);font-family:var(--mono);margin-top:3px;line-height:1.35;font-weight:600;letter-spacing:.02em}
.pay-inst-warn{font-size:11px;color:var(--red);margin-top:.5rem;display:none}
.pay-section-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;border-bottom:1px solid var(--bord);background:var(--surf2)}
.pay-page{display:flex;flex-direction:column;gap:1rem;min-width:0}
.pay-workspace{padding:0}
.pay-workspace-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;padding:1rem 1rem .5rem;border-bottom:1px solid var(--bord)}
.pay-workspace-select-wrap{flex:1 1 280px;min-width:0}
.pay-workspace-select-wrap label{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-bottom:5px}
.pay-workspace-select-wrap select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--bord);background:var(--surf);font-size:13px}
.pay-workspace-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.pay-workspace-hint{font-size:11px;color:var(--mut);margin:0;padding:.5rem 1rem .75rem;line-height:1.45}
.pay-workspace-empty{font-size:12px;color:var(--mut);padding:.85rem 1rem;margin:0 1rem 1rem;background:color-mix(in srgb,var(--blu) 6%,var(--surf2));border-radius:10px;border:1px dashed color-mix(in srgb,var(--blu) 25%,var(--bord));line-height:1.45}
.pay-progress-row{padding:0 1rem .75rem}
.pay-notes-row{padding:0 1rem 1rem;border-top:1px solid var(--bord);padding-top:.85rem;background:var(--surf2)}
.pay-notes-row .fld{margin:0}
.pay-notes-row input{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--bord);background:var(--surf);font-size:12px}
.pay-history-head{align-items:flex-start;gap:.75rem}
.pay-history-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:flex-end}
.pay-ledger-filter{display:inline-flex;border:1px solid var(--bord);border-radius:999px;overflow:hidden;background:var(--surf2);padding:2px}
.pay-filter-btn{border:none;background:transparent;padding:6px 14px;font-size:11px;font-weight:600;color:var(--mut);cursor:pointer;transition:background .12s,color .12s;border-radius:999px}
.pay-filter-btn.on{background:var(--surf);color:var(--panel-text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.pay-filter-btn:hover:not(.on){background:var(--surf);color:var(--panel-text)}
.pay-ledger-section{margin-top:.85rem}
.pay-ledger-section:first-child{margin-top:0}
.pay-ledger-section-title{margin:0 0 .5rem;padding:0 1rem;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.pay-ledger-section-body{min-width:0}
.pay-stats--browse .pay-stat-value{color:var(--mut)}
@media(max-width:1024px){.lv-payments-stats,.pay-stats{grid-template-columns:repeat(2,1fr)}.pay-inst-grid{grid-template-columns:1fr 1fr;gap:4px 8px}.pay-inst-grid.head{display:none}.pay-ledger-head{display:none}.pay-receipt-row{grid-template-columns:1fr 1fr;gap:4px 8px}}
@media(max-width:640px){.lv-payments-workspace-head{align-items:flex-start}.lv-payments-hero-meta{width:100%;justify-content:flex-start}.lv-payments-hero-meta>div{align-items:flex-start}}
/* Sign-in */
#lv-auth-screen{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1.5rem}
.lv-auth-card{background:var(--surf);border:1px solid var(--bord);border-radius:12px;padding:2rem;width:100%;max-width:420px;box-shadow:0 8px 32px rgba(0,0,0,.1)}
.lv-auth-card h1{font-size:18px;font-weight:600;margin-bottom:.35rem}
.lv-auth-card p{font-size:12px;color:var(--mut);margin-bottom:1.25rem;line-height:1.5}
.lv-auth-error{font-size:12px;color:var(--red);min-height:1.2em;margin-top:.5rem}
.lv-auth-user-bar{margin-top:auto;padding-top:1rem;border-top:1px solid var(--sb-border);font-size:11px;color:var(--sb-text-soft)}
.lv-auth-user-bar strong{display:block;color:var(--sb-text);font-size:12px;margin-bottom:.35rem}
.lv-auth-tabs{display:flex;gap:.35rem;margin-bottom:1rem}
.lv-auth-tab{flex:1;padding:8px 10px;border:1px solid var(--bord);border-radius:7px;background:var(--surf2);font-size:12px;font-family:var(--sans);cursor:pointer;color:var(--mut)}
.lv-auth-tab.on{background:var(--grn);color:#fff;border-color:var(--grn);font-weight:500}
body.lv-role-user [data-auth-admin-only]{display:none!important}
body.lv-role-user #page-proposal .doc-edit-panel .tabs{display:none!important}
.lv-customer-est-pick{margin-bottom:.75rem;padding:.85rem 1rem;display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-end}
.lv-customer-est-pick .fld{margin:0}
.lv-customer-est-pick label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);display:block;margin-bottom:.25rem}
.lv-customer-est-pick select{min-width:min(100%,280px);max-width:100%}
.lv-cat-taxonomy-host{margin-bottom:.75rem}
.lv-cat-taxonomy .lv-cat-tax-intro{font-size:11px;color:var(--mut);margin:0 0 .75rem;line-height:1.45}
.lv-cat-group{border:1px solid var(--bord);border-radius:8px;padding:.65rem .85rem;margin-bottom:.5rem;background:var(--surf2)}
.lv-cat-group-hd{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}
.lv-cat-group-hd strong{font-size:12px}
.lv-cat-subs{list-style:none;margin:0 0 .5rem;padding:0}
.lv-cat-subs li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:11px;padding:3px 0;border-bottom:1px dashed var(--bord)}
.lv-cat-subs li:last-child{border-bottom:none}
.lv-cat-add-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.35rem}
.lv-cat-add-row input{flex:1;min-width:140px;padding:5px 8px;border:1px solid var(--bord);border-radius:6px;font-size:11px}
.lv-cat-subject-block{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--bord)}
.lv-cat-subject-block:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}
.lv-cat-subject-block h4{margin:0 0 .5rem;font-size:13px;font-weight:600}
.lv-est-row-preview{margin-top:.65rem;padding:.55rem .7rem;background:var(--surf);border:1px solid var(--bord);border-radius:7px}
.lv-est-row-preview-hd{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-bottom:.35rem}
.lv-est-row-preview ul{margin:0;padding:0;list-style:none}
.lv-est-row-preview li{font-size:11px;padding:3px 0;border-bottom:1px dashed var(--bord)}
.lv-est-row-preview li:last-child{border-bottom:none}
.lv-est-row-preview .lv-prev-big{font-weight:600;color:var(--panel-text)}
.lv-est-row-preview .lv-prev-sub{color:var(--mut);padding-left:.75rem;font-size:10px}
.lv-im-cat-mgmt{display:flex;gap:6px;align-items:center}
.lv-im-cat-mgmt select{flex:1;min-width:0}
.lv-im-cat-btns{display:flex;gap:4px;flex-shrink:0}
.lv-im-cat-editor{margin-top:6px;padding:8px;background:var(--surf2);border:1px solid var(--bord);border-radius:7px}
.lv-im-cat-editor input{width:100%;padding:6px 8px;border:1px solid var(--bord);border-radius:6px;font-size:12px;margin-bottom:6px}
.lv-im-cat-editor-actions{display:flex;gap:6px}
.lv-im-cat-share{margin:8px 0 6px;padding-top:8px;border-top:1px solid var(--bord)}
.lv-im-cat-share-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);margin:0 0 6px}
.lv-im-cat-share-grid{display:flex;flex-wrap:wrap;gap:6px 12px}
.lv-im-cat-share-opt{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--panel-text);cursor:pointer;user-select:none}
.lv-im-cat-share-opt input{margin:0;cursor:pointer}
.lv-im-cat-share-block{margin:0 0 8px}
.lv-im-cat-share-block:last-child{margin-bottom:0}
.lv-im-cat-share-hint{font-size:11px;color:var(--mut);margin:6px 0 0;line-height:1.4}
.lv-catalog-cat-share-inline{margin-top:4px}
.lv-catalog-cat-share-name{margin:0 0 6px;font-size:13px;color:var(--panel-text)}
.lv-catalog-cat-share-edit{flex-direction:column;align-items:stretch}
.lv-catalog-subjects-strip{display:none}
.lv-catalog-subjects-panel{padding:.25rem 0}
.lv-catalog-subjects-intro{font-size:12px;color:var(--mut);margin:0 0 1rem;line-height:1.5}
.lv-catalog-simple-tbl{width:100%;border-collapse:collapse}
.lv-catalog-simple-tbl thead th.lv-catalog-cat-head-col{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);padding:8px 10px;text-align:left;white-space:nowrap;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));border-bottom:2px solid color-mix(in srgb,var(--bord) 72%,transparent)}
.lv-catalog-simple-tbl thead th.lv-db-subject-head-col{text-align:left!important;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));border-bottom:2px solid color-mix(in srgb,var(--bord) 72%,transparent)}
.lv-catalog-simple-tbl tr.lv-db-subject-break td{border-top:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-simple-tbl td.lv-catalog-cat-col{padding:4px 6px;vertical-align:middle;min-width:7rem}
.lv-catalog-simple-tbl td.lv-catalog-cat-col input.lv-catalog-path-inp{width:100%;min-width:5rem;font-size:11px;padding:4px 6px}
.lv-catalog-simple-tbl tr.lv-catalog-cat-insert-row td.lv-catalog-cat-col{background:color-mix(in srgb,var(--amb) 7%,var(--surf2))}
.lv-catalog-simple-tbl td.lv-db-subject-cell{vertical-align:top;background:color-mix(in srgb,var(--surf2) 88%,transparent);border-right:2px solid color-mix(in srgb,var(--bord) 65%,transparent)}
.lv-catalog-simple-tbl td.lv-catalog-subject-compact{padding:4px 8px;vertical-align:middle}
.lv-catalog-simple-tbl td.lv-catalog-subject-compact .lv-catalog-subject-cell-inner{gap:0}
.lv-catalog-simple-tbl .lv-catalog-cat-share-group-head{text-align:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--panel-text);background:color-mix(in srgb,var(--surf2) 90%,var(--bord));border-left:1px dashed color-mix(in srgb,var(--bord) 42%,transparent);border-bottom:1px solid color-mix(in srgb,var(--bord) 65%,transparent)}
.lv-catalog-simple-tbl .lv-catalog-cat-share-head{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);text-align:center;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));vertical-align:bottom;padding:4px 6px;border-left:1px dashed color-mix(in srgb,var(--bord) 42%,transparent)}
.lv-catalog-simple-tbl .lv-catalog-cat-share-head.lv-catalog-cat-share-sub-cell{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-simple-tbl .lv-catalog-cat-share-col{min-width:5.5rem;max-width:9rem;vertical-align:top;font-size:9px;padding:4px 5px!important;border-left:1px dashed color-mix(in srgb,var(--bord) 42%,transparent)}
.lv-catalog-simple-tbl .lv-catalog-cat-share-main-cell{border-right:1px dashed color-mix(in srgb,var(--bord) 42%,transparent)}
.lv-catalog-simple-tbl .lv-catalog-cat-share-sub-cell{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-subject-add-cell{padding:.75rem 1rem;background:color-mix(in srgb,var(--acc) 6%,var(--surf2))}
.lv-catalog-subjects-list{display:flex;flex-direction:column;gap:.65rem}
.lv-catalog-subjects-empty{font-size:12px;color:var(--mut);margin:0;padding:1rem 0;text-align:center;line-height:1.5}
.lv-catalog-subject-card{padding:.75rem 1rem;margin:0}
.lv-catalog-subject-card.lv-catalog-subject-editing{background:color-mix(in srgb,var(--acc) 6%,var(--surf2))}
.lv-catalog-subject-cell-inner{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:9rem;padding:2px 0}
.lv-catalog-subject-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.lv-catalog-subject-meta{font-size:10px;color:var(--mut);line-height:1.35}
.lv-catalog-subject-actions{display:flex;flex-wrap:wrap;gap:3px}
.lv-catalog-cat-tbl td.lv-db-subject-cell.lv-catalog-subject-editing{min-width:12rem;white-space:normal}
.lv-catalog-cat-tbl tr.lv-catalog-subject-add-row td{background:color-mix(in srgb,var(--acc) 6%,var(--surf2));border-bottom:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-subject-add-inner{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:4px 2px}
.lv-catalog-subject-add-label{font-size:11px;font-weight:600;color:var(--mut);white-space:nowrap;padding-top:6px}
.lv-catalog-cat-tbl .lv-catalog-categories-group-head{text-align:center;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);background:color-mix(in srgb,var(--surf2) 88%,var(--bord));border-bottom:1px solid color-mix(in srgb,var(--bord) 65%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-cat-share-group-head{text-align:center;font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);background:color-mix(in srgb,var(--surf2) 90%,var(--bord));vertical-align:bottom;border-left:1px dashed color-mix(in srgb,var(--bord) 42%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-head-row2 th.lv-catalog-cat-level-head{font-size:9px;padding-top:3px;padding-bottom:5px}
.lv-catalog-cat-tbl .lv-catalog-head-row3 th.lv-catalog-head-spacer{background:color-mix(in srgb,var(--surf2) 94%,var(--bord));border-bottom:2px solid color-mix(in srgb,var(--bord) 72%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-head-row3 th.lv-catalog-cat-share-head{font-size:9px;padding-top:2px;padding-bottom:4px;vertical-align:top}
.lv-catalog-shared-subj-pills{display:none}
.lv-catalog-cat-share-col{min-width:6.5rem;max-width:10rem;vertical-align:top;white-space:normal;border-left:1px dashed color-mix(in srgb,var(--bord) 42%,transparent);padding:4px 6px!important}
.lv-catalog-cat-share-main-cell{border-right:1px dashed color-mix(in srgb,var(--bord) 42%,transparent)}
.lv-catalog-cat-share-sub-cell{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-cat-share-head{font-size:9px;text-align:left;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));vertical-align:bottom;min-width:6.5rem}
.lv-catalog-cat-share-list{display:flex;flex-direction:column;gap:2px;max-height:12rem;overflow-y:auto}
.lv-catalog-cat-share-row{display:flex;align-items:center;gap:4px;font-size:9px;line-height:1.3;color:var(--panel-text);cursor:pointer;white-space:nowrap}
.lv-catalog-cat-share-row input[type=checkbox],.lv-catalog-cat-share-row input[type=radio]{margin:0;width:13px;height:13px;flex-shrink:0;cursor:pointer}
.lv-catalog-cat-share-split-head{font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);margin:0 0 3px}
.lv-catalog-subject-actions{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.lv-im-subject-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:0}
.lv-im-subject-row .fld{margin-bottom:0}
.lv-db-est-sub-note{font-size:10px;color:var(--mut);font-weight:500;white-space:nowrap}
@media (max-width:520px){.lv-im-subject-row{grid-template-columns:1fr}}
.tbl td.lv-db-grp,.tbl td.lv-db-sub{vertical-align:top;font-weight:600;background:var(--surf2)}
.tbl td.lv-est-desc-pad{background:var(--surf2);padding:0;border-top:none}
.lv-est-tx-ctx{margin:0;font-size:12px;color:var(--mut);line-height:1.45}
.lv-est-tx-ctx strong{color:var(--panel-text);font-weight:600}
.tbl td.lv-db-grp{font-size:12px;color:var(--panel-text)}
.lv-db-cat-edit{margin-left:6px;padding:2px 5px;border:none;background:transparent;color:var(--mut);cursor:pointer;vertical-align:middle;font-size:11px;line-height:1}
.lv-db-cat-edit:hover{color:var(--pri)}
.lv-cat-tree-grp{border:1px solid var(--bord);border-radius:8px;margin-bottom:8px;overflow:hidden}
.lv-cat-tree-grp-hd{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--surf2)}
.lv-cat-tree-grp-hd .lv-cat-name,.lv-cat-tree-sub .lv-cat-name{flex:1;min-width:0}
.lv-cat-tree-grp-hd .lv-cat-name{font-weight:600;font-size:13px}
.lv-cat-tree-subs{padding:4px 10px 8px 16px;border-top:1px solid var(--bord)}
.lv-cat-tree-sub{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12px;color:var(--mut)}
.lv-cat-tree-empty{font-size:12px;color:var(--mut);padding:8px 0}
.lv-cat-tree-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid transparent;min-height:34px}
.lv-cat-tree-row:hover{background:var(--surf2);border-color:color-mix(in srgb,var(--bord) 75%,transparent)}
.lv-cat-tree-row .lv-cat-name{flex:1;min-width:0;font-weight:600;font-size:13px;line-height:1.35;word-break:break-word}
.lv-cat-tree-row .lv-db-cell-actions{flex-shrink:0;margin-left:auto}
.lv-catalog-cat-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:10px;background:var(--surf2);border:1px solid var(--bord);border-radius:8px}
.lv-catalog-cat-modal-title{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 240px}
.lv-catalog-cat-modal-title h2{margin:0;font-size:16px;line-height:1.25;display:flex;align-items:center;gap:7px}
.lv-catalog-cat-modal-title h2 i{font-size:17px;opacity:.92}
.lv-catalog-cat-modal-sub{font-size:10px;color:var(--mut);line-height:1.4}
.lv-catalog-cat-modal-actions{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;flex-shrink:0}
#catalogModalBody{max-height:min(60vh,420px);overflow:auto}
#catalogModal .modal.lv-catalog-cat-modal{width:min(1080px,98vw);max-width:1080px}
.lv-catalog-cat-tbl .lv-catalog-head-row2 th.lv-catalog-cat-share-group-head{text-align:center;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:5px 8px;border-bottom:1px solid color-mix(in srgb,var(--bord) 65%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-head-row3 th.lv-catalog-cat-share-head{text-align:center;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.lv-catalog-modal-sel-all{display:inline-flex;align-items:center;gap:5px;font-size:11px;cursor:pointer;user-select:none}
.lv-catalog-cat-tbl .db-sel-col{width:34px;max-width:40px;padding:3px 4px;text-align:center}
.lv-catalog-cat-tbl th.db-sel-col{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}
.lv-catalog-cat-tbl td.lv-catalog-path-edit-col{cursor:pointer;min-width:5.5rem}
.lv-catalog-cat-tbl td.lv-catalog-path-edit-col .lv-catalog-path-inp{cursor:text}
.lv-catalog-cat-tbl td.lv-db-subject-cell{cursor:default}
.lv-catalog-cat-tbl td.lv-catalog-path-merge-col{vertical-align:middle;background:color-mix(in srgb,var(--surf2) 88%,transparent)}
.lv-catalog-subject-pill-wrap{display:flex;align-items:center;width:100%;min-width:0}
.lv-catalog-cat-tbl td.lv-db-subject-cell.lv-catalog-subject-edit-col{padding:6px 8px;vertical-align:middle;cursor:text;background:transparent}
.lv-catalog-cat-tbl .lv-catalog-subject-inp{width:100%;min-width:0;font-size:11px;font-weight:800;letter-spacing:.03em;line-height:1.3;padding:6px 13px;border-radius:999px;border:2px solid;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,.45);box-shadow:0 1px 3px rgba(26,25,23,.14),inset 0 1px 0 rgba(255,255,255,.35);cursor:text;transition:box-shadow .15s,border-color .15s,transform .12s}
.lv-catalog-cat-tbl .lv-catalog-subject-inp::placeholder{color:color-mix(in srgb,currentColor 55%,transparent);font-weight:700;opacity:.85}
.lv-catalog-cat-tbl .lv-catalog-subject-inp:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 28%,transparent),0 2px 6px rgba(26,25,23,.16),inset 0 1px 0 rgba(255,255,255,.4);transform:translateY(-1px)}
.lv-catalog-cat-tbl .lv-catalog-cat-inp{font-size:10px;font-weight:600;letter-spacing:.025em;line-height:1.3;padding:4px 9px;border-radius:7px;border:1px solid color-mix(in srgb,var(--bord) 55%,transparent);border-left-width:3px;background:color-mix(in srgb,var(--surf) 88%,var(--surf2));color:var(--text);box-shadow:0 1px 2px rgba(26,25,23,.06);cursor:text;transition:border-color .15s,box-shadow .15s,background .15s}
.lv-catalog-cat-tbl .lv-catalog-cat-inp::placeholder{color:var(--mut);font-weight:500;font-style:italic;letter-spacing:0}
.lv-catalog-cat-tbl .lv-catalog-cat-inp:focus{outline:none;border-color:color-mix(in srgb,var(--acc) 45%,var(--bord));box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 22%,transparent),0 1px 3px rgba(26,25,23,.08);background:var(--surf)}
.lv-catalog-cat-tbl .lv-catalog-cat-inp-c1{border-left-color:hsl(220,68%,52%);background:color-mix(in srgb,hsl(220,75%,94%) 38%,var(--surf))}
.lv-catalog-cat-tbl .lv-catalog-cat-inp-c2{border-left-color:hsl(158,58%,40%);background:color-mix(in srgb,hsl(158,65%,93%) 38%,var(--surf))}
.lv-catalog-cat-tbl .lv-catalog-cat-inp-c3{border-left-color:hsl(278,58%,52%);background:color-mix(in srgb,hsl(278,65%,94%) 38%,var(--surf))}
.lv-catalog-cat-tbl .lv-catalog-cat-inp-c4{border-left-color:hsl(38,78%,48%);background:color-mix(in srgb,hsl(38,85%,92%) 38%,var(--surf))}
.lv-catalog-cat-tbl td.lv-catalog-path-merge-col .lv-catalog-cat-inp{font-weight:700;background:color-mix(in srgb,var(--surf) 78%,var(--surf2));box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 2px rgba(26,25,23,.05)}
.lv-catalog-cat-tbl td.lv-catalog-path-merge-col .lv-catalog-cat-inp-c1{background:color-mix(in srgb,hsl(220,75%,94%) 28%,var(--surf2))}
.lv-catalog-cat-tbl td.lv-catalog-path-merge-col .lv-catalog-cat-inp-c2{background:color-mix(in srgb,hsl(158,65%,93%) 28%,var(--surf2))}
.lv-catalog-cat-tbl td.lv-catalog-path-merge-col .lv-catalog-cat-inp-c3{background:color-mix(in srgb,hsl(278,65%,94%) 28%,var(--surf2))}
.lv-catalog-cat-tbl td.lv-catalog-path-merge-col .lv-catalog-cat-inp-c4{background:color-mix(in srgb,hsl(38,85%,92%) 28%,var(--surf2))}
.lv-catalog-cat-tbl{margin:0;width:max-content;min-width:100%;table-layout:auto;border-collapse:collapse}
#catalogModalBody .lv-catalog-cat-tbl.lv-cat-cols-sized{table-layout:fixed;width:max-content;min-width:100%}
#catalogModalBody .lv-catalog-cat-tbl.lv-cat-cols-sized .lv-db-subject-head-col,
#catalogModalBody .lv-catalog-cat-tbl.lv-cat-cols-sized td.lv-db-subject-cell{width:auto;max-width:none}
#catalogModalBody .lv-catalog-cat-tbl thead th.lv-db-col-resizable{position:relative;padding-right:12px!important}
#catalogModalBody .lv-cat-col-resize-handle{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;z-index:6;touch-action:none;user-select:none}
#catalogModalBody .lv-cat-col-resize-handle:hover,#catalogModalBody .lv-cat-col-resize-handle.lv-dragging{background:color-mix(in srgb,var(--grn) 38%,transparent)}
body.lv-cat-col-resizing,body.lv-cat-col-resizing *{cursor:col-resize!important;user-select:none!important}
.lv-catalog-cat-tbl th,.lv-catalog-cat-tbl td{padding:4px 8px;font-size:10px;line-height:1.25;vertical-align:middle}
.lv-catalog-cat-tbl thead th{overflow:visible;position:relative;z-index:1}
.lv-catalog-cat-tbl th.lv-db-cat-path-col{font-size:9px;padding:5px 8px;letter-spacing:.02em;white-space:nowrap}
.lv-catalog-cat-tbl .lv-catalog-cat-level-head{text-align:left;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent);border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent);vertical-align:bottom}
.lv-catalog-cat-tbl .lv-catalog-cat-level-head.lv-catalog-cat-name-col:last-of-type{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-cat-subhead{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);padding:2px 6px;background:color-mix(in srgb,var(--surf2) 75%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-cat-level-start{border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-cat-level-end{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent);border-left:1px dashed color-mix(in srgb,var(--bord) 42%,transparent)}
.lv-catalog-cat-tbl .lv-catalog-cat-chk-col{width:1%;max-width:32px;min-width:28px;white-space:nowrap;padding:2px 5px;text-align:center;vertical-align:middle}
.lv-catalog-cat-tbl th.lv-catalog-cat-chk-col{padding:2px 5px}
.lv-catalog-cat-tbl .lv-catalog-cat-name-col{min-width:5.5rem}
.lv-catalog-cat-tbl .lv-catalog-cat-chk-col input[type=checkbox]{margin:0;width:14px;height:14px;cursor:pointer}
.lv-cat-name-with-est{display:flex;align-items:center;gap:6px;min-width:0}
.lv-cat-est-vis{display:inline-flex;align-items:center;flex-shrink:0;margin:0;cursor:pointer}
.lv-cat-est-vis input[type=checkbox]{margin:0;width:14px;height:14px;cursor:pointer;accent-color:var(--accent,#2563eb)}
.lv-cat-est-vis-hint{font-size:10px;font-weight:600;color:var(--accent,#2563eb);margin-left:4px}
.lv-catalog-cat-tbl .lv-db-subject-head-col,.lv-catalog-cat-tbl td.lv-db-subject-cell{width:1%;min-width:10rem;max-width:14rem;white-space:normal;border-right:3px solid color-mix(in srgb,var(--bord) 88%,transparent)}
.lv-catalog-cat-tbl td.lv-db-subject-cell{vertical-align:top;background:var(--surf2)}
.lv-catalog-subject-sel{display:inline-flex;align-items:center;gap:6px;cursor:pointer;max-width:100%}
.lv-catalog-subject-sel input[type=checkbox]{margin:0;width:14px;height:14px;flex-shrink:0;cursor:pointer}
.lv-catalog-cat-tbl tr.lv-catalog-subject-selected td{background:color-mix(in srgb,var(--acc) 10%,var(--surf2))}
/* Strong horizontal rule between subjects */
.lv-catalog-cat-tbl tr.lv-db-subject-break>td{
  border-top:3px solid color-mix(in srgb,var(--panel-text) 42%,var(--bord))!important;
  box-shadow:inset 0 3px 0 color-mix(in srgb,var(--acc) 18%,transparent);
}
.lv-catalog-cat-tbl tr.lv-db-subject-break>td.lv-db-subject-cell{
  border-top:3px solid color-mix(in srgb,var(--panel-text) 48%,var(--bord))!important;
  background:color-mix(in srgb,var(--surf2) 82%,var(--bord));
}
/* Clear horizontal rule between Category-1 groups within a subject */
.lv-catalog-cat-tbl tr.lv-catalog-cat-break>td{
  border-top:2px solid color-mix(in srgb,var(--bord) 92%,transparent)!important;
}
.lv-catalog-cat-tbl tr.lv-catalog-cat-break>td.lv-db-cat-path-col:first-of-type,
.lv-catalog-cat-tbl tr.lv-catalog-cat-break>td[data-catalog-col="1"]{
  box-shadow:inset 0 2px 0 color-mix(in srgb,hsl(220,68%,52%) 35%,transparent);
}
/* Everyday row separators inside a category group */
.lv-catalog-cat-tbl tbody tr:not(.lv-db-subject-break):not(.lv-catalog-cat-break)>td{
  border-top:1px solid color-mix(in srgb,var(--bord) 55%,transparent);
}
/* Vertical separators between Category 1–4 columns */
.lv-catalog-cat-tbl th.lv-db-cat-path-col,
.lv-catalog-cat-tbl td.lv-db-cat-path-col,
.lv-catalog-cat-tbl td[data-catalog-col]{
  border-left:1px solid color-mix(in srgb,var(--bord) 70%,transparent);
}
.lv-catalog-cat-tbl th.lv-db-cat-path-col.lv-catalog-cat-level-head,
.lv-catalog-cat-tbl td[data-catalog-col="1"],
.lv-catalog-cat-tbl td[data-catalog-col="2"],
.lv-catalog-cat-tbl td[data-catalog-col="3"],
.lv-catalog-cat-tbl td[data-catalog-col="4"]{
  border-left:2px solid color-mix(in srgb,var(--bord) 82%,transparent);
}
.lv-catalog-cat-tbl td[data-catalog-col="1"]{border-left-color:color-mix(in srgb,hsl(220,68%,52%) 55%,var(--bord))}
.lv-catalog-cat-tbl td[data-catalog-col="2"]{border-left-color:color-mix(in srgb,hsl(158,58%,40%) 50%,var(--bord))}
.lv-catalog-cat-tbl td[data-catalog-col="3"]{border-left-color:color-mix(in srgb,hsl(278,58%,52%) 50%,var(--bord))}
.lv-catalog-cat-tbl td[data-catalog-col="4"]{border-left-color:color-mix(in srgb,hsl(38,78%,48%) 50%,var(--bord))}
.lv-catalog-simple-tbl tr.lv-db-subject-break td{border-top:3px solid color-mix(in srgb,var(--panel-text) 42%,var(--bord))}
.lv-catalog-simple-tbl tr.lv-catalog-cat-break td{border-top:2px solid color-mix(in srgb,var(--bord) 92%,transparent)}
.lv-catalog-cat-th-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:max-content}
.lv-catalog-cat-th-stack>span:first-child{font-weight:600;font-size:9px;letter-spacing:.02em;white-space:nowrap}
.lv-catalog-cat-th-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:3px;position:relative;z-index:2}
.lv-catalog-cat-th-actions .action-badge{padding:3px 7px;font-size:9px;border-radius:6px;gap:2px;flex-shrink:0;cursor:pointer;font-weight:700;border-width:1.5px}
.lv-catalog-cat-th-actions .action-badge i{font-size:9px;pointer-events:none}
.lv-catalog-cat-tbl.lv-catalog-item-tbl .lv-db-cat-path-col{min-width:3.5rem;max-width:none;width:auto;font-size:10px;white-space:normal}
.lv-catalog-cat-tbl td.lv-db-cat-path-col.lv-db-grp{vertical-align:top;background:color-mix(in srgb,var(--surf2) 88%,transparent)}
.lv-catalog-cat-tbl td.lv-catalog-cat-chk-col.lv-catalog-cat-level-end{background:color-mix(in srgb,var(--surf2) 88%,transparent)}
.lv-catalog-cat-tbl .lv-db-item-row.lv-catalog-cat-selected td.lv-catalog-cat-level-start,
.lv-catalog-cat-tbl .lv-db-item-row.lv-catalog-cat-selected td.lv-catalog-cat-level-end{background:color-mix(in srgb,var(--acc) 10%,var(--surf2))}
.lv-catalog-cat-tbl .lv-db-item-row.lv-catalog-cat-selected td{background:color-mix(in srgb,var(--acc) 10%,var(--surf2))}
.lv-catalog-cat-tbl .lv-db-cat-path-col .lv-db-cat-label{font-size:10px;font-weight:600;line-height:1.25;word-break:break-word}
.lv-catalog-cat-edit-row td{padding:5px 8px;background:var(--surf2);vertical-align:middle}
.lv-catalog-cat-subject-add-row td{padding:4px 8px;background:color-mix(in srgb,var(--surf2) 92%,transparent);vertical-align:middle;border-top:1px dashed color-mix(in srgb,var(--bord) 55%,transparent)}
.lv-catalog-cat-subject-add-row td.lv-catalog-add-slot-subject{background:var(--surf2)}
.lv-catalog-path-inp{width:100%;min-width:3.5rem;max-width:100%;padding:3px 6px;font-size:10px;border:1px solid color-mix(in srgb,var(--bord) 70%,transparent);border-radius:4px;background:var(--surf);color:var(--text)}
.lv-catalog-path-inp:focus{outline:2px solid color-mix(in srgb,var(--acc) 35%,transparent);border-color:var(--acc)}
.lv-cat-path-inp-wrap{display:flex;align-items:center;gap:5px;min-width:0}
.lv-catalog-path-edit-col{background:color-mix(in srgb,var(--surf2) 88%,transparent)}
.lv-catalog-cat-subject-add-row .lv-catalog-path-edit-col{background:color-mix(in srgb,var(--surf2) 92%,transparent)}
.lv-catalog-cat-tbl tr.lv-catalog-cat-insert-row td{background:color-mix(in srgb,var(--amb) 8%,var(--surf2))}
.lv-catalog-cat-tbl th.lv-catalog-col-selected{background:color-mix(in srgb,var(--grn) 42%,var(--surf2))!important;color:var(--text);box-shadow:inset 0 -3px 0 var(--grn)}
.lv-catalog-cat-tbl td.lv-catalog-col-highlight{background:color-mix(in srgb,var(--grn) 30%,var(--surf2))!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--grn) 65%,transparent)}
.lv-catalog-cat-tbl td.lv-catalog-cell-selected{background:color-mix(in srgb,var(--grn) 48%,var(--surf2))!important;box-shadow:inset 0 0 0 2px var(--grn)!important;position:relative;z-index:1}
.lv-catalog-cat-tbl td.lv-db-subject-cell.lv-catalog-cell-selected{background:color-mix(in srgb,var(--grn) 42%,var(--surf2))!important;box-shadow:inset 0 0 0 2px var(--grn)!important;position:relative;z-index:1}
.lv-catalog-cat-tbl tr.lv-catalog-cat-insert-row td.lv-catalog-cell-selected{background:color-mix(in srgb,var(--grn) 44%,color-mix(in srgb,var(--amb) 8%,var(--surf2)))!important}
.lv-catalog-cat-tbl th.lv-catalog-cat-level-head{cursor:pointer;user-select:none}
.lv-catalog-cat-tbl th.lv-catalog-cat-level-head:hover{background:color-mix(in srgb,var(--acc) 8%,var(--surf2))}
.lv-catalog-path-inherited{background:color-mix(in srgb,var(--surf2) 90%,transparent)!important;color:var(--mut);cursor:default}
.lv-catalog-cat-tbl tr[data-cat-row-key] td.lv-catalog-path-edit-col,.lv-catalog-cat-tbl tr[data-cat-row-key] td.lv-db-subject-cell{cursor:pointer}
.lv-catalog-add-slot-chk{background:color-mix(in srgb,var(--surf2) 92%,transparent)!important}
.lv-catalog-cat-chk-empty{min-height:22px}
.lv-catalog-draft-col{background:color-mix(in srgb,var(--surf2) 92%,transparent)}
.lv-catalog-cat-tbl .lv-cat-inline-edit{gap:4px}
.lv-catalog-cat-tbl .lv-cat-inline-edit input{padding:3px 6px;font-size:11px}
.lv-catalog-cat-tbl .lv-db-item-row.lv-db-in-cat-grp:not(.lv-db-cat-grp-first) td{border-top:1px solid color-mix(in srgb,var(--bord) 45%,transparent)}
.lv-itemsdb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .6rem}
.lv-itemsdb-toolbar-group{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.lv-itemsdb-toolbar-group+.lv-itemsdb-toolbar-group{padding-left:.6rem;margin-left:.1rem;border-left:1px solid var(--bord)}
.lv-itemsdb-toolbar-group-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-right:2px;white-space:nowrap}
.lv-itemsdb-table-toolbar{margin-left:0;width:100%}
.lv-itemsdb-table-toolbar .lv-itemsdb-search-group{margin-right:auto}
.lv-itemsdb-search-inp{min-width:200px;padding:5px 10px;border:1px solid var(--bord);border-radius:6px;font-size:12px;background:var(--surf)}
.lv-db-cat-toolbar-cell{display:inline-flex;align-items:center;padding:5px 11px;background:var(--surf2);border:1px solid var(--bord);border-radius:6px;cursor:pointer;user-select:none;transition:border-color .15s,background .15s;vertical-align:middle}
.lv-db-cat-toolbar-cell:hover{border-color:var(--grn);background:color-mix(in srgb,var(--grnl) 35%,var(--surf2))}
.lv-db-cat-toolbar-cell:focus-visible{outline:2px solid var(--grn);outline-offset:2px}
.lv-db-cat-toolbar-cell .lv-db-cat-label{font-size:11px;display:inline-flex;align-items:center;gap:5px}
.lv-db-cat-toolbar-cell .lv-db-cat-label i{font-size:12px;line-height:1;opacity:.9}
.lv-cat-inline-edit{display:flex;gap:6px;align-items:center;flex:1;min-width:0}
.lv-cat-inline-edit input{flex:1;min-width:0;padding:4px 8px;border:1px solid var(--bord);border-radius:6px;font-size:12px}
.lv-cat-tree-add-sub{margin-top:4px}
.lv-db-subject-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-bottom:.75rem;background:var(--surf2);border:1px solid var(--bord);border-radius:8px}
.lv-db-subject-bar .lv-db-subject-pill{font-size:11px;padding:5px 13px}
.lv-db-subject-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em;border:1.5px solid transparent;line-height:1.25;white-space:nowrap;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:0 1px 2px rgba(26,25,23,.08)}
.lv-db-uom-pill{display:inline-block;padding:3px 9px;border-radius:7px;font-size:10px;font-weight:700;font-family:var(--mono);letter-spacing:.04em;background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border:1.5px solid var(--bdg-blu-bd);line-height:1.2;white-space:nowrap;box-shadow:0 1px 2px rgba(30,58,138,.12)}
.lv-db-cat-cell-inner{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.lv-db-cat-grp-drag{flex-direction:row;align-items:flex-start;gap:8px;width:100%}
.lv-db-cat-drag-handle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:26px;height:26px;padding:0 6px;border-radius:7px;background:var(--bdg-neutral-bg);color:var(--bdg-neutral-fg);border:1.5px solid var(--bdg-neutral-bd);font-size:11px;font-weight:800;letter-spacing:-2px;line-height:1;cursor:grab;box-shadow:0 1px 2px rgba(26,25,23,.08);touch-action:none;user-select:none;-webkit-user-drag:element}
.lv-db-cat-drag-handle .lv-db-cat-drag-glyph{display:block;line-height:1;pointer-events:none;font-family:var(--sans);letter-spacing:-2px}
.lv-db-cat-drag-hint{font-size:9px;font-weight:500;color:var(--mut);text-transform:none;letter-spacing:0;white-space:nowrap}
.lv-db-cat-drag-handle:hover{background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd)}
.lv-db-cat-drag-handle:active{cursor:grabbing}
.lv-db-cat-path-col.lv-db-cat-drag-over{background:color-mix(in srgb,var(--grnl) 45%,var(--surf2))!important;outline:2px solid var(--grn);outline-offset:-2px}
tr.lv-db-cat-grp-dragging td{opacity:.58}
.lv-db-cat-label{font-weight:600;line-height:1.35;color:var(--panel-text)}
.lv-db-cat-label.lv-db-cat-muted{color:var(--mut);font-weight:500;font-style:italic}
.lv-db-cat-empty-hint{color:var(--mut);font-size:12px;font-style:italic;font-weight:500}
.lv-db-empty-cat-grp td{vertical-align:middle}
.lv-db-cell-actions{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.lv-db-cell-actions .action-badge{padding:3px 9px;font-size:10px;border-radius:8px;gap:3px;font-weight:700;border-width:1.5px}
.lv-db-cell-actions .action-badge i{font-size:11px}
.tbl td.lv-db-actions-col{text-align:right;vertical-align:middle;white-space:nowrap;padding-right:14px}
.tbl td.lv-db-actions-col .action-badge{padding:4px 11px;font-size:10px;font-weight:700;border-width:1.5px}
#dbTable th.db-col-edit,.lv-catalog-item-tbl th.db-col-edit{text-align:center;padding-right:10px}
#dbTable.lv-catalog-item-tbl thead th,#catalogModalBody .lv-catalog-cat-tbl thead th{text-align:center!important;vertical-align:middle;padding:8px 10px}
#catalogModalBody .lv-catalog-cat-tbl thead th.lv-db-subject-head-col{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
#dbTable.lv-catalog-item-tbl thead th.lv-db-cat-head-merged.lv-catalog-categories-group-head{text-align:center!important;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);background:color-mix(in srgb,var(--surf2) 88%,var(--bord));border-bottom:1px solid color-mix(in srgb,var(--bord) 65%,transparent)}
#dbTable.lv-catalog-item-tbl thead th.lv-db-cat-head-merged.lv-db-items-group-head{text-align:center!important;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);background:color-mix(in srgb,var(--surf2) 88%,var(--bord));border-bottom:1px solid color-mix(in srgb,var(--bord) 65%,transparent);border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-catalog-cat-level-head{font-size:9px;padding-top:3px;padding-bottom:5px;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));vertical-align:bottom;border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent);border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-db-item-detail-head{font-size:9px;padding-top:3px;padding-bottom:5px;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));vertical-align:bottom;border-left:1px solid color-mix(in srgb,var(--bord) 55%,transparent);white-space:normal;line-height:1.25}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-db-item-detail-head.lv-db-item-head-start{border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-db-item-detail-head.lv-db-item-head-end{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-catalog-cat-level-head.lv-catalog-cat-level-start{border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-catalog-cat-level-head.lv-catalog-cat-level-end{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl thead th.db-col-edit{padding-right:10px}
#dbTable.lv-catalog-item-tbl thead th.lv-db-cat-head-merged{font-size:10px;letter-spacing:.02em}
#dbTable.lv-catalog-item-tbl thead th .lv-db-cat-drag-hint{display:block;margin-top:2px}
.lv-catalog-item-tbl .db-col-uom{width:48px;max-width:54px;padding-left:4px;padding-right:4px}
.lv-catalog-item-tbl .db-col-mat{padding:4px 4px;white-space:nowrap}
.lv-catalog-item-tbl .db-col-labor{padding:4px 4px;font-size:10px;font-family:var(--mono);white-space:nowrap}
.lv-catalog-item-tbl .db-col-qty{width:52px;max-width:58px;padding-left:4px;padding-right:4px}
.lv-catalog-item-tbl th.db-col-uom,.lv-catalog-item-tbl td.db-col-uom{text-align:center}
.lv-catalog-item-tbl .lv-db-cat-path-col{min-width:140px;max-width:300px;font-size:11px;vertical-align:middle}
#dbTable.lv-catalog-item-tbl{width:100%;min-width:100%;table-layout:auto;border-collapse:collapse;box-sizing:border-box}
#dbTable.lv-catalog-item-tbl.lv-db-cols-sized{table-layout:fixed}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row1 th.lv-catalog-cat-level-head{font-size:9px;padding-top:3px;padding-bottom:5px;background:color-mix(in srgb,var(--surf2) 92%,var(--bord));vertical-align:bottom;border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent);border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl td.lv-db-cat-path-col.lv-catalog-cat-name-col,
#dbTable.lv-catalog-item-tbl thead th.lv-catalog-cat-level-head{width:10rem;min-width:10rem;max-width:10rem;padding:5px 8px;white-space:normal;box-sizing:border-box;overflow:hidden}
#dbTable.lv-catalog-item-tbl .db-col-uom{white-space:nowrap}
#dbTable.lv-catalog-item-tbl .db-col-mat,#dbTable.lv-catalog-item-tbl .db-col-labor{white-space:nowrap;box-sizing:border-box}
#dbTable.lv-catalog-item-tbl thead th.db-col-labor{font-size:9px;line-height:1.2;white-space:nowrap}
#dbTable.lv-catalog-item-tbl thead tr.lv-db-head-row2 th.lv-db-item-detail-head.db-col-labor{border-left:none}
#dbTable.lv-catalog-item-tbl tbody td.db-col-labor{border-left:none}
#dbTable.lv-catalog-item-tbl thead th.lv-db-col-name,#dbTable.lv-catalog-item-tbl td.lv-db-item-name-col,
#dbTable.lv-catalog-item-tbl thead th.lv-db-col-vendor,#dbTable.lv-catalog-item-tbl td.lv-db-col-vendor,
#dbTable.lv-catalog-item-tbl thead th.lv-db-col-part,#dbTable.lv-catalog-item-tbl td.lv-db-col-part{width:auto;min-width:0;max-width:none;box-sizing:border-box;text-align:left!important}
#dbTable.lv-catalog-item-tbl thead th.lv-db-col-vendor,#dbTable.lv-catalog-item-tbl td.lv-db-col-vendor,
#dbTable.lv-catalog-item-tbl thead th.lv-db-col-part,#dbTable.lv-catalog-item-tbl td.lv-db-col-part{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#dbTable.lv-catalog-item-tbl thead th.lv-db-col-part,#dbTable.lv-catalog-item-tbl td.lv-db-col-part{font-family:var(--mono);font-size:11px}
#dbTable.lv-catalog-item-tbl thead th.db-col-uom,#dbTable.lv-catalog-item-tbl td.db-col-uom{text-align:center!important}
#dbTable.lv-catalog-item-tbl thead th.db-col-mat,#dbTable.lv-catalog-item-tbl td.db-col-mat{text-align:right!important}
#dbTable.lv-catalog-item-tbl thead th.db-col-labor,#dbTable.lv-catalog-item-tbl td.db-col-labor{text-align:right!important}
#dbTable.lv-catalog-item-tbl th.db-col-subject,
#dbTable.lv-catalog-item-tbl td.lv-db-subject-cell{width:1%;min-width:13rem;max-width:18rem;white-space:nowrap}
#dbTable.lv-catalog-item-tbl th.db-sel-col,#dbTable.lv-catalog-item-tbl td.db-sel-col{width:44px;min-width:44px;max-width:44px;padding:0!important;text-align:center!important;vertical-align:middle!important;box-sizing:border-box!important}
#dbTable.lv-catalog-item-tbl th.db-sel-col .lv-db-sel-wrap,#dbTable.lv-catalog-item-tbl td.db-sel-col .lv-db-sel-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:36px;margin:0;padding:0;box-sizing:border-box}
#dbTable.lv-catalog-item-tbl td.db-sel-col input[type=checkbox],#dbTable.lv-catalog-item-tbl th.db-sel-col input[type=checkbox]{display:block;width:16px;height:16px;margin:0;padding:0;cursor:pointer;accent-color:var(--grn);flex-shrink:0}
#dbTable.lv-catalog-item-tbl tr.lv-db-in-cat-grp td.db-sel-col{background:var(--surf)}
#dbTable.lv-catalog-item-tbl tr:hover td.db-sel-col{background:var(--surf2)}
#dbTable.lv-catalog-item-tbl td.lv-db-item-name-col{overflow:hidden;word-break:break-word;white-space:normal}
#dbTable.lv-catalog-item-tbl td.lv-db-item-name-col.lv-db-item-edit-cell{cursor:pointer}
#dbTable.lv-catalog-item-tbl td.lv-db-item-name-col.lv-db-item-edit-cell:hover{color:var(--acc)}
.lv-catalog-item-tbl .lv-db-cat-path-col .lv-db-cat-label{font-size:11px;font-weight:600;line-height:1.35;word-break:break-word}
.lv-catalog-item-tbl .lv-db-uom-pill{padding:2px 5px;font-size:9px}
.main:has(#page-itemsdb.on){height:100vh;overflow:hidden;display:flex;flex-direction:column}
#page-itemsdb.page.on{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding-bottom:1rem}
#page-itemsdb .phead,#page-itemsdb .tabs,#page-itemsdb #itemsDbSubjectBar{flex-shrink:0}
#page-itemsdb .lv-itemsdb-table-card{flex:1 1 0;min-height:0;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden}
#page-itemsdb .lv-itemsdb-table-wrap{flex:1 1 0;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}
#catalogModalBody .lv-catalog-cat-tbl.lv-col-resize-active{width:max-content!important;min-width:0!important}
#dbTable.lv-catalog-item-tbl th.db-col-subject{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--panel-text)}
#dbTable.lv-catalog-item-tbl td.lv-db-subject-cell{vertical-align:top;text-align:left;background:color-mix(in srgb,var(--surf2) 92%,transparent);padding:7px 10px;border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl td.lv-db-subject-cell .lv-db-subject-pill{display:inline-flex;align-items:center;justify-content:flex-start;padding:5px 12px;border-radius:8px;font-size:13px;font-weight:800;line-height:1.35;letter-spacing:.02em;border:1.5px solid transparent;box-shadow:0 1px 2px rgba(26,25,23,.08);white-space:nowrap;word-break:normal;text-align:left;max-width:100%;width:auto;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}
#dbTable.lv-catalog-item-tbl th.lv-db-cat-head-merged{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--panel-text)}
#dbTable.lv-catalog-item-tbl .lv-db-cat-path-col.lv-catalog-cat-name-col{font-size:10px;white-space:normal;text-align:left;vertical-align:top}
#dbTable.lv-catalog-item-tbl .lv-db-cat-path-col.lv-catalog-cat-level-start{border-left:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl .lv-db-cat-path-col.lv-catalog-cat-level-end{border-right:2px solid color-mix(in srgb,var(--bord) 78%,transparent)}
#dbTable.lv-catalog-item-tbl td.lv-db-cat-path-col.lv-db-grp{vertical-align:top;background:color-mix(in srgb,var(--surf2) 92%,transparent)}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge{display:inline-flex;align-items:center;justify-content:flex-start;padding:4px 9px;border-radius:8px;font-weight:700;line-height:1.25;letter-spacing:.02em;border:1.5px solid transparent;box-shadow:0 1px 2px rgba(26,25,23,.08);word-break:break-word;text-align:left;max-width:100%;white-space:normal}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-l1{font-size:10px;padding:4px 10px;background:var(--bdg-grn-bg);color:var(--bdg-grn-fg);border-color:var(--bdg-grn-bd);font-weight:800}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-l2{font-size:10px;padding:4px 9px;background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd);font-weight:800}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-l3{font-size:10px;padding:4px 9px;background:var(--bdg-amb-bg);color:var(--bdg-amb-fg);border-color:var(--bdg-amb-bd);font-weight:700}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-l4{font-size:10px;padding:3px 8px;background:var(--bdg-neutral-bg);color:var(--bdg-neutral-fg);border-color:var(--bdg-neutral-bd);font-weight:700}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-l5,#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-l6{font-size:10px;padding:3px 8px;background:color-mix(in srgb,var(--surf2) 88%,var(--bord));color:var(--panel-text);border-color:color-mix(in srgb,var(--bord) 75%,transparent);font-weight:700}
#dbTable.lv-catalog-item-tbl .lv-db-cat-badge-empty{font-size:10px;font-weight:600;font-style:italic;color:var(--mut);background:transparent;border:1.5px dashed color-mix(in srgb,var(--bord) 65%,transparent);box-shadow:none;padding:3px 8px}
#dbTable.lv-catalog-item-tbl .lv-db-cat-path-col .lv-db-cat-label{display:none}
#dbTable.lv-catalog-item-tbl .lv-db-cat-cell-inner{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:6px;width:100%;min-height:0}
#dbTable.lv-catalog-item-tbl .lv-db-cat-grp-drag.lv-db-cat-grp-drag-cat1{justify-content:flex-start;align-items:flex-start;gap:8px}
#dbTable.lv-catalog-item-tbl td.lv-db-cat-drag-cat1-cell .lv-db-cat-badge{text-align:left}
#dbTable.lv-catalog-item-tbl td.lv-db-cat-drag-cat1-cell .lv-db-cat-drag-handle{min-width:26px;height:26px;font-size:11px}
#dbTable.lv-catalog-item-tbl td.lv-db-cat-path-col:not(.lv-db-cat-drag-cat1-cell) .lv-db-cat-drag-handle{display:none!important}
#dbTable.lv-catalog-item-tbl .lv-db-uom-pill{padding:3px 9px;font-size:10px;font-weight:700}
#dbTable.lv-catalog-item-tbl tr.lv-db-in-cat-grp:not(.lv-db-cat-grp-first) td.lv-db-cat-path-col{border-top:none}
#dbTable.lv-catalog-item-tbl tr.lv-db-in-cat-grp:not(.lv-db-cat-grp-first) td:not(.lv-db-cat-path-col):not(.db-sel-col){border-top:1px solid color-mix(in srgb,var(--bord) 45%,transparent)}
.tbl td.lv-db-subject-cell{vertical-align:top;background:var(--surf2);border-right:1px solid color-mix(in srgb, var(--bord) 70%, transparent)}
.tbl td.lv-db-cat-path-col.lv-db-grp{vertical-align:top;background:var(--surf2)}
.lv-db-item-row.lv-db-cat-grp-first:not(.lv-db-subject-first-grp) td{border-top:2px solid var(--bord)}
.lv-db-item-row.lv-db-subject-break td{border-top:3px solid var(--bord)}
.lv-db-item-row.lv-db-in-cat-grp:not(.lv-db-cat-grp-first) td{border-top:1px solid color-mix(in srgb, var(--bord) 55%, transparent)}
.tbl tr.lv-db-subject-sep td{padding:0;border-bottom:1px solid var(--bord);background:transparent}
.lv-db-subject-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:linear-gradient(90deg,var(--surf2) 0%,transparent 100%)}
.lv-db-subject-head-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}
.lv-db-subject-head .lv-db-subject-count{font-size:11px;color:var(--mut)}
.lv-db-subject-head .lv-db-cell-actions{margin-left:0}
.lv-db-item-row td{vertical-align:middle}
.lv-db-item-row .lv-db-subject-pill{vertical-align:middle}
.lv-db-subject-pad{background:var(--surf2)}
.tbl td.lv-db-cat-stub{background:var(--surf2);width:10px;min-width:10px;max-width:14px;padding:0;border-left:3px solid color-mix(in srgb, var(--bord) 80%, transparent)}
.lv-subject-tree-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--bord);border-radius:8px;margin-bottom:6px;background:var(--surf2)}
.lv-subject-tree-row .lv-subject-meta{flex:1;min-width:0}
.lv-subject-tree-row .lv-subject-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:600;font-size:13px}
.lv-subject-tree-row .lv-subject-short{font-size:11px;color:var(--mut);margin-top:2px}
.lv-subject-tree-row .lv-subject-tag{font-size:9px;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px;background:var(--bdg-neutral-bg);color:var(--bdg-neutral-fg);border:1.5px solid var(--bdg-neutral-bd);font-weight:700;margin-left:6px;box-shadow:0 1px 2px rgba(26,25,23,.06)}
.lv-im-cat-level{margin-bottom:.65rem}
.lv-im-cat-level>label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:4px}
.lv-est-toolbar-cat-path{display:flex;flex-wrap:wrap;gap:.65rem;flex:2;min-width:280px}
.lv-est-toolbar-cat-path>.lv-im-cat-level{flex:1;min-width:160px;margin-bottom:0}
.lv-est-cat-path-cell{vertical-align:top;min-width:160px}
.lv-est-cat-path-cell .lv-im-cat-level{margin-bottom:.45rem}
.lv-est-cat-path-cell .lv-im-cat-level:last-child{margin-bottom:0}
.lv-im-cat-empty{font-size:11px;color:var(--mut);margin:.25rem 0 .5rem}
.lv-im-cat-root-add{margin-top:.25rem}
.lv-cat-tree-node{margin-bottom:2px}
.lv-db-cat-path{font-size:12px;line-height:1.45;max-width:240px}
.lv-db-cat-path .lv-db-cat-label{font-weight:600}
.lv-cat-path-selects{display:flex;flex-direction:column;gap:6px;min-width:140px}
.lv-cat-path-selects.compact{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px}
.lv-cat-path-selects.compact .lv-cat-select-level{display:flex;align-items:center;gap:4px}
.lv-cat-path-selects.compact .lv-cat-select{min-width:110px;max-width:160px;font-size:11px;padding:4px 6px}
.lv-cat-path-selects.compact .lv-cat-select-label{display:none}
.lv-cat-select-level{display:flex;flex-direction:column;gap:3px}
.lv-cat-select-label{font-size:10px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.03em}
.lv-cat-path-selects .lv-catalog-cat-inp{border:1px solid var(--bord);border-left-width:3px;border-radius:6px;padding:5px 8px;font-size:12px;min-width:108px;max-width:168px;width:100%;box-sizing:border-box}
.lv-cat-path-selects .lv-catalog-cat-inp-c1{border-left-color:hsl(220,68%,52%);background:color-mix(in srgb,hsl(220,75%,94%) 38%,var(--surf))}
.lv-cat-path-selects .lv-catalog-cat-inp-c2{border-left-color:hsl(158,58%,40%);background:color-mix(in srgb,hsl(158,65%,93%) 38%,var(--surf))}
.lv-cat-path-selects .lv-catalog-cat-inp-c3{border-left-color:hsl(278,58%,52%);background:color-mix(in srgb,hsl(278,65%,94%) 38%,var(--surf))}
.lv-cat-path-selects .lv-catalog-cat-inp-c4{border-left-color:hsl(38,78%,48%);background:color-mix(in srgb,hsl(38,85%,92%) 38%,var(--surf))}
.lv-cat-path-selects .lv-cat-select-level.lv-cat-col{flex:0 0 auto;min-width:108px;max-width:168px}
.lv-cat-select-empty{font-size:11px;color:var(--mut);font-style:italic;margin:0}
.lv-est-cat-level-picks .lv-cat-path-selects,.lv-im-cat-path-wrap .lv-cat-path-selects{max-width:100%}
.lv-est-toolbar-cat-path .lv-cat-path-selects.compact{flex:1;min-width:min(100%,460px)}
.lv-cat-path-selects.lv-cat-hierarchy{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:6px;max-width:100%}
.lv-cat-path-selects.lv-cat-hierarchy .lv-cat-select-label{font-size:9px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.lv-cat-select-admin{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.lv-cat-select-empty{font-size:11px;color:var(--mut);font-style:italic}
.lv-est-toolbar-cat-path .lv-cat-path-selects{min-width:200px;max-width:100%}
.lv-db-cat-path-col .lv-cat-path-selects{max-width:280px}
.lv-cat-cascade{position:relative;display:block;min-width:160px;max-width:100%}
.lv-cat-cascade-trigger{width:100%;text-align:left;padding:6px 28px 6px 9px;border:1px solid var(--bord);border-radius:6px;background:var(--surf);font-size:12px;cursor:pointer;position:relative;color:var(--panel-text);line-height:1.35}
.lv-cat-cascade-trigger:hover{border-color:var(--grn)}
.lv-cat-cascade.open .lv-cat-cascade-trigger{border-color:var(--grn);box-shadow:0 0 0 2px rgba(90,138,42,.15)}
.lv-cat-cascade-trigger::after{content:'▾';position:absolute;right:8px;top:50%;transform:translateY(-50%);opacity:.55;font-size:10px}
.lv-cat-cascade-trigger.placeholder{color:var(--mut);font-style:italic}
.lv-cat-cascade-menu{display:none;position:absolute;left:0;top:calc(100% + 3px);z-index:1500;min-width:190px;overflow:visible}
.lv-cat-cascade.open>.lv-cat-cascade-menu{display:block}
.lv-cat-cascade-panel{background:var(--surf);border:1px solid var(--bord);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.14);padding:4px 0;overflow:visible;min-width:190px}
.lv-cat-cascade-panel.sub{position:absolute;left:calc(100% - 4px);top:-4px;display:none;min-width:190px;z-index:1510}
.lv-cat-cascade-item-wrap{position:relative;overflow:visible}
.lv-cat-cascade-item-wrap:hover>.lv-cat-cascade-panel.sub,.lv-cat-cascade-item-wrap:focus-within>.lv-cat-cascade-panel.sub{display:block}
.lv-cat-cascade-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px;font-size:12px;cursor:pointer;white-space:nowrap;color:var(--panel-text);user-select:none}
.lv-cat-cascade-item:hover,.lv-cat-cascade-item:focus{background:var(--surf2);outline:none}
.lv-cat-cascade-item.in-path{font-weight:600;color:var(--grn)}
.lv-cat-cascade-item.has-children::after{content:'›';opacity:.55;font-size:14px;line-height:1;flex-shrink:0}
.lv-cat-cascade-clear{padding:7px 12px;font-size:11px;color:var(--mut);border-top:1px solid var(--bord);cursor:pointer}
.lv-cat-cascade-clear:hover{background:var(--surf2);color:var(--panel-text)}
.lv-est-cat-path-cell{vertical-align:top;min-width:160px;overflow:visible}
.lv-est-cat-path-cell .lv-cat-cascade{min-width:150px}
.lv-est-toolbar-cat-path .lv-cat-cascade{min-width:200px;max-width:320px;width:100%}
.lv-new-est-toolbar .lv-est-toolbar-cat-path .lv-im-cat-level.lv-est-cat-level-picks,
.lv-new-est-toolbar .lv-est-toolbar-cat-path .lv-im-cat-level.lv-est-item-level-picks{flex:1 1 200px;min-width:200px;max-width:320px;margin-bottom:0}
.lv-new-est-toolbar .lv-est-toolbar-cat-path .lv-cat-cascade{width:100%;max-width:100%}
.lv-new-est-toolbar .lv-est-toolbar-cat-path select.lv-est-pick-select{width:100%;max-width:100%;box-sizing:border-box;padding:6px 28px 6px 9px;font-size:12px;line-height:1.35;border:1px solid var(--bord);border-radius:6px;background:var(--surf);color:var(--panel-text);min-height:31px;cursor:pointer}
.lv-new-est-toolbar .lv-est-toolbar-cat-path select.lv-est-pick-select:hover{border-color:var(--grn)}
.lv-new-est-toolbar .lv-est-toolbar-cat-path select.lv-est-pick-select:focus{border-color:var(--grn);box-shadow:0 0 0 2px rgba(90,138,42,.15);outline:none}
#itemModal .modal.lv-modal-item-form{overflow:visible;max-height:none}
#itemModal.modal-bg{align-items:flex-start;padding:2rem 1rem;overflow-y:auto}
#im-cat-path-section{overflow:visible;position:relative;z-index:2}
.lv-im-cat-path-wrap{display:flex;flex-direction:column;gap:0;align-items:flex-start;max-width:100%}
#im-cat-path-host .lv-cat-cascade{min-width:220px;max-width:100%}
#im-cat-path-host .lv-cat-cascade-menu{z-index:2500}
.lv-im-cat-admin{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
.lv-im-cat-admin-hint{font-size:11px;color:var(--mut);margin:6px 0 0;line-height:1.45;max-width:420px}
.tbl td.lv-est-cat-path-cell{overflow:visible}
.card.lv-est-pick,.card.lv-est-lines-card,.lv-new-est-toolbar.card{overflow:visible!important;position:relative;z-index:4}
.lv-new-est-toolbar .lv-est-toolbar-cat-path,.lv-new-est-toolbar .lv-cat-cascade{overflow:visible;position:relative;z-index:5}
.lv-new-est-toolbar .lv-cat-cascade.open{z-index:40}
.lv-new-est-toolbar .lv-cat-cascade-menu{z-index:50}
.lv-new-est-toolbar button.action-badge{font:inherit}
.lv-est-lines-empty{margin-top:.75rem;font-size:12px;color:var(--mut);line-height:1.5}
.lv-est-lines-tbl td.lv-est-line-cat{min-width:120px;max-width:220px;font-size:11px;color:var(--mut);vertical-align:middle;font-weight:600;line-height:1.35;word-break:break-word}
.lv-est-lines-tbl td.lv-est-line-name{font-weight:500;vertical-align:middle}
.lv-est-lines-tbl td.mono{font-family:var(--mono);font-size:11px}
.lv-est-lines-tbl input.mono{width:100%;max-width:5rem;text-align:right}
.lv-est-lines-tbl tr.lv-est-desc-row td{padding-top:0;border-top:none;background:var(--surf2)}
.lv-est-lines-tbl .lv-est-desc-input{width:100%;font-size:11px}
/* ══ ESTIMATOR (full-width, stylish) ══ */
.page.lv-est-page{display:none;flex-direction:column;gap:1rem}
.page.lv-est-page.on{display:flex}
.lv-est-hero{
  padding:1.15rem 1.35rem 1.05rem;
  border:1px solid color-mix(in srgb,var(--grn) 22%,var(--bord));
  border-radius:14px;
  background:
    radial-gradient(1200px 180px at 0% 0%,color-mix(in srgb,var(--grn) 14%,transparent),transparent 60%),
    linear-gradient(135deg,color-mix(in srgb,var(--grn) 8%,var(--surf)),var(--surf) 55%,color-mix(in srgb,var(--surf2) 80%,var(--surf)));
  box-shadow:0 10px 28px rgba(26,25,23,.05);
}
.lv-est-phead{margin-bottom:.85rem;gap:1rem;align-items:flex-start}
.lv-est-phead-kicker{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--grn);margin-bottom:6px;
  padding:3px 8px;border-radius:999px;
  background:color-mix(in srgb,var(--grn) 12%,var(--surf));
  border:1px solid color-mix(in srgb,var(--grn) 18%,var(--bord));
}
.lv-est-phead-kicker i{font-size:12px}
.lv-est-phead h1{font-size:24px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem;color:var(--panel-text)}
.lv-est-phead h1 i{font-size:22px;color:var(--grn)}
.lv-est-phead p{color:var(--mut);font-size:12px;margin-top:5px;line-height:1.5;max-width:52rem}
.lv-est-phead-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;justify-content:flex-end}
.lv-est-phead-actions .action-badge{
  padding:7px 13px;font-size:11px;font-weight:700;border-radius:8px;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset;
}
.lv-est-hero-stats{display:flex;flex-wrap:wrap;gap:.55rem}
.lv-est-hero-stat{
  min-width:7.5rem;padding:.55rem .8rem;border-radius:10px;
  background:color-mix(in srgb,var(--surf) 88%,transparent);
  border:1px solid color-mix(in srgb,var(--bord) 85%,var(--grn));
  display:flex;flex-direction:column;gap:2px;
  backdrop-filter:blur(4px);
}
.lv-est-hero-stat span{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.lv-est-hero-stat strong{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--panel-text);font-variant-numeric:tabular-nums}
.lv-est-hero-stat-accent{border-color:color-mix(in srgb,var(--grn) 35%,var(--bord));background:color-mix(in srgb,var(--grnl) 55%,var(--surf))}
.lv-est-hero-stat-accent strong{color:var(--grn)}
.lv-est-hero-stat-bid{
  margin-left:auto;
  background:linear-gradient(135deg,#1a1917,#2a2826);
  border-color:#1a1917;color:#fff;
}
.lv-est-hero-stat-bid span{color:rgba(255,255,255,.65)}
.lv-est-hero-stat-bid strong{color:#fff;font-size:15px}
.lv-est-body{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:none;flex:1;min-height:0}
.lv-est-card-meta{
  font-size:11px;color:var(--mut);font-weight:600;font-family:var(--mono);
  padding:4px 9px;border-radius:999px;background:var(--surf2);border:1px solid var(--bord);
}
.lv-est-card-head{align-items:center!important;padding:.85rem 1rem!important}
.lv-est-card-head-title{display:flex;align-items:center;gap:.7rem;min-width:0}
.lv-est-card-head-title h3{margin:0;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:none;color:var(--panel-text)}
.lv-est-card-sub{display:block;font-size:11px;color:var(--mut);font-weight:500;margin-top:2px;letter-spacing:0;text-transform:none}
.lv-est-card-icon{
  width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--grnl);color:var(--grn);font-size:16px;flex-shrink:0;
}
.lv-est-card-icon-lines{background:var(--blul);color:var(--blu)}
.lv-new-est-toolbar.card{
  overflow:visible!important;margin-bottom:0;border-radius:12px;
  border-color:color-mix(in srgb,var(--grn) 16%,var(--bord));
  box-shadow:0 8px 22px rgba(26,25,23,.04);
}
.lv-new-est-toolbar .card-head{
  background:linear-gradient(180deg,color-mix(in srgb,var(--grnl) 35%,var(--surf2)),var(--surf2));
  border-bottom:1px solid color-mix(in srgb,var(--grn) 12%,var(--bord));
}
.lv-est-toolbar-body{display:flex;flex-wrap:wrap;gap:.85rem 1.1rem;align-items:flex-end;padding:1rem 1.1rem 1.1rem}
.lv-est-toolbar-readonly{margin:0;font-size:12px;color:var(--mut);padding:.15rem 0}
.lv-est-toolbar-btns{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding-bottom:1px}
.lv-est-toolbar-btns .action-badge,.lv-est-toolbar-btns button.action-badge{
  padding:8px 14px;font-size:11px;font-weight:700;border-radius:8px;
}
.lv-est-qty-field{flex:0 0 auto;margin-bottom:0!important}
.lv-new-est-card{
  overflow:hidden;margin-bottom:0;border-radius:12px;flex:1;
  box-shadow:0 8px 22px rgba(26,25,23,.04);
}
.lv-new-est-card .card-head{
  background:linear-gradient(180deg,var(--surf2),color-mix(in srgb,var(--surf2) 70%,var(--surf)));
}
.lv-new-est-table-wrap{overflow-x:auto;min-height:12rem}
.lv-new-est-tbl{width:100%;border-collapse:collapse;table-layout:auto}
.lv-new-est-tbl thead th{
  position:sticky;top:0;z-index:1;
  background:color-mix(in srgb,var(--surf2) 92%,var(--grnl));
  border-bottom:1px solid var(--bord);
  padding:10px 12px;font-size:10px;white-space:nowrap;letter-spacing:.07em;
}
.lv-new-est-tbl td{padding:8px 12px;vertical-align:middle;font-size:12px}
.lv-new-est-tbl tbody tr.lv-new-est-row td{border-bottom:1px solid color-mix(in srgb,var(--bord) 80%,transparent)}
.lv-new-est-tbl tbody tr.lv-new-est-row:nth-child(even) td{background:color-mix(in srgb,var(--surf2) 55%,var(--surf))}
.lv-new-est-tbl tbody tr.lv-new-est-row:hover td{background:color-mix(in srgb,var(--grnl) 34%,var(--surf))}
.lv-new-est-tbl td input.fc,.lv-new-est-tbl td select.fc{width:100%;min-width:0;font-size:12px;box-sizing:border-box;border-radius:6px}
.lv-new-est-tbl td input.fc:focus,.lv-new-est-tbl td select.fc:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--grn) 18%,transparent)}
.lv-new-est-tbl .lv-est-col-item{min-width:180px}
.lv-new-est-tbl .lv-est-col-vendor{min-width:10rem;width:12rem}
.lv-new-est-tbl .lv-est-col-part{min-width:9rem;width:11rem;text-align:left}
.lv-new-est-tbl .lv-est-col-part input.fc{text-align:left;font-family:var(--mono)}
.lv-new-est-tbl .lv-est-col-vendor input.fc,.lv-new-est-tbl .lv-est-col-part input.fc{min-width:0}
.lv-new-est-tbl .lv-est-col-qty{width:6rem;min-width:6rem}
.lv-new-est-tbl .lv-est-col-uom{min-width:5.5rem;width:6.5rem;text-align:left}
.lv-new-est-tbl .lv-est-col-uom select.fc{text-align:left;padding-left:6px;padding-right:4px}
.lv-new-est-tbl thead th.lv-est-col-uom,.lv-new-est-tbl td.lv-est-col-uom{text-align:left}
.lv-new-est-tbl .lv-est-col-unitmat{width:8rem;min-width:7.5rem}
.lv-new-est-tbl .lv-est-col-unitmat input.fc{min-width:6.75rem;padding-left:4px;padding-right:4px}
.lv-new-est-tbl .lv-est-col-num{width:5.5rem}
.lv-new-est-tbl .lv-est-col-calc{width:5.5rem;color:var(--mut);font-size:11px}
.lv-new-est-tbl .lv-est-col-total{width:6rem;font-weight:700;color:var(--panel-text)}
.lv-new-est-tbl .lv-est-col-actions{width:5.5rem;min-width:5.5rem}
.lv-new-est-tbl .lv-est-col-drag{width:2.1rem;min-width:2.1rem;padding-left:4px;padding-right:4px}
.lv-new-est-tbl thead th.lv-est-col-drag{color:var(--mut);font-size:12px}
.lv-est-line-drag-handle{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:26px;padding:0 5px;border-radius:7px;
  background:var(--bdg-neutral-bg);color:var(--bdg-neutral-fg);
  border:1.5px solid var(--bdg-neutral-bd);cursor:grab;
  box-shadow:0 1px 2px rgba(26,25,23,.08);touch-action:none;user-select:none;-webkit-user-drag:element;
}
.lv-est-line-drag-handle .lv-est-line-drag-glyph{display:block;line-height:1;pointer-events:none;font-family:var(--sans);letter-spacing:-2px;font-size:12px;font-weight:800}
.lv-est-line-drag-handle:hover{background:var(--bdg-blu-bg);color:var(--bdg-blu-fg);border-color:var(--bdg-blu-bd)}
.lv-est-line-drag-handle:active{cursor:grabbing}
.lv-new-est-tbl tr.lv-est-line-dragging td{opacity:.55}
.lv-new-est-tbl tr.lv-est-line-drag-over td{background:color-mix(in srgb,var(--grnl) 42%,var(--surf))!important;box-shadow:inset 0 2px 0 var(--grn)}
.lv-est-line-actions{display:inline-flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap}
.lv-est-line-actions .action-badge{padding:4px 6px}
.lv-est-line-actions .action-badge.disabled{opacity:.35;pointer-events:none;cursor:default}
.lv-new-est-toolbar .lv-est-toolbar-cat-path{display:flex;flex-wrap:wrap;gap:.7rem;flex:1;min-width:300px;align-items:flex-end}
.lv-new-est-toolbar .lv-est-toolbar-cat-path>.lv-im-cat-level{margin-bottom:0}
.lv-new-est-toolbar .lv-im-cat-level:not(.lv-est-cat-level-picks):not(.lv-est-item-level-picks){min-width:180px;flex:1;max-width:360px;margin-bottom:0}
.lv-new-est-toolbar .lv-im-cat-level select.fc{width:100%;font-size:12px}
.lv-new-est-toolbar .lv-im-cat-level>label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);margin-bottom:5px;font-weight:700}
.lv-new-est-toolbar .lv-est-pick-qty{width:6rem}
.lv-new-est-toolbar .lv-est-toolbar-cat-path .lv-im-cat-level.lv-est-cat-level-picks,
.lv-new-est-toolbar .lv-est-toolbar-cat-path .lv-im-cat-level.lv-est-item-level-picks{flex:1 1 220px;min-width:220px;max-width:380px}
.lv-new-est-desc-row td{padding:0 12px 9px;background:color-mix(in srgb,var(--surf2) 90%,transparent);border-bottom:1px solid var(--bord)}
.lv-new-est-desc-row .lv-est-desc-input{font-size:11px;color:var(--mut)}
.lv-new-est-empty{padding:0!important;border-bottom:none!important}
.lv-est-empty-state{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;
  padding:3rem 1.5rem;text-align:center;color:var(--mut);
  background:
    radial-gradient(420px 120px at 50% 20%,color-mix(in srgb,var(--grn) 10%,transparent),transparent 70%);
}
.lv-est-empty-state i{font-size:32px;opacity:.5;color:var(--grn)}
.lv-est-empty-state strong{font-size:14px;font-weight:700;color:var(--panel-text)}
.lv-est-empty-state span{font-size:12px;line-height:1.5;max-width:30rem}
.lv-est-subject-totals{
  display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem 1.35rem;
  padding:.85rem 1.1rem;
  background:linear-gradient(180deg,var(--surf2),color-mix(in srgb,var(--surf2) 70%,#ebe8e1));
  border-top:1px solid var(--bord);
}
.lv-est-tot{display:flex;align-items:baseline;gap:.55rem;font-size:11px;color:var(--mut)}
.lv-est-tot strong{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--panel-text)}
.lv-est-tot-sub{
  padding:.35rem .7rem .35rem .85rem;border-left:none;border-radius:8px;
  background:#1a1917;color:#fff;
}
.lv-est-tot-sub span{text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:rgba(255,255,255,.7)}
.lv-est-tot-sub strong{font-size:13px;color:#fff}
.lv-file-protocol-banner{position:fixed;inset:0;z-index:99999;background:rgba(20,18,14,.72);display:flex;align-items:center;justify-content:center;padding:1.25rem}
.lv-file-protocol-banner .lv-fpb-card{max-width:520px;background:var(--surf);border:1px solid var(--bord);border-radius:12px;padding:1.25rem 1.35rem;box-shadow:0 16px 48px rgba(0,0,0,.25)}
.lv-file-protocol-banner h2{margin:0 0 .65rem;font-size:18px;color:var(--panel-text)}
.lv-file-protocol-banner p{margin:0 0 .75rem;font-size:13px;line-height:1.55;color:var(--mut)}
.lv-file-protocol-banner code{font-family:var(--mono);font-size:12px;background:var(--surf2);padding:2px 6px;border-radius:4px}
.lv-file-protocol-banner .lv-fpb-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}

