:root{--navy:#132a45;--navy-deep:#0c1d33;--slate:#3d5470;--paper:#f5f6f8;--card:#ffffff;--line:#dde3ea;--ink:#1c2733;--ink-soft:#5b6b7d;--amber:#b7791f;--amber-bg:#fbf1de;--green:#1e7a4c;--green-bg:#e7f5ed;--red:#b3331d;--red-bg:#fbeae6;--gold:#c9972f;--brand-blue:#001b89;--radius:6px;--mono:"JetBrains Mono","SFMono-Regular",Menlo,Consolas,monospace;--display:"Inter","Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Inter,Segoe UI,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit;cursor:pointer}#shell{display:flex;min-height:100vh}#sidebar{width:216px;flex-shrink:0;background:var(--navy-deep);color:#dce4ee;padding:22px 14px;display:flex;flex-direction:column;gap:2px}.brand{padding:4px 10px 20px}.brand .mark{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--gold),#a97a1f);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--navy-deep);font-size:15px;margin-bottom:10px;overflow:hidden}.brand .mark.has-logo{background:#fff;padding:3px}.brand .mark img{width:100%;height:100%;object-fit:contain}.brand .name{font-weight:700;font-size:14.5px;color:#fff;letter-spacing:.2px;line-height:1.25}.brand .sub{font-size:11px;color:#8fa3ba;margin-top:2px;letter-spacing:.4px;text-transform:uppercase}nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}nav button{all:unset;cursor:pointer;padding:9px 12px;border-radius:6px;font-size:13.5px;font-weight:500;color:#aebdce;display:flex;align-items:center;gap:9px}nav button svg{width:16px;height:16px;flex-shrink:0;opacity:.85}nav button:hover{background:#182f4d;color:#fff}nav button.active{background:var(--gold);color:var(--navy-deep);font-weight:700}nav button.active svg{opacity:1}#main{flex:1 1;min-width:0;padding:28px 34px 60px}.view{display:none}.view.active{display:block}.pagehead{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}.pagehead h1{font-size:21px;margin:0;font-weight:800;letter-spacing:-.2px;color:var(--navy)}.pagehead p{margin:3px 0 0;color:var(--ink-soft);font-size:13px}.pagehead-back{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--ink-soft);text-decoration:none;margin-bottom:4px;letter-spacing:.1px;transition:color .12s}.pagehead-back:hover{color:var(--navy)}.client-name-link{color:var(--navy);font-weight:600;text-decoration:none;border-bottom:1px dashed transparent;transition:border-color .12s,color .12s}.client-name-link:hover{border-bottom-color:var(--gold);color:var(--gold)}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 15px;border-radius:6px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:7px;transition:.12s}.btn:hover{border-color:var(--slate)}.btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-deep)}.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}.btn-gold:hover{background:#b6871f}.btn-email{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff}.btn-email:hover{background:#00136a;border-color:#00136a}.btn-danger{color:var(--red)}.btn-danger:hover{border-color:var(--red);background:var(--red-bg)}.btn-sm{padding:6px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.stat .label{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat .value{font-size:24px;font-weight:800;color:var(--navy);margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .sub{font-size:12px;color:var(--ink-soft);margin-top:4px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.card-head h3{margin:0;font-size:14px;font-weight:700;color:var(--navy)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft);padding:10px 16px;border-bottom:1px solid var(--line);font-weight:700;background:#fafbfc}td{padding:11px 16px;border-bottom:1px solid #eef1f4;vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfd}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--mono)}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.2px}.badge-draft{background:#eef0f3;color:#5b6b7d}.badge-sent{background:#e6eef9;color:#1d5aa8}.badge-paid{background:var(--green-bg);color:var(--green)}.badge-overdue{background:var(--red-bg);color:var(--red)}.badge-pending{background:var(--amber-bg);color:var(--amber)}.empty{padding:48px 20px}.empty p{margin:4px 0 16px;font-size:13.5px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;padding:18px}.form-grid.wide{grid-template-columns:1fr}.field{gap:5px}.field.span2{grid-column:span 2}.field label{font-size:12px;font-weight:600;color:var(--slate)}.field .hint{font-size:11px;color:var(--ink-soft)}input,select,textarea{border:1px solid var(--line);border-radius:5px;padding:8px 10px;font-size:13.5px;font-family:inherit;background:#fff;color:var(--ink);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #c9972f55;border-color:var(--gold)}textarea{resize:vertical;min-height:56px}input[readonly]{background:#f5f6f8;color:var(--ink-soft)}.form-actions{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafbfc}#invoice-preview-wrap{display:flex;justify-content:center;padding:10px 0 40px}.sheet{width:850px;max-width:100%;background:#fff;padding:52px 56px 46px;box-shadow:0 1px 3px rgba(20,30,50,.08),0 8px 30px rgba(20,30,50,.06);border:1px solid #e6e9ed;--rule:1px solid #000;color:#000;font-family:Times New Roman,Times,serif;font-size:12.5px}.sheet .top{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:16px;align-items:start}.sheet .brand img{width:200px;height:auto}.sheet .brand .web{font-family:Arial,Helvetica,sans-serif;font-size:11px;margin-top:8px}.sheet .company{text-align:center;font-size:14px;line-height:1.25;padding-top:8px}.sheet .doc .t{font-family:Arial,Helvetica,sans-serif;font-size:24px;font-weight:700;text-align:right;margin-bottom:8px}.sheet th{color:#000;text-transform:none;letter-spacing:0;white-space:nowrap}.sheet .doc-box{width:100%;border-collapse:collapse}.sheet .doc-box td,.sheet .doc-box th{border:var(--rule);padding:6px 8px}.sheet .doc-box th{font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:400;text-align:left;width:42%}.sheet .doc-box td{font-size:15px;font-weight:700;text-align:right}.sheet .status-chip{display:inline-block;margin-top:8px}.sheet .parties{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0 32px;padding-left:18px}.sheet .party{display:flex;gap:18px}.sheet .party .k{font-family:Arial,Helvetica,sans-serif;font-size:11.5px;line-height:1.2}.sheet .party .v{font-weight:700;font-size:13px;line-height:1.2}.sheet .body{border:var(--rule);min-height:560px;display:flex;flex-direction:column}.sheet .body table{width:100%;border-collapse:collapse}.sheet .body th{background:#dcdcdc;font-family:Arial,Helvetica,sans-serif;font-size:10.5px;font-weight:700;line-height:1.15;padding:2px 4px;border:var(--rule);border-top:0;text-align:center}.sheet .body td{border-left:var(--rule);border-right:var(--rule);padding:8px 6px;text-align:center;vertical-align:top}.sheet .body td:first-child,.sheet .body th:first-child{border-left:0}.sheet .body td:last-child,.sheet .body th:last-child{border-right:0}.sheet .meta th:first-child{width:38%}.sheet .meta th:nth-child(2),.sheet .meta th:nth-child(3){width:19.5%}.sheet .meta th:nth-child(4){width:13%}.sheet .meta td:first-child{text-align:left}.sheet table.meta td{border-bottom:var(--rule)}.sheet .items th:nth-child(-n+3){width:5%}.sheet .items th:nth-child(5){width:7.5%}.sheet .items th:nth-child(6){width:4%}.sheet .items th:nth-child(7){width:8.5%}.sheet .items th:nth-child(8){width:15.5%}.sheet .items .desc,.sheet .items th:nth-child(4){text-align:left}.sheet .items td.desc div{padding-left:22px}.sheet .items td.b{font-weight:700}.sheet .items td.num{text-align:right}.sheet .items tbody tr:last-child td{border-bottom:var(--rule)}.sheet .totals{align-self:flex-end;width:280px;padding:10px 10px 0;font-weight:700;font-size:12.5px;line-height:1.2}.sheet .totals .r{display:flex;justify-content:space-between;min-height:1.2em}.sheet .thanks{max-width:540px;margin:24px 0 16px 15%}.sheet .cartons,.sheet .thanks{font-weight:700;font-size:12.5px}.sheet .cartons{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 24px 15%}.sheet .cartons .pre{white-space:pre}.sheet .cartons .tracking{font-family:Arial,Helvetica,sans-serif;font-size:11px;max-width:280px;padding-top:1.2em}.sheet .conditions{border:var(--rule);margin-top:8px;padding:4px 6px 6px;font-family:Arial,Helvetica,sans-serif;font-size:10.5px;line-height:1.35}.sheet .conditions b{font-size:12px}.sheet .conditions p{margin:0}.modal{background:#fff;border-radius:8px;width:560px;max-width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0;font-size:15px;font-weight:800;color:var(--navy)}.modal-close{font-size:18px;padding:2px 6px}.modal-close:hover{background:#eef1f4}.toast{position:fixed;bottom:22px;right:22px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:6px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:100;opacity:0;transform:translateY(8px);transition:.25s}.toast.show{opacity:1;transform:translateY(0)}.search-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.search-row input{max-width:280px}.link-btn{background:none;border:none;color:#1d5aa8;font-weight:600;font-size:12.5px;padding:0}.link-btn:hover{text-decoration:underline}::placeholder{color:#9fadbd}@page{size:auto;margin:10mm}@media print{#sidebar,.no-print,.pagehead,.toast{display:none!important}body,html{height:auto}#shell{display:block;min-height:auto}#main{padding:0}body{background:#fff}.sheet{box-shadow:none;border:none;width:100%;padding:0}.sheet,.sheet .conditions,.sheet .thanks,.sheet .totals,.sheet table.items tr{page-break-inside:avoid;break-inside:avoid}#invoice-preview-wrap{padding:0;display:block}.sheet .body{min-height:0}}@media (max-width:900px){.stat-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.span2{grid-column:span 1}#shell{flex-direction:column}#sidebar{width:100%;overflow-x:auto}#sidebar,nav{flex-direction:row}}nav a{padding:9px 12px;border-radius:6px;font-size:13.5px;font-weight:500;color:#aebdce;display:flex;align-items:center;gap:9px;text-decoration:none}nav a:hover{background:#182f4d;color:#fff}nav a.active{background:var(--gold);color:var(--navy-deep);font-weight:700}.sidebar-bottom{margin-top:auto;padding:24px 10px;font-size:11px;overflow-wrap:anywhere}.btn{text-decoration:none}.actions,.form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-actions{margin-top:22px}.form-card{padding:24px;margin-bottom:20px}.form-card h3{margin-top:0;color:var(--navy)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}.span2{grid-column:span 2}fieldset{border:0;padding:0;margin:0;min-width:0}input,select,textarea{max-width:100%}.table-scroll{overflow-x:auto}.editor-items{margin-bottom:20px}.editor-table{min-width:1000px}.editor-table td:first-child{width:13%}.editor-table td:nth-child(2){width:28%}.editor-table input,.editor-table select{width:100%;min-width:65px}.editor-table td:first-child input{min-width:115px}.editor-table td:nth-child(6) input{min-width:95px}.editor-table td:nth-child(7) input{min-width:60px}.pad{padding:0 18px 14px}.editor-summary{max-width:320px;margin-left:auto}.editor-summary h3,.editor-summary p{display:flex;justify-content:space-between;gap:30px}.pre-line{white-space:pre-line}.error-message{background:var(--red-bg);color:var(--red);font-size:13px}.error-message,.form-message{padding:12px;border-radius:6px}.form-message{background:var(--amber-bg)}.pagination{justify-content:flex-end;gap:12px;margin:20px 0;font-size:13px;color:var(--ink-soft)}.login-wrap,.pagination{display:flex;align-items:center}.login-wrap{min-height:100vh;justify-content:center;padding:24px}.login-card{padding:36px;width:420px}.login-card h1{font-size:24px;color:var(--navy)}.login-card p{color:var(--ink-soft)}.login-card .field{margin-bottom:18px}.login-card .btn{width:100%;justify-content:center}.search-row select{max-width:170px}.empty{text-align:center;padding:40px;color:var(--ink-soft)}.badge{text-transform:capitalize}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media (max-width:800px){#shell{flex-direction:column}#sidebar{width:100%;padding:12px}#sidebar .brand{display:none}nav{flex-direction:row;overflow-x:auto}nav a{white-space:nowrap}.sidebar-bottom{padding:8px;display:flex;align-items:center;gap:16px}.sidebar-bottom p{margin:0}#main{padding:20px 14px}.stat-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.sheet{min-width:680px}#invoice-preview-wrap{overflow:auto}.search-row{flex-wrap:wrap}}@media print{#sidebar,.no-print,.pagehead{display:none!important}#main,#shell{display:block!important;margin:0!important;padding:0!important}#invoice-preview-wrap{display:block!important;overflow:visible!important}.sheet{min-width:0!important;width:100%!important;margin:0!important;box-shadow:none!important;border:0!important}.sheet tr{page-break-inside:avoid;break-inside:avoid}.sheet thead{display:table-header-group}body{background:#fff!important}.status-chip{display:none!important}}@media (max-width:900px){#sidebar{flex-direction:column}.sidebar-bottom{margin-top:8px}}@media print{.sheet{break-inside:auto!important;page-break-inside:auto!important}}.modal-backdrop{position:fixed;inset:0;background:rgba(12,29,51,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-box{background:var(--card);border-radius:10px;box-shadow:0 8px 40px rgba(12,29,51,.28);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:0}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}.modal-header h2{margin:0;font-size:1.1rem;color:var(--navy)}.modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--ink-soft);cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .15s}.modal-close:hover{background:var(--paper);color:var(--ink)}.modal-footer{display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:16px 24px 20px;border-top:1px solid var(--line);margin-top:8px}.modal-footer .btn:first-child{margin-right:auto}.import-info{padding:16px 24px 0;font-size:.9rem}.import-info p{margin:0 0 10px;color:var(--ink-soft)}.import-cols{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.import-col{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:3px 8px;font-size:.78rem;font-family:var(--mono);color:var(--ink)}.import-col.required{border-color:var(--navy);background:#eef2f8}.import-col em{color:var(--gold);font-style:normal;margin-left:2px}.import-note{font-size:.8rem!important;color:var(--ink-soft)!important;background:var(--paper);border-left:3px solid var(--gold);padding:8px 10px!important;border-radius:0 4px 4px 0}.import-drop-area{margin:12px 24px 0}.import-drop-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--line);border-radius:8px;padding:28px 20px;cursor:pointer;transition:border-color .2s,background .2s;text-align:center;min-height:110px}.import-drop-label:hover{border-color:var(--navy);background:var(--paper)}.import-file-icon{font-size:2rem}.import-status{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;text-align:center}.import-spinner{width:40px;height:40px;border:3px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.import-result-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.import-result-icon.success{background:var(--green-bg);color:var(--green)}.import-result-icon.warn{background:var(--amber-bg);color:var(--amber)}.import-result-icon.error{background:var(--red-bg);color:var(--red)}.import-error-msg{color:var(--red);font-size:.9rem;max-width:360px}.import-result-summary{display:flex;align-items:center;gap:20px;padding:20px 24px 0}.import-stats{display:flex;gap:16px;flex-wrap:wrap}.import-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:56px}.import-stat .stat-num{font-size:1.6rem;font-weight:700;line-height:1}.import-stat span:last-child{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}.import-stat.created .stat-num{color:var(--green)}.import-stat.updated .stat-num{color:var(--navy)}.import-stat.skipped .stat-num{color:var(--red)}.import-stat.total .stat-num{color:var(--ink-soft)}.import-errors{padding:16px 24px 0}.import-errors h4{margin:0 0 8px;font-size:.85rem;color:var(--red)}.import-errors-list{max-height:180px;overflow-y:auto;border:1px solid var(--line);border-radius:6px}.import-error-row{display:flex;align-items:baseline;gap:8px;padding:7px 12px;font-size:.8rem;border-bottom:1px solid var(--line)}.import-error-row:last-child{border-bottom:none}.error-row-num{color:var(--ink-soft);white-space:nowrap}.error-row-num,.error-sku{font-family:var(--mono);flex-shrink:0}.error-sku{color:var(--navy);font-weight:600}.error-msg{color:var(--red);flex:1 1}.check-field{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer}.check-field input{width:auto;margin:0}.badge{white-space:nowrap}.search-row input[type=date]{max-width:165px}.email-control{position:relative;display:inline-flex;align-items:center;gap:8px}.email-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:300px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(20,30,50,.15)}.email-popover .hint{margin:6px 0 10px}.email-popover-actions{display:flex;justify-content:flex-end;gap:8px}.email-toast{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:flex-start;gap:12px;max-width:380px;padding:12px 14px;border-radius:8px;background:var(--navy);color:#fff;font-size:13px;box-shadow:0 10px 30px rgba(20,30,50,.25)}.email-toast.error{background:var(--red)}.email-toast .link-btn{color:inherit;font-size:16px;line-height:1}@media print{.email-control{display:none!important}}.payment-bar{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin:-8px 0 18px;padding:10px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--ink-soft)}.payment-bar b{color:var(--ink);margin-left:4px}.payment-bar .due b{color:var(--red)}.payment-bar .settled b{color:var(--green)}.payment-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.payment-bar .email-popover .field{margin-bottom:8px}.payment-list{width:100%;border-collapse:collapse}.payment-list td{padding:7px 8px;border-top:1px solid var(--line);font-size:12.5px}.link-btn.danger{color:var(--red)}.badge-partial{background:var(--amber-bg);color:var(--amber)}.login-links{margin-top:14px;font-size:13px;text-align:center}@media (max-width:800px){#main{padding:16px}nav{flex-wrap:wrap;overflow:visible;gap:4px}nav a{flex:1 1 auto;justify-content:center}.pagehead .actions{width:100%}table.stack-sm thead{display:none}table.stack-sm,table.stack-sm tbody{display:block}table.stack-sm tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:14px 16px;border-bottom:1px solid var(--line)}table.stack-sm td{display:flex;flex-direction:column;gap:2px;padding:0;border:0;text-align:left}table.stack-sm td:before{content:attr(data-label);font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-soft)}table.stack-sm td.actions,table.stack-sm td.empty{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}table.stack-sm td.actions:before,table.stack-sm td.empty:before{display:none}.email-popover{width:min(300px,calc(100vw - 32px))}.payment-actions{margin-left:0;width:100%}.email-toast{left:16px;right:16px;max-width:none}#invoice-preview-wrap{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}#invoice-preview-wrap .sheet{width:800px;max-width:none;padding:28px}table.stack-sm td .badge{align-self:flex-start}}