:root{--navy:#102a43;--navy-deep:#081f33;--teal:#0f766e;--teal-dark:#0b655f;--gold:#f2b84b;--ink:#172b3a;--muted:#5e7180;--line:#d9e3e8;--paper:#f4f8f9;--card:#fff;--danger:#a52a1f;--danger-bg:#fff0ee;--warn:#815000;--warn-bg:#fff7df;--success:#116149;--success-bg:#e8f7f1;--radius:16px;--shadow:0 12px 34px rgba(16,42,67,.1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,#eaf3f2 0,var(--paper) 520px);font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.gst-main{width:min(1180px,calc(100% - 32px));margin:0 auto}
.legal-banner{margin:20px 0 14px;padding:18px 20px;color:#fff;background:linear-gradient(110deg,#4c2d00,#765000);border-left:5px solid var(--gold);border-radius:14px;box-shadow:var(--shadow)}
.legal-banner strong{display:block;margin-bottom:4px;font-size:1rem}
.status-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 6px}
.status-strip article{padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:13px}
.status-strip strong,.status-strip span{display:block}
.status-strip strong{color:var(--navy);font-size:1.05rem}
.status-strip span{margin-top:3px;color:var(--muted);font-size:.78rem}
.micro-note{margin:8px 2px 22px;color:var(--muted);font-size:.76rem}
.panel{margin:20px 0;padding:clamp(20px,3vw,30px);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}
.section-heading>div:first-child{display:grid;gap:6px;min-width:0}
.section-heading h2{margin:0;color:var(--navy);font-size:clamp(1.35rem,2.5vw,1.8rem);line-height:1.2}
.eyebrow{display:block;color:var(--teal);font-size:.7rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.badge{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:normal;text-align:center}
.badge.neutral{color:var(--teal-dark);background:#e8f5f3}
.badge.warn{color:#805000;background:#fff1ca}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid.nested{margin-top:0;padding:16px;background:#f6faf9;border:1px solid var(--line);border-radius:12px}
.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}
label{display:block;min-width:0;color:#293d4c;font-weight:750}
input,select,textarea{display:block;width:100%;min-height:44px;margin-top:6px;padding:9px 11px;color:var(--ink);background:#fff;border:1px solid #b8c9d2;border-radius:10px;line-height:1.35}
textarea{min-height:74px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(15,118,110,.14);border-color:var(--teal)}
[aria-invalid="true"]{border-color:#c63b2d!important;box-shadow:0 0 0 3px rgba(198,59,45,.1)}
small,.help,.optional{color:var(--muted);font-size:.78rem;font-weight:450}
small{display:block;margin-top:5px}
.check{display:flex;align-items:flex-start;gap:10px}
.check input{flex:0 0 auto;width:auto;min-height:0;margin:3px 0 0}
.check.boxed{min-height:44px;align-self:end;padding:11px 13px;background:#f8fbfb;border:1px solid var(--line);border-radius:10px}
.notice{margin:16px 0 0;padding:13px 15px;border-radius:11px;font-size:.85rem}
.notice.neutral{color:#294d52;background:#edf7f6;border:1px solid #c7e2de}
.notice.warning{color:#6d4400;background:var(--warn-bg);border:1px solid #efd28d}
.notice.error{color:#7a271a;background:var(--danger-bg);border:1px solid #efb9b2}
.table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.line-table{width:100%;min-width:2250px;border-collapse:collapse;background:#fff}
.line-table th,.line-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.line-table th{position:sticky;top:0;z-index:2;color:#fff;background:var(--navy);font-size:.7rem;letter-spacing:.02em}
.line-table td{min-width:105px}
.line-table td:first-child{min-width:210px}
.line-table input,.line-table select,.line-table textarea{min-height:38px;margin:0;padding:7px;font-size:.8rem}
.line-table output{display:block;min-width:74px;padding:8px 2px;color:var(--navy);font-weight:800;font-variant-numeric:tabular-nums}
.remove-line{width:40px;min-height:40px;padding:0;color:var(--danger);background:#fff0ee;border:1px solid #efbeb8;border-radius:9px;font-size:1.25rem;font-weight:800}
.totals-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}
.total-tile{min-width:0;padding:14px;color:#fff;background:var(--navy);border-radius:12px}
.total-tile span,.total-tile strong{display:block;overflow-wrap:anywhere}
.total-tile span{color:#bad0dc;font-size:.74rem}
.total-tile strong{margin-top:4px;font-size:1.05rem;font-variant-numeric:tabular-nums}
.total-tile.due{background:var(--teal-dark)}
.error-summary{margin:18px 0;padding:16px 18px;color:#7a271a;background:var(--danger-bg);border:1px solid #efb9b2;border-radius:13px}
.error-summary h2{margin:0 0 8px;font-size:1.1rem}
.error-summary ul{margin:0;padding-left:20px}
.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.action-row button,.section-heading button{min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:10px;font-weight:800}
.primary{color:#fff;background:var(--teal);border-color:var(--teal)!important}
.primary:hover{background:var(--teal-dark)}
.secondary{color:var(--navy);background:#e8f2f2;border-color:#c6dddd!important}
.secondary:hover{color:var(--teal-dark);background:#dff0ed}
.sticky-actions{position:sticky;bottom:12px;z-index:20;margin:22px 0;padding:12px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 35px rgba(16,42,67,.18);backdrop-filter:blur(10px)}
.invoice-sheet{padding:clamp(20px,4vw,48px);background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px rgba(16,42,67,.08)}
.invoice-head{display:flex;justify-content:space-between;gap:28px;padding-bottom:22px;border-bottom:3px solid var(--navy)}
.invoice-head h1{margin:0;color:var(--navy);font-size:2rem}
.invoice-head .document-meta{text-align:right}
.invoice-head span,.invoice-head strong{display:block}
.draft-label{display:inline-block!important;margin-bottom:8px;padding:5px 9px;color:#7a4900;background:#fff1c9;border-radius:999px;font-size:.7rem;font-weight:850;text-transform:uppercase}
.party-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}
.party{padding:17px;background:#f6faf9;border:1px solid var(--line);border-radius:12px}
.party h2{margin:0 0 8px;color:var(--teal-dark);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}
.party p{margin:3px 0;overflow-wrap:anywhere}
.invoice-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0}
.invoice-info div{padding:10px;background:#f7f9fa;border-radius:9px}
.invoice-info span,.invoice-info strong{display:block;overflow-wrap:anywhere}
.invoice-info span{color:var(--muted);font-size:.7rem}
.preview-table-wrap{max-width:100%;overflow:auto}
.preview-table{width:100%;min-width:1000px;border-collapse:collapse;margin:20px 0}
.preview-table th,.preview-table td{padding:9px;border-bottom:1px solid var(--line);text-align:right;font-size:.78rem}
.preview-table th{color:#fff;background:var(--navy)}
.preview-table th:first-child,.preview-table td:first-child{text-align:left}
.preview-summary{width:min(480px,100%);margin-left:auto}
.preview-summary div{display:flex;justify-content:space-between;gap:20px;padding:7px 5px;border-bottom:1px solid var(--line)}
.preview-summary .grand{margin-top:5px;padding:11px;color:#fff;background:var(--teal-dark);border-radius:9px;font-size:1.05rem}
.invoice-note{margin-top:18px;padding:13px;background:#fff8df;border-left:4px solid var(--gold);font-size:.8rem}
.irn-panel{margin-top:18px;padding:14px;background:#edf7f6;border:1px solid #c7e2de;border-radius:10px;overflow-wrap:anywhere}
.irn-panel strong,.irn-panel span{display:block}
.irn-panel span{font-size:.76rem;color:var(--muted)}
.invoice-footer-note{margin-top:24px;padding-top:14px;color:var(--muted);border-top:1px solid var(--line);font-size:.72rem}
.content-section,.source-section{margin:36px 0;padding:clamp(22px,3vw,34px);background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.content-section h2,.source-section h2{margin-top:0;color:var(--navy)}
.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.guide-grid article{padding:17px;background:#f3f8f7;border:1px solid #d5e6e3;border-radius:12px}
.guide-grid h3{margin:0 0 6px;color:var(--teal-dark);font-size:1rem}
.guide-grid p{margin:0;color:var(--muted);font-size:.84rem}
.source-section a{color:var(--teal-dark);font-weight:750}
[hidden]{display:none!important}
@media(max-width:1000px){.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.totals-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-info{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.gst-main{width:min(100% - 20px,1180px)}.panel{padding:18px 14px}.form-grid,.form-grid.three,.form-grid.four,.form-grid.nested,.status-strip,.totals-preview,.party-grid,.invoice-info,.guide-grid{grid-template-columns:minmax(0,1fr)}.span-2,.span-3,.span-4{grid-column:auto}.section-heading,.invoice-head{align-items:flex-start;flex-direction:column}.invoice-head .document-meta{text-align:left}.section-heading>button{width:100%}.sticky-actions{position:static;align-items:stretch;flex-direction:column}.sticky-actions button{width:100%}.invoice-sheet{padding:19px 14px}.preview-summary{width:100%}}
@media(max-width:420px){.legal-banner{padding:15px}.panel{border-radius:12px}.badge{width:100%;justify-content:center}.section-heading{gap:11px}}
@media print{@page{size:A4;margin:10mm}.itft-shell-header,.itft-shell-footer,.seo-breadcrumb,.public-purpose-note,.legal-banner,.status-strip,.micro-note,#gst-form,.content-section,.source-section,.preview-panel>.section-heading{display:none!important}.gst-main{width:100%;margin:0}.preview-panel{display:block!important;margin:0;padding:0;border:0;box-shadow:none}.invoice-sheet{padding:0;border:0;box-shadow:none}.preview-table{min-width:0}.preview-table-wrap{overflow:visible}body{background:#fff}}
