:root {
  --nsj-red:       #ed2f33;
  --nsj-red-dark:  #c0181b;
  --nsj-red-light: #ffeaea;
  --font-display: 'Cabinet Grotesk', sans-serif;
  --font-body:    'Satoshi', sans-serif;
  --text-xs:   clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm:   clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg:   clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl:   clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;
  --space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;
  --bg:#f4f4f5;--surface:#ffffff;--surface-2:#f9f9fa;--border:#e4e4e7;
  --text-1:#18181b;--text-2:#52525b;--text-3:#a1a1aa;
  --shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px rgba(0,0,0,.06);
  --shadow-lg:0 4px 16px rgba(0,0,0,.1),0 12px 40px rgba(0,0,0,.08);
  --radius:10px;--radius-sm:6px;
}
[data-theme="dark"] {
  --bg:#111113;--surface:#1c1c1f;--surface-2:#27272a;--border:#3f3f46;
  --text-1:#fafafa;--text-2:#a1a1aa;--text-3:#71717a;
  --shadow:0 1px 3px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.25);
  --shadow-lg:0 4px 16px rgba(0,0,0,.4),0 12px 40px rgba(0,0,0,.3);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{max-width:100%;overflow-x:hidden;position:relative;}
html{font-size:16px;-webkit-text-size-adjust:100%;overflow-x:hidden;width:100%;}
body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-1);background:var(--bg);min-height:100vh;overflow-x:hidden;width:100%;}
a{color:var(--nsj-red);text-decoration:none;}
input,select,textarea,button{font-family:inherit;font-size:inherit;}
input,select,textarea{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-1);outline:none;transition:border-color .15s;box-sizing:border-box;}
input,select,textarea{max-width:100%;min-width:0;}
.form-group{min-width:0;}input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-height:44px;line-height:1.4;width:100%;max-width:100%;min-width:0;box-sizing:border-box;}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2.8rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.75rem center;background-size:16px 16px;}
input:focus,select:focus,textarea:focus{border-color:var(--nsj-red);}
/* v87 B: calendar inputs styled with NSJ red border */
.cal-input{border-color:var(--nsj-red)!important;background:var(--nsj-red-light)!important;color:var(--text-1)!important;}
.cal-input:focus{border-color:var(--nsj-red-dark)!important;outline:none;box-shadow:0 0 0 2px rgba(237,47,51,.18)!important;}
textarea{resize:vertical;min-height:80px;}
label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-2);margin-bottom:var(--space-2);}label.wt-option,label.tier-card,label.stage-pill{cursor:pointer;}

.form-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-1);margin-bottom:var(--space-2);}
.field{margin-bottom:var(--space-5);}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.15;}
h1{font-size:var(--text-xl);}h2{font-size:var(--text-lg);}h3{font-size:var(--text-base);font-weight:700;}


.app-header{background:var(--surface);border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);position:sticky;top:0;z-index:100;box-shadow:var(--shadow);width:100%;max-width:100%;box-sizing:border-box;overflow:hidden;}
.header-brand{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex-shrink:1;}
.header-brand img{width:66px;height:66px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;}
.header-brand-text{min-width:0;overflow:hidden;}
.header-brand-text h1{font-size:var(--text-base);font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.header-brand-text span{font-size:var(--text-xs);color:var(--text-3);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;}


.nav-tabs-outer{background:var(--surface);border-bottom:1.5px solid var(--border);width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;box-sizing:border-box;position:relative;}
.nav-tabs-outer::-webkit-scrollbar{display:none;}

.nav-tabs{display:flex;gap:0;padding:0 var(--space-4);width:100%;min-width:max-content;box-sizing:border-box;overflow:visible;justify-content:center;}
.nav-tabs::-webkit-scrollbar{display:none;}
.tab-btn{background:none;border:none;border-bottom:2.5px solid transparent;padding:var(--space-4) var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;flex-shrink:0;}
.set-subtab-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:8px 16px;font-size:var(--text-sm);font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s;}
.set-subtab-btn:hover{color:var(--text-1);border-color:var(--text-3);}
.set-subtab-btn.active{background:var(--nsj-red);border-color:var(--nsj-red);color:#fff;}
.tab-btn:hover{color:var(--text-1);}
.tab-btn.active{color:var(--nsj-red);border-bottom-color:var(--nsj-red);}
.nav-group{position:relative;display:inline-flex;}
.nav-group-btn{background:none;border:none;border-bottom:2.5px solid transparent;padding:var(--space-4) var(--space-4);font-size:var(--text-sm);font-weight:700;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;font-family:inherit;}
.nav-group-btn:hover,.nav-group-btn.open{color:var(--nsj-red);}
.nav-cta,.nav-cta:hover,.nav-cta.open{color:#fff !important;}
.nav-cta:hover{filter:brightness(1.08);}
.nav-group-btn.active{color:var(--nsj-red);border-bottom-color:var(--nsj-red);}
.nav-cta.active{color:#fff !important;border-bottom-color:transparent;}
.nav-group-drop{display:none;position:fixed;top:0;left:0;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:1200;min-width:180px;max-width:calc(100vw - 24px);padding:var(--space-2) 0;}
.nav-group-drop.open{display:flex;flex-direction:column;}
.nav-group-drop .tab-btn{border-bottom:none!important;border-left:3px solid transparent;border-radius:0;padding:var(--space-3) var(--space-4);text-align:left;width:100%;}
.nav-group-drop .tab-btn.active{border-left-color:var(--nsj-red);background:var(--surface-2);}
.nav-group-drop .tab-btn:hover{background:var(--surface-2);}

[data-theme="dark"] [style*="#f5f3ff"]{background:rgba(139,92,246,.14)!important;border-color:rgba(139,92,246,.34)!important;}
[data-theme="dark"] [style*="#eff6ff"]{background:rgba(59,130,246,.14)!important;border-color:rgba(59,130,246,.34)!important;}
[data-theme="dark"] [style*="#f0fdf4"]{background:rgba(34,197,94,.14)!important;border-color:rgba(34,197,94,.34)!important;}
[data-theme="dark"] [style*="#fefce8"]{background:rgba(234,179,8,.16)!important;border-color:rgba(234,179,8,.36)!important;}
[data-theme="dark"] [style*="#fff7ed"]{background:rgba(249,115,22,.15)!important;border-color:rgba(249,115,22,.34)!important;}
[data-theme="dark"] [style*="#fef2f2"]{background:rgba(237,47,51,.15)!important;border-color:rgba(237,47,51,.36)!important;}


.main-wrap{max-width:1200px;margin:0 auto;padding:var(--space-8);width:100%;box-sizing:border-box;}
.panel{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:visible;margin-bottom:0;max-width:100%;box-sizing:border-box;}
.panel-header{overflow:hidden;padding:var(--space-5) var(--space-6);border-bottom:1.5px solid var(--border);display:flex;align-items:center;gap:var(--space-3);}
.panel-header h2{font-size:var(--text-base);font-weight:700;}
.panel-body{padding:var(--space-6);overflow:hidden;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-5);}
.two-col>*,.three-col>*{min-width:0;}
.col-layout{display:grid;grid-template-columns:1fr minmax(0,380px);gap:var(--space-6);align-items:start;width:100%;max-width:100%;}
.left-col,.right-col{display:flex;flex-direction:column;gap:var(--space-6);min-width:0;max-width:100%;overflow:hidden;}

@media(max-width:900px){
  .col-layout{grid-template-columns:1fr!important;}
  .two-col{grid-template-columns:1fr 1fr;}
  .three-col{grid-template-columns:1fr 1fr;}
  .main-wrap{padding:var(--space-5);}
  .app-header{padding:var(--space-3) var(--space-4);}
}

@media(max-width:600px){
  .col-layout,.two-col,.three-col{grid-template-columns:1fr!important;max-width:100%;}
  .app-header{padding:var(--space-3);gap:var(--space-2);}
  .header-brand img{width:54px;height:54px;}
  .header-brand-text h1{font-size:var(--text-sm);}
  .header-actions{gap:6px;}
  .theme-toggle{width:32px;height:32px;font-size:14px;}
  .tab-btn{padding:var(--space-3) 10px;font-size:11px;}

  #dash-kpis{grid-template-columns:repeat(2,1fr)!important;}

  #cal-tab-iframe{height:62vh!important;min-height:420px!important;}
  #cal-tab-body{min-height:420px!important;}
  #cal-tab-controls{gap:var(--space-2)!important;}
  #cal-tab-controls select{width:100%!important;min-width:0!important;}
  #cal-tab-open-btn{font-size:11px!important;padding-left:var(--space-3)!important;padding-right:var(--space-3)!important;}
  .main-wrap{padding:var(--space-3);}
  .panel-body{padding:var(--space-3);}
  .panel-header{padding:var(--space-4);}
  .tab-content{max-width:100%;overflow-x:hidden;}
}


.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;border:none;white-space:nowrap;min-height:44px;max-width:100%;box-sizing:border-box;}
.btn-primary{background:var(--nsj-red);color:#fff;}
.btn-primary:hover{background:var(--nsj-red-dark);}
.btn-secondary{background:var(--surface-2);color:var(--text-1);border:1.5px solid var(--border);}
.btn-secondary:hover{background:var(--border);}
.btn-danger{background:#fee2e2;color:#991b1b;border:1.5px solid #fca5a5;}
.btn-danger:hover{background:#fca5a5;}
.btn-ghost{background:none;color:var(--text-2);padding:var(--space-2) var(--space-3);min-height:36px;}
.btn-ghost:hover{color:var(--text-1);background:var(--surface-2);}
.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);min-height:36px;}
.btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--border);cursor:pointer;color:var(--text-2);transition:background .15s;font-size:13px;}
.btn-icon:hover{background:var(--border);color:var(--text-1);}


.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:999px;font-size:var(--text-xs);font-weight:600;white-space:nowrap;}
.badge-red{background:var(--nsj-red-light);color:var(--nsj-red-dark);}
.badge-green{background:#dcfce7;color:#166534;}
.badge-amber{background:#fef9c3;color:#854d0e;}
.badge-blue{background:#dbeafe;color:#1e40af;}
.badge-grey{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);}
[data-theme="dark"] .badge-green{background:#14532d;color:#86efac;}
[data-theme="dark"] .badge-amber{background:#713f12;color:#fde047;}
[data-theme="dark"] .badge-blue{background:#1e3a5f;color:#93c5fd;}


.section-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);}


.work-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:var(--space-2);}@media(max-width:600px){.work-type-grid{grid-template-columns:1fr;}}
.wt-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s;background:var(--surface-2);margin-bottom:0;overflow:hidden;}
.wt-option:hover{border-color:var(--nsj-red);background:var(--nsj-red-light);}
.wt-option.selected{border-color:var(--nsj-red);background:var(--nsj-red-light);}
.wt-option input[type=checkbox]{accent-color:var(--nsj-red);width:15px;height:15px;flex-shrink:0;cursor:pointer;}
.wt-option-label{font-size:var(--text-sm);font-weight:600;color:var(--text-1);line-height:1.3;}
.wt-option-code{font-size:var(--text-xs);color:var(--text-3);font-family:monospace;}
.wt-selected-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3);min-height:28px;}
.wt-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;background:var(--nsj-red);color:#fff;border-radius:999px;font-size:var(--text-xs);font-weight:700;}


.line-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;display:block;-ms-overflow-style:-ms-autohiding-scrollbar;}
.line-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:420px;}
.line-table th{text-align:left;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3);border-bottom:1.5px solid var(--border);white-space:nowrap;}
.line-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);vertical-align:middle;}
.line-table tr:last-child td{border-bottom:none;}
.line-table input{min-width:60px;}
.line-table select{min-width:80px;width:auto;}
.line-table td:nth-child(2),.line-table th:nth-child(2){width:70px;}
.line-table td:nth-child(4),.line-table th:nth-child(4){width:90px;}
/* v178: description grows to fit trade text instead of scrolling sideways
   inside a one-line box - min-height ~2 lines, still user-resizable. */
.line-table textarea.li-desc{min-height:56px;min-width:160px;line-height:1.4;}
.totals-block{margin-top:var(--space-4);display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);width:100%;overflow-x:hidden;}
.total-row{display:flex;gap:var(--space-4);font-size:var(--text-sm);min-width:0;width:100%;justify-content:space-between;}
.total-row.grand{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--nsj-red);padding-top:var(--space-3);border-top:2px solid var(--border);}
.total-label{color:var(--text-2);}
.total-value{font-weight:600;text-align:right;}


.payment-callout{margin-top:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-2);border:1.5px solid var(--border);border-left:4px solid var(--nsj-red);border-radius:var(--radius-sm);font-size:var(--text-sm);}
.payment-callout p{color:var(--text-2);margin-top:var(--space-1);}


.ref-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-family:'Courier New',monospace;font-size:var(--text-sm);font-weight:700;color:var(--text-1);letter-spacing:0.04em;}
.ref-badge .ref-prefix{color:var(--nsj-red);}


.saved-quote-card{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);cursor:pointer;transition:border-color .15s;flex-wrap:wrap;overflow:hidden;box-sizing:border-box;width:100%;}
.saved-quote-card:hover{border-color:var(--nsj-red);}
.saved-quote-card.active-card{border-color:var(--nsj-red);background:var(--nsj-red-light);}

.sqc-left{flex:1;min-width:0;overflow:hidden;}
.sqc-ref{font-family:monospace;font-size:var(--text-xs);color:var(--nsj-red);font-weight:700;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sqc-client{font-weight:700;font-size:var(--text-sm);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sqc-meta{font-size:var(--text-xs);color:var(--text-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sqc-price-row{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;}
.sqc-total{font-family:var(--font-display);font-weight:800;font-size:var(--text-base);color:var(--nsj-red);white-space:nowrap;flex-shrink:0;}
.sqc-actions{display:flex;gap:var(--space-2);flex-shrink:0;align-items:center;flex-wrap:wrap;}

@media(max-width:640px){
  .saved-quote-card{padding:var(--space-3);align-items:flex-start;}
  .sqc-left{width:100%;flex:0 0 100%;}
  .sqc-actions{width:100%;flex:0 0 100%;margin-top:var(--space-2);justify-content:flex-start;}
  .sqc-actions .btn{flex:1;min-height:40px;padding:8px 6px;font-size:12px;justify-content:center;}
  .sqc-actions .btn-ghost{flex:0 0 auto;min-height:40px;}
  .sqc-total{font-size:var(--text-sm);}
}


.stage-pills{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3);}
.stage-pill{flex:1;min-width:min(140px,40%);max-width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-4);background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s;position:relative;margin-bottom:0;}
.stage-pill.active{border-color:var(--nsj-red);background:var(--nsj-red-light);}
.stage-pill input[type=checkbox]{position:absolute;top:var(--space-3);right:var(--space-3);width:16px;height:16px;accent-color:var(--nsj-red);}
.stage-pill .pill-label{font-weight:700;font-size:var(--text-sm);color:var(--text-1);}
.stage-pill .pill-pct{font-size:var(--text-xl);font-family:var(--font-display);font-weight:800;color:var(--nsj-red);line-height:1;margin:var(--space-1) 0;}
.stage-pill .pill-amount{font-size:var(--text-sm);color:var(--text-2);}
.stage-pill .pill-status{font-size:var(--text-xs);color:var(--text-3);margin-top:2px;}


.tier-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-top:var(--space-3);max-width:100%;}
@media(max-width:700px){.tier-cards{grid-template-columns:1fr;}}
.tier-card{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-5);cursor:pointer;transition:border-color .15s;background:var(--surface-2);margin-bottom:0;}
.tier-card:hover,.tier-card.selected{border-color:var(--nsj-red);background:var(--nsj-red-light);}
.tier-card .tier-name{font-weight:700;font-size:var(--text-sm);margin-bottom:var(--space-1);}
.tier-card .tier-price{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--nsj-red);}
.tier-card .tier-desc{font-size:var(--text-xs);color:var(--text-2);margin-top:var(--space-2);line-height:1.5;}
.tier-card input[type=radio]{display:none;}


.info-box{padding:var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);display:flex;gap:var(--space-3);align-items:flex-start;}
.info-box.info{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe;}
.info-box.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;}
.info-box.warn{background:#fef9c3;color:#854d0e;border:1px solid #fde047;}
[data-theme="dark"] .info-box.info{background:#1e3a5f;color:#93c5fd;border-color:#1d4ed8;}
[data-theme="dark"] .info-box.success{background:#14532d;color:#86efac;border-color:#166534;}
[data-theme="dark"] .info-box.warn{background:#713f12;color:#fde047;border-color:#854d0e;}


.theme-toggle{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .15s;}
.theme-toggle:hover{background:var(--border);}


.tab-content{display:none;}
.tab-content.active{display:block;}


.doc-preview{background:#fff;color:#18181b;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:min(800px,100%);width:100%;margin:0 auto;padding:var(--space-12);font-family:var(--font-body);font-size:14px;line-height:1.6;overflow-x:auto;box-sizing:border-box;}
@media(max-width:700px){.doc-preview{padding:var(--space-5) var(--space-4);font-size:12px;}}
@media(max-width:480px){.doc-preview{padding:var(--space-4) var(--space-3);font-size:11px;}}
.doc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8);gap:var(--space-6);}
.doc-logo{width:165px;height:165px;border-radius:8px;object-fit:cover;flex-shrink:0;}

@media(max-width:600px){.doc-header{flex-direction:row;gap:var(--space-4);}.doc-logo{width:120px;height:120px;}.doc-logo-text .doc-brand{font-size:15px;}.doc-logo-text .doc-tagline{font-size:10px;}.doc-meta{text-align:right;}}
.doc-logo-block{display:flex;align-items:center;gap:12px;min-width:0;}
.doc-logo-text .doc-brand{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--nsj-red);letter-spacing:-0.5px;}
.doc-logo-text .doc-tagline{font-size:11px;color:#71717a;margin-top:1px;}
.doc-meta{text-align:right;font-size:12px;color:#52525b;flex-shrink:1;min-width:0;max-width:48%;overflow-wrap:anywhere;word-break:break-word;}
.doc-meta strong{color:#18181b;display:block;font-size:14px;margin-bottom:var(--space-1);overflow-wrap:anywhere;}

.doc-meta span{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;}
.doc-meta-label{display:block;font-size:11px;color:#71717a;margin-top:4px;}

.doc-meta-id{overflow-wrap:anywhere;word-break:break-word;}
.doc-meta-ref{display:block;font-size:12px;font-weight:600;line-height:1.25;word-break:break-word;overflow-wrap:anywhere;}
.doc-divider{width:100%;height:2px;background:var(--nsj-red);margin:var(--space-6) 0;border-radius:2px;}
.doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);margin-bottom:var(--space-8);}@media(max-width:480px){.doc-parties{grid-template-columns:1fr;gap:var(--space-4);}}
.doc-party-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#a1a1aa;margin-bottom:var(--space-2);}
.doc-party-name{font-family:var(--font-display);font-size:16px;font-weight:800;color:#18181b;margin-bottom:var(--space-1);overflow-wrap:break-word;word-break:break-word;}
.doc-party-detail{font-size:12px;color:#52525b;line-height:1.7;overflow-wrap:break-word;word-break:break-word;}
.doc-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;}
.doc-table{width:100%;border-collapse:collapse;margin:var(--space-6) 0;font-size:13px;}
@media(max-width:600px){.doc-table{font-size:11px;}.doc-table th,.doc-table td{padding:5px 6px;}}
.doc-table th{background:#18181b;color:#fff;padding:8px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:0.07em;}
.doc-table td{padding:8px 12px;border-bottom:1px solid #e4e4e7;vertical-align:top;overflow-wrap:break-word;word-break:break-word;}
.doc-table tr:nth-child(even) td{background:#f9f9fa;}
.doc-table .doc-col-total{font-weight:600;text-align:right;}
.doc-totals{margin-top:var(--space-4);display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
.doc-total-row{display:flex;gap:24px;font-size:13px;min-width:0;width:100%;max-width:320px;justify-content:space-between;}
.doc-total-grand{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--nsj-red);padding-top:8px;border-top:2px solid #e4e4e7;}
.doc-payment-box{margin-top:var(--space-8);padding:var(--space-5);background:#f4f4f5;border-left:4px solid var(--nsj-red);border-radius:6px;font-size:13px;}
.doc-payment-box h4{font-size:13px;font-weight:700;margin-bottom:var(--space-2);break-after:avoid !important;page-break-after:avoid !important;}
.doc-payment-box p{color:#52525b;margin-bottom:var(--space-1);}
.doc-tc-note{margin-top:var(--space-6);font-size:12px;color:#71717a;padding-top:var(--space-4);border-top:1px solid #e4e4e7;font-style:italic;overflow-wrap:break-word;word-break:break-word;}
.doc-footer{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid #e4e4e7;display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);font-size:11px;color:#a1a1aa;}

.doc-footer span{min-width:0;overflow-wrap:anywhere;word-break:break-word;}
.doc-footer a{color:var(--nsj-red);overflow-wrap:anywhere;word-break:break-word;}


.doc-payment-box,
.doc-totals,
.doc-footer,
.doc-tc-note,
.doc-notes,
.doc-header,
.doc-parties,
.doc-table,
.doc-table tr {
  break-inside: avoid !important;
  page-break-inside: avoid !important;
}

.doc-payment-box,
.doc-tc-note,
.doc-footer,
.doc-notes {
  display: block !important;
  overflow: visible !important;
  break-inside: avoid-page !important;
  page-break-inside: avoid !important;
}

.doc-bottom-block {
  break-inside: auto !important;
  page-break-inside: auto !important;
}


@page{margin:12mm;}
@media print{
  .app-header,.nav-tabs,.doc-actions,.no-print{display:none!important;}
  .main-wrap{padding:0;max-width:100%;}
  body{background:#fff;}

  .tab-content{display:none!important;}
  #tab-preview{display:block!important;}

  .doc-preview{box-shadow:none;}

  .doc-table-wrap{overflow:visible!important;}
  .doc-table{min-width:0!important;width:100%!important;table-layout:fixed;font-size:11px;}
  .doc-table th,.doc-table td{word-break:break-word;padding:5px 6px;}

  .doc-logo{width:100px!important;height:100px!important;}
  .doc-logo-text .doc-brand{font-size:16px;}
  .doc-logo-text .doc-tagline{font-size:10px;}
  .doc-meta{font-size:11px;}
  .doc-meta strong{font-size:13px;}

  .doc-header{margin-bottom:6mm;}
  .doc-divider{margin:3mm 0;}
  .doc-parties{margin-bottom:6mm;}
  .doc-payment-box{margin-top:5mm;}
  .doc-payment-box h4,.doc-payment-box p{break-inside:avoid!important;page-break-inside:avoid!important;}
  .doc-payment-box h4{break-after:avoid !important;page-break-after:avoid !important;}
  .doc-footer{margin-top:5mm;padding-bottom:4mm;}
  .doc-totals{margin-top:3mm;}
  .doc-parties{display:grid!important;grid-template-columns:1fr 1fr!important;}
  .doc-notes{orphans:3;widows:3;}
  .doc-notes p{page-break-inside:avoid;}

  .doc-payment-box,
  .doc-totals,
  .doc-footer,
  .doc-tc-note,
  .doc-notes,
  .doc-header,
  .doc-parties,
  .doc-table,
  .doc-table tr {
    break-inside: avoid !important;
    break-before: auto !important;
    break-after: auto !important;
    page-break-inside: avoid !important;
  }

  .doc-bottom-block {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }
}


.drive-status{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:5px 9px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:background .15s;white-space:nowrap;max-width:128px;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}
@media(max-width:480px){.drive-status{max-width:88px;padding:4px 8px;font-size:10.5px;}}
.drive-status:hover{background:var(--border);}
.drive-status.connected{border-color:#16a34a;background:#dcfce7;color:#166534;}
.drive-status.syncing{border-color:#d97706;background:#fef9c3;color:#854d0e;}
.drive-status.error{border-color:#dc2626;background:#fee2e2;color:#991b1b;}
.drive-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;}
.drive-last-sync{font-size:10px;font-weight:500;color:var(--text-3,#888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78px;letter-spacing:-.1px;}
@media(max-width:480px){.drive-last-sync{max-width:54px;font-size:9.5px;}}
#pwa-install-banner{display:flex;align-items:center;justify-content:center;gap:12px;background:#ED2F33;color:#fff;font-size:13px;font-weight:500;padding:10px 16px;text-align:center;}
#pwa-install-banner strong{font-weight:700;}
#pwa-install-dismiss{background:transparent;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;padding:0 4px;flex-shrink:0;}
@media(max-width:480px){#pwa-install-banner{font-size:12px;padding:8px 10px;}}
