:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--accent: #d71920;--accent-dark: #a81018;--accent-soft: #fff1f2;--ink: #15171a;--muted: #6b7280;--line: #d9dde5;--table-line: #222831;--right-col: 338px;--summary-value-col: 150px;--meta-label-col: 110px;--panel: #ffffff;--canvas: #eef1f5}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--ink);background:var(--canvas)}button,input,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 18%,rgba(215,25,32,.13),transparent 28%),linear-gradient(135deg,#fff,#f3f5f9 48%,#e8edf5)}.login-card{width:min(100%,430px);padding:34px;border:1px solid rgba(21,23,26,.1);border-radius:8px;background:#ffffffeb;box-shadow:0 28px 80px #0f172a2e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.login-brand img{width:62px;height:62px;object-fit:contain}.login-brand span{display:block;margin-bottom:5px;color:var(--accent);font-size:12px;font-weight:800;text-transform:uppercase}.login-brand h1{margin:0;color:#101418;font-size:25px;line-height:1.1}.login-form{display:grid;gap:16px}.login-field{display:grid;gap:7px}.login-field span{color:#4b5563;font-size:12px;font-weight:800}.login-field input{width:100%;height:46px;padding:0 13px;border:1px solid #cfd5df;border-radius:7px;background:#fff;color:var(--ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #d719201f;transform:translateY(-1px)}.password-wrap{display:grid;grid-template-columns:1fr 64px;border:1px solid #cfd5df;border-radius:7px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease}.password-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px #d719201f}.password-wrap input{border:0;box-shadow:none}.password-wrap input:focus{box-shadow:none;transform:none}.password-wrap button{color:var(--accent-dark);background:transparent;font-size:12px;font-weight:900}.login-error{margin:-3px 0 0;padding:10px 12px;border:1px solid rgba(215,25,32,.24);border-radius:7px;color:var(--accent-dark);background:var(--accent-soft);font-size:12px;font-weight:800}.login-submit{height:48px;border-radius:7px;color:#fff;background:linear-gradient(135deg,var(--accent) 0%,#a50f18 100%);box-shadow:0 16px 34px #d719203d;font-size:14px;font-weight:900;transition:transform .16s ease,box-shadow .16s ease}.login-submit:hover{transform:translateY(-1px);box-shadow:0 20px 42px #d719204f}.login-submit:active{transform:translateY(0)}.login-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:24px;color:#6b7280;font-size:11px}.login-foot span{height:1px;background:#d9dde5}.app-shell{min-height:100vh;display:grid;grid-template-rows:64px 1fr}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;background:#fffffff0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px}.brand img{width:42px;height:42px;object-fit:contain}.brand strong{display:block;font-size:15px;line-height:1.2}.brand span{color:var(--muted);font-size:12px}.top-actions{display:flex;gap:10px}.primary,.ghost,.mini{min-height:38px;padding:0 14px;border-radius:7px;font-size:13px;font-weight:700}.primary{color:#fff;background:var(--accent)}.ghost,.mini{color:var(--ink);background:#fff;border:1px solid var(--line)}.workspace{display:grid;grid-template-columns:380px minmax(0,1fr);align-items:start;min-height:0;background:linear-gradient(to right,#f8fafc 0 380px,transparent 380px)}.workspace.editor-hidden{grid-template-columns:1fr;background:transparent}.workspace.editor-hidden .editor{display:none}.workspace.editor-hidden .preview-zone{padding-left:18px;padding-right:18px}.editor{position:sticky;top:64px;height:calc(100vh - 64px);background:#f8fafc;border-right:1px solid var(--line);min-height:0}.editor-scroll{height:100%;overflow:auto;padding:16px}.panel{padding:16px 0;border-bottom:1px solid var(--line)}.panel:first-child{padding-top:0}.panel h2{margin:0 0 12px;font-size:13px;letter-spacing:0;text-transform:uppercase}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-heading h2{margin:0}.history-count{min-width:26px;padding:3px 7px;border-radius:999px;color:#fff;background:var(--accent);font-size:11px;font-weight:800;text-align:center}.history-list{display:grid;gap:8px}.history-item{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.history-copy{display:grid;gap:3px}.history-copy strong{font-size:13px}.history-copy span,.empty-history{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.history-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.history-actions .mini{min-height:30px;padding:0 10px}.field{display:grid;gap:6px;margin-bottom:10px}.field span,.check{color:var(--muted);font-size:12px;font-weight:700}.field input,.field textarea{width:100%;min-height:38px;padding:9px 10px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:#fff;outline:none}.field textarea{resize:vertical;line-height:1.45}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.upload input{padding:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.item-card{padding:12px;margin-bottom:10px;background:#fff;border:1px solid var(--line);border-radius:8px}.item-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.item-title strong{font-size:13px}.link{padding:0;color:var(--accent);background:transparent;font-size:12px;font-weight:800}.check{display:flex;align-items:center;gap:6px;white-space:nowrap}.wide-check{margin:0 0 12px;white-space:normal}.preview-zone{min-width:0;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:28px}.invoice-page{width:297mm;min-height:210mm;background:#fff;box-shadow:0 22px 70px #0f172a2e}.invoice-border{height:210mm;padding:8mm;display:flex;flex-direction:column;color:#111827}.invoice-company-strip{display:grid;grid-template-columns:1fr auto;align-items:center;height:75px;padding:0 12px;border:1px solid var(--table-line)}.company-brand-line{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}.company-logo{width:75px;height:75px;object-fit:contain;flex:0 0 auto}.company-brand-line h1{margin:0 0 2px;color:var(--accent);font-size:20px;line-height:1.1}.company-brand-line p,.company-contact-line p,.party-box p,.words-box p{margin:3px 0;color:#31363f;font-size:11.8px;line-height:1.45;white-space:pre-wrap}.company-contact-line{text-align:right}.party-grid{display:grid;grid-template-columns:1fr 1fr var(--right-col);border:1px solid var(--table-line);border-top:0}.party-box,.invoice-meta{min-height:108px;padding:12px 14px;border-right:1px solid var(--table-line)}.invoice-meta{border-right:0;padding:0;display:grid;grid-template-rows:repeat(4,1fr)}.party-box h3,.words-box h3{margin:0 0 6px;color:var(--accent-dark);font-size:15px}.party-box strong{display:block;margin-bottom:4px;font-size:17px}.invoice-meta div{display:grid;grid-template-columns:var(--meta-label-col) 1fr;min-height:0;border-bottom:1px solid var(--table-line)}.invoice-meta div:last-child{border-bottom:0}.invoice-meta span,.invoice-meta strong{padding:7px 8px;font-size:12.2px;line-height:1.25;display:flex;align-items:center}.invoice-meta span{color:#384050;border-top:1px solid var(--table-line);border-right:1px solid var(--table-line)}.invoice-meta div:first-child span{border-top:0}.items-table{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid var(--table-line);border-top:0}.items-table th,.items-table td{padding:9px 7px;border:1px solid var(--table-line);font-size:11px;text-align:right;vertical-align:top;overflow-wrap:normal;word-break:normal}.items-table th{color:#fff;background:var(--accent);font-size:10.5px}.items-table th:nth-child(1),.items-table td:nth-child(1){width:28px;text-align:center}.items-table th:nth-child(2),.items-table td:nth-child(2){width:245px;text-align:left}.items-table th:nth-child(3),.items-table td:nth-child(3){width:65px}.items-table th:nth-child(4),.items-table td:nth-child(4){width:58px}.items-table th:nth-child(5),.items-table td:nth-child(5){width:56px}.items-table th:nth-child(6),.items-table td:nth-child(6){width:125px}.items-table th:nth-child(7),.items-table td:nth-child(7){width:110px}.items-table th:nth-child(8),.items-table td:nth-child(8){width:55px}.items-table th:nth-child(9),.items-table td:nth-child(9){width:115px}.items-table th:nth-child(10),.items-table td:nth-child(10){width:135px}.items-table td:nth-child(6),.items-table td:nth-child(9),.items-table td:nth-child(10),.summary-box strong{font-variant-numeric:tabular-nums;white-space:nowrap}.items-table td:nth-child(6),.items-table td:nth-child(7),.items-table td:nth-child(9),.items-table td:nth-child(10){font-size:10.5px}.items-table small{display:block;margin-top:2px;color:#6b7280;font-size:10px}.total-row td{padding:0;font-weight:800;background:var(--accent-soft)}.total-line{display:grid;grid-template-columns:28px 245px 65px 58px 56px 125px 110px 55px 115px 135px;align-items:center;min-height:36px;padding:0}.total-line span{padding:0 7px}.total-line .total-label{grid-column:2 / 4;text-align:left}.total-line .total-qty{grid-column:4;text-align:right}.total-line .total-discount{grid-column:7;text-align:right}.total-line .total-gst{grid-column:9;text-align:right}.total-line .total-amount{grid-column:10;text-align:right}.bottom-grid{display:grid;grid-template-columns:1fr var(--right-col);flex:0 0 auto;border:1px solid var(--table-line);border-top:0}.words-box{min-height:250px;padding:18px 14px;border-right:1px solid var(--table-line)}.words-box h3:nth-of-type(2){margin-top:24px}.summary-box{display:flex;flex-direction:column;min-height:100%}.summary-box div{display:grid;grid-template-columns:1fr var(--summary-value-col);min-height:33px;border-bottom:1px solid var(--table-line)}.summary-box div:last-child{border-bottom:0}.summary-box span,.summary-box strong{padding:8px 7px;font-size:12.2px}.summary-box span{border-right:1px solid var(--table-line)}.summary-box strong{text-align:right;font-size:11.2px}.summary-box .grand{color:#fff;background:var(--accent)}.invoice-foot{display:grid;grid-template-columns:1fr var(--right-col);flex:1 1 auto;min-height:78px;border:1px solid var(--table-line);border-top:0}.invoice-foot>div{padding:10px 14px}.invoice-foot>div:first-child{display:flex;flex-direction:column;justify-content:flex-end;text-align:center;font-size:13px;padding-bottom:24px}.invoice-foot>div:last-child{border-left:1px solid var(--table-line)}.sign-line{height:0;margin-bottom:0}.exporting .topbar,.exporting .editor,.exporting .preview-zone{display:none}.pdf-export-stage{position:fixed;inset:0 auto auto 0;z-index:9999;width:297mm;min-height:210mm;overflow:visible;background:#fff}.pdf-export-source{display:block;width:297mm;min-height:205mm;box-shadow:none;overflow:visible}.pdf-export-source .invoice-border{height:205mm}.pdf-export-source .invoice-border.has-overflow{height:auto;min-height:205mm}.pdf-export-source .items-table tr,.pdf-export-source .bottom-grid,.pdf-export-source .summary-box div,.pdf-export-source .invoice-foot{break-inside:avoid;page-break-inside:avoid}.pdf-export-source .bottom-grid,.pdf-export-source .invoice-foot{break-before:auto;page-break-before:auto}@media(max-width:980px){.login-page{padding:16px}.login-card{padding:24px}.login-brand h1{font-size:21px}.workspace{grid-template-columns:1fr}.editor{position:static;height:auto}.editor-scroll{height:auto;max-height:none}.preview-zone{padding:18px 10px}.invoice-page{transform:scale(.34);transform-origin:top center;margin-bottom:-135mm}}@media print{@page{size:A4 landscape;margin:0}body{background:#fff}.topbar,.editor{display:none!important}.workspace,.preview-zone{display:block;padding:0;overflow:visible}.invoice-page{width:297mm;min-height:210mm;box-shadow:none}}
