*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f3f4f6;color:#111827}a{color:#2563eb;text-decoration:none}.container{max-width:1180px;margin:auto;padding:24px}.narrow{max-width:520px;padding-top:8vh}.topbar{background:#111827;color:white;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.topbar a{color:white}.brand{font-weight:800;font-size:20px}.topbar nav{display:flex;gap:18px;font-size:14px}.card{background:white;border-radius:18px;padding:22px;margin-bottom:20px;box-shadow:0 8px 26px rgba(17,24,39,.06)}.login-card{padding:34px}.pagehead,.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.pagehead h1,h2{margin:0 0 5px}.muted{color:#6b7280}.btn{border:0;border-radius:11px;background:#111827;color:white;padding:11px 16px;font-weight:700;cursor:pointer;display:inline-block}.btn.secondary{background:#e5e7eb;color:#111827}.btn.large{padding:14px 22px;font-size:16px}.full{width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span2{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#374151}input,textarea,select{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:11px 12px;font:inherit;background:#fff}input:focus,textarea:focus,select:focus{outline:2px solid #93c5fd;border-color:#60a5fa}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat{background:white;border-radius:16px;padding:20px;box-shadow:0 8px 26px rgba(17,24,39,.05)}.stat span{display:block;color:#6b7280;font-size:13px;margin-bottom:8px}.stat strong{font-size:22px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;border-bottom:1px solid #e5e7eb;text-align:left;font-size:14px}th{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:5px 9px;background:#eef2ff;border-radius:999px;font-size:12px}.flash{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:12px 14px;border-radius:10px;margin-bottom:16px}.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:12px 14px;border-radius:10px;margin-bottom:16px}.items-table input{min-width:85px}.items-table td:first-child input{min-width:220px}.icon-btn{border:0;background:#fee2e2;color:#991b1b;width:32px;height:32px;border-radius:8px;font-size:20px;cursor:pointer}.totals-grid{display:grid;grid-template-columns:1fr 360px;gap:28px}.totals-box{display:flex;flex-direction:column;gap:12px}.totals-box>div{display:flex;justify-content:space-between}.totals-box .grand{font-size:20px;border-top:2px solid #111827;padding-top:12px}.actions{text-align:right;margin-bottom:30px}.filters{display:flex;gap:10px}.filters input{flex:1}.invoice-page{background:#d1d5db}.invoice-toolbar{max-width:920px;margin:20px auto;display:flex;justify-content:space-between}.invoice-sheet{width:210mm;min-height:297mm;margin:0 auto 30px;background:#fff;padding:16mm;box-shadow:0 10px 40px rgba(0,0,0,.15)}.invoice-header{display:flex;justify-content:space-between;gap:30px;border-bottom:3px solid #111827;padding-bottom:18px}.vendor-block{display:flex;gap:14px;align-items:flex-start}.vendor-logo{max-width:80px;max-height:80px;object-fit:contain}.vendor-block h1{margin:0 0 5px;font-size:25px}.vendor-block div{font-size:12px;line-height:1.55}.invoice-title{text-align:right;display:flex;flex-direction:column;gap:4px}.invoice-title h2{font-size:34px;letter-spacing:.08em}.billto{padding:18px 0}.billto small{color:#6b7280}.billto h3{margin:5px 0}.print-items th{background:#111827;color:white}.print-items th,.print-items td{padding:10px 8px}.invoice-bottom{display:grid;grid-template-columns:1fr 300px;gap:28px;margin-top:24px}.notes h4{margin:0 0 5px}.notes p{font-size:12px;line-height:1.55}.summary>div{display:flex;justify-content:space-between;padding:7px 0}.summary .grand{border-top:2px solid #111827;border-bottom:2px solid #111827;font-size:18px}.statusline{font-weight:800;margin-top:6px}.invoice-footer{text-align:center;color:#6b7280;font-size:11px;margin-top:40px}
@media(max-width:800px){.topbar{align-items:flex-start;gap:10px;flex-direction:column}.topbar nav{width:100%;overflow:auto;padding-bottom:3px}.container{padding:16px}.stats{grid-template-columns:1fr 1fr}.form-grid,.totals-grid{grid-template-columns:1fr}.span2{grid-column:auto}.filters{flex-direction:column}.pagehead{align-items:flex-start}.invoice-sheet{width:100%;min-height:0;margin:0;padding:18px}.invoice-header,.invoice-bottom{grid-template-columns:1fr;display:grid}.invoice-title{text-align:left}.invoice-toolbar{margin:10px}.vendor-logo{max-width:60px}}
@media print{body{background:white}.no-print{display:none!important}.invoice-sheet{width:100%;min-height:0;margin:0;box-shadow:none;padding:8mm}.print-items th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* v2 invoice styling */
.btn.warning{background:#b45309}.btn.danger{background:#b91c1c}.toolbar-actions,.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar-actions form{margin:0}.business-card{border-top:4px solid #111827}.business-card small{font-weight:500}.invoice-sheet{position:relative;overflow:hidden}.invoice-accent{height:7px;background:linear-gradient(90deg,#111827 0 68%,#9ca3af 68% 100%);margin:-16mm -16mm 13mm}.invoice-header{border-bottom:1px solid #d1d5db;padding-bottom:20px}.invoice-title .eyebrow{font-size:9px;letter-spacing:.24em;color:#6b7280;font-weight:800}.invoice-title h2{margin:0;font-size:38px;line-height:1}.billto{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:15px 17px;margin:18px 0}.billto h3{font-size:18px}.status-chip{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;border:1px solid #d1d5db;border-radius:999px;padding:7px 11px;white-space:nowrap}.status-paid{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.status-part-paid{background:#fffbeb;color:#92400e;border-color:#fde68a}.status-unpaid{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.status-cancelled{background:#fef2f2;color:#991b1b;border-color:#fecaca}.print-items{border:1px solid #e5e7eb}.print-items th{background:#111827!important;color:#fff}.print-items tbody tr:nth-child(even){background:#f8fafc}.print-items .num{text-align:right}.invoice-bottom{align-items:start}.summary{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px 14px}.summary .grand{margin:5px -14px;padding:12px 14px;background:#111827;color:#fff;border:0}.summary .balance{font-size:15px;font-weight:800}.authorized{margin:34px 0 0 auto;text-align:center;width:220px;border-top:1px solid #9ca3af;padding-top:7px;font-size:11px}.authorized span,.authorized strong{display:block}.authorized strong{margin-top:3px}.paid-stamp{width:112px;height:72px;margin:25px 0 4px 10px;border:4px double rgba(148,19,19,.86);border-radius:10px;transform:rotate(-8deg);display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgba(153,27,27,.88);position:relative;filter:contrast(1.15);box-shadow:inset 0 0 0 1px rgba(127,29,29,.24),1px 1px 0 rgba(127,29,29,.14),-1px 0 rgba(127,29,29,.2)}.paid-stamp:before,.paid-stamp:after{content:"";position:absolute;inset:4px;border:1px dashed rgba(153,27,27,.58);border-radius:6px;transform:rotate(.7deg)}.paid-stamp:after{inset:8px;border-style:solid;opacity:.22;transform:rotate(-1.2deg)}.paid-stamp span{font-family:Georgia,serif;font-size:30px;line-height:1;font-weight:900;letter-spacing:.09em;text-shadow:1px 0 rgba(127,29,29,.35),-1px 1px rgba(185,28,28,.18)}.paid-stamp small{font-family:ui-monospace,monospace;font-size:8px;font-weight:800;letter-spacing:.08em;margin-top:4px}.cancelled-watermark{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%) rotate(-28deg);font-size:74px;font-weight:900;letter-spacing:.08em;color:rgba(185,28,28,.08);border:8px solid rgba(185,28,28,.07);padding:8px 22px;z-index:0;pointer-events:none}.invoice-sheet>*:not(.cancelled-watermark){position:relative;z-index:1}
@media(max-width:800px){.invoice-toolbar{display:block}.toolbar-actions{margin-top:8px}.invoice-accent{margin:-18px -18px 18px}.billto{flex-direction:column}.paid-stamp{margin-left:0}}
@media print{.invoice-accent{margin:-8mm -8mm 8mm}.paid-stamp{-webkit-print-color-adjust:exact;print-color-adjust:exact}.summary .grand,.print-items th,.invoice-accent{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
