:root{--fc-page:#f7f4ef;--fc-surface:#fffefc;--fc-surface-soft:#f2ece5;--fc-surface-warm:#e8ddce;--fc-surface-hover:#faf6f1;--fc-text:#30231e;--fc-text-secondary:#756960;--fc-text-muted:#9a8d83;--fc-text-dim:#b8ada3;--fc-text-inv:#faf7f2;--fc-brand:#a9855f;--fc-brand-dark:#785d45;--fc-brand-soft:#d7c1a8;--fc-brand-faint:#f3ece4;--fc-brand-glow:#a9855f2e;--fc-border:#523d301a;--fc-border-strong:#523d302e;--fc-border-focus:#a9855f73;--fc-success:#53755b;--fc-success-bg:#edf4ee;--fc-success-border:#53755b40;--fc-warning:#9a713d;--fc-warning-bg:#f8f0e4;--fc-warning-border:#9a713d40;--fc-danger:#96564d;--fc-danger-bg:#f7ecea;--fc-danger-border:#96564d40;--fc-info:#657687;--fc-info-bg:#edf1f4;--fc-info-border:#65768740;--font-serif:"Playfair Display", Georgia, serif;--font-sans:"Manrope", "Plus Jakarta Sans", -apple-system, sans-serif;--sidebar-width:260px;--header-height:68px;--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--shadow-sm:0 1px 2px #39271d08;--shadow-card:0 1px 3px #39271d08, 0 10px 30px #39271d0a;--shadow-panel:0 2px 8px #39271d0a, 0 20px 40px #39271d0f;--shadow-modal:0 10px 40px #30231e24, 0 2px 8px #30231e0f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--fc-page);color:var(--fc-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}h1,h2,h3,.font-serif{font-family:var(--font-serif);color:var(--fc-text);letter-spacing:-.015em}.eyebrow{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--fc-brand-dark);font-size:.72rem;font-weight:700}.glass-panel{background:var(--fc-surface);border:1px solid var(--fc-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.glass-card{background:var(--fc-surface);border:1px solid var(--fc-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.35rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.glass-card:hover{background:var(--fc-surface);border-color:var(--fc-border-strong);box-shadow:var(--shadow-card);transform:translateY(-1px)}.btn-primary{background:var(--fc-text);color:var(--fc-text-inv);font-size:.88rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:.5rem;padding:.65rem 1.25rem;transition:all .18s;display:inline-flex;box-shadow:0 2px 6px #30231e26}.btn-primary:hover{background:#42322b;transform:translateY(-1px);box-shadow:0 4px 12px #30231e38}.btn-secondary{background:var(--fc-surface);color:var(--fc-text);border:1px solid var(--fc-border-strong);font-size:.88rem;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:.5rem;padding:.65rem 1.25rem;transition:all .18s;display:inline-flex}.btn-secondary:hover{background:var(--fc-surface-hover);border-color:var(--fc-brand-dark);color:var(--fc-text)}.btn-danger{background:var(--fc-danger-bg);color:var(--fc-danger);border:1px solid var(--fc-danger-border);font-size:.85rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:.4rem;padding:.6rem 1rem;transition:all .18s;display:inline-flex}.btn-danger:hover{border-color:var(--fc-danger);background:#f1dad7}.glass-input{background:var(--fc-surface);border:1px solid var(--fc-border-strong);border-radius:var(--radius-sm);width:100%;color:var(--fc-text);font-size:.88rem;font-family:var(--font-sans);outline:none;padding:.68rem .95rem;transition:all .18s}.glass-input:focus{border-color:var(--fc-brand);box-shadow:0 0 0 3px var(--fc-brand-glow);background:#fff}.glass-input::placeholder{color:var(--fc-text-dim)}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--fc-text-secondary);letter-spacing:.01em;margin-bottom:.4rem;font-size:.82rem;font-weight:600;display:block}.form-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;display:grid}.admin-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--fc-border);background:var(--fc-surface);width:100%;box-shadow:var(--shadow-sm);overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:.88rem;font-family:var(--font-sans)}.admin-table th{color:var(--fc-text-secondary);border-bottom:1px solid var(--fc-border-strong);text-transform:uppercase;letter-spacing:.06em;background:#faf6f1;padding:.9rem 1.15rem;font-size:.72rem;font-weight:700}.admin-table td{vertical-align:middle;color:var(--fc-text);border-bottom:1px solid #523d300f;padding:1.1rem 1.15rem}.admin-table tr:hover td{background:var(--fc-surface-hover)}.badge{letter-spacing:.02em;border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.73rem;font-weight:600;display:inline-flex}.badge-success{background:var(--fc-success-bg);color:var(--fc-success);border:1px solid var(--fc-success-border)}.badge-warning{background:var(--fc-warning-bg);color:var(--fc-warning);border:1px solid var(--fc-warning-border)}.badge-danger{background:var(--fc-danger-bg);color:var(--fc-danger);border:1px solid var(--fc-danger-border)}.badge-info{background:var(--fc-info-bg);color:var(--fc-info);border:1px solid var(--fc-info-border)}.app-container{background-color:var(--fc-page);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--fc-border);z-index:50;background:#faf6f1;flex-direction:column;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0}.main-content{margin-left:var(--sidebar-width);background-color:var(--fc-page);flex-direction:column;flex:1;min-height:100vh;display:flex}.top-navbar{height:var(--header-height);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--fc-border);z-index:40;background:#fffefce0;justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:sticky;top:0}.page-body{flex:1;padding:2.25rem 2.5rem}.product-thumbnail{object-fit:cover;background:var(--fc-surface-soft);border:1px solid var(--fc-border);width:56px;height:56px;box-shadow:var(--shadow-sm);border-radius:12px;flex-shrink:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--fc-page)}::-webkit-scrollbar-thumb{background:var(--fc-border-strong);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--fc-text-muted)}@media (width<=900px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:0 10px 40px #30231e29}.main-content{margin-left:0}.page-body{padding:1.5rem 1rem}.top-navbar{padding:0 1rem}}.admin-pagination-wrapper{border-top:1px solid var(--fc-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.admin-pagination-info{color:var(--fc-text-secondary);font-size:.84rem;font-weight:500}.admin-pagination-controls{align-items:center;gap:.4rem;display:flex}.admin-pagination-btn{border-radius:var(--radius-sm);border:1px solid var(--fc-border);background:var(--fc-surface);min-width:36px;height:36px;color:var(--fc-text);cursor:pointer;justify-content:center;align-items:center;gap:.3rem;padding:0 .75rem;font-size:.82rem;font-weight:500;transition:all .15s;display:inline-flex}.admin-pagination-btn:hover:not(:disabled){border-color:var(--fc-brand);background:var(--fc-surface-hover);color:var(--fc-brand-dark)}.admin-pagination-btn:disabled{opacity:.45;cursor:not-allowed;background:var(--fc-surface-soft);border-color:var(--fc-border)}.admin-pagination-num{border-radius:var(--radius-sm);border:1px solid var(--fc-border);background:var(--fc-surface);width:36px;height:36px;color:var(--fc-text);cursor:pointer;justify-content:center;align-items:center;font-size:.84rem;font-weight:600;transition:all .15s;display:inline-flex}.admin-pagination-num:hover:not(.active){border-color:var(--fc-brand);background:var(--fc-surface-hover);color:var(--fc-brand-dark)}.admin-pagination-num.active{background:var(--fc-text);color:var(--fc-text-inv);border-color:var(--fc-text);cursor:default}.admin-pagination-ellipsis{width:28px;height:36px;color:var(--fc-text-muted);justify-content:center;align-items:center;font-size:.88rem;font-weight:600;display:inline-flex}.fc-merch-card{background:#fffdf9;border:1px solid #523d301f;border-radius:16px;margin-bottom:2rem;padding:30px 32px;box-shadow:0 1px 3px #39271d08,0 8px 24px #39271d08}@media (width<=640px){.fc-merch-card{border-radius:12px;padding:20px 18px}}.fc-merch-divider{background-color:#523d3014;width:100%;height:1px;margin:28px 0}.fc-merch-group-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.fc-merch-group-title{color:var(--fc-brand-dark);text-transform:uppercase;letter-spacing:.6px;font-size:.95rem;font-weight:700}.fc-merch-helper{color:var(--fc-text-muted);margin-top:4px;font-size:.78rem;line-height:1.4}.fc-toggle-wrapper{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.fc-toggle-switch{background-color:#e2d7cc;border-radius:22px;flex-shrink:0;width:38px;height:22px;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.fc-toggle-switch.active{background-color:#2e211c}.fc-toggle-thumb{background-color:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s cubic-bezier(.16,1,.3,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.fc-toggle-switch.active .fc-toggle-thumb{transform:translate(16px)}.fc-toggle-label{color:var(--fc-text-secondary);font-size:.78rem;font-weight:600;transition:color .15s}.fc-toggle-switch.active+.fc-toggle-label{color:var(--fc-brand-dark)}.fc-merch-badge{letter-spacing:.6px;text-transform:uppercase;border-radius:4px;align-items:center;padding:.22rem .6rem;font-size:.7rem;font-weight:700;line-height:1.1;display:inline-flex}.fc-badge-rose{color:#c76c78;background-color:#fdf2f3;border:1px solid #f8d8dc}.fc-badge-espresso{color:#faf7f2;background-color:#2e211c;border:1px solid #2e211c}.fc-badge-taupe{color:#523d30;background-color:#f2ebe3;border:1px solid #e0d5c7}.fc-badge-green{color:#53755b;background-color:#edf4ee;border:1px solid #53755b40}.fc-badge-outline{color:#2e211c;background-color:#fff;border:1px solid #2e211c}.fc-btn-outline{color:#523d30;cursor:pointer;background-color:#fff;border:1px solid #523d3033;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:.35rem .75rem;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.fc-btn-outline:hover{color:#2e211c;background-color:#faf6f0;border-color:#2e211c}.fc-preview-container{background:#faf7f2;border:1px solid #523d301a;border-radius:12px;margin-top:1.75rem;padding:1.25rem 1.5rem}.fc-preview-label{letter-spacing:.08em;text-transform:uppercase;color:#8c7e74;align-items:center;gap:6px;margin-bottom:.75rem;font-size:.72rem;font-weight:700;display:flex}.category-drag-handle{color:#b2a49b;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:inline-flex}.category-drag-handle:hover{color:#523d30;background:#efe8df}.category-drag-handle:active,.category-drag-handle.dragging{cursor:grabbing;color:#2e211c;background:#e5ddd3}.category-move-btn{color:#7c6c63;cursor:pointer;background:#fff;border:1px solid #523d3026;border-radius:3px;justify-content:center;align-items:center;width:18px;height:14px;padding:0;transition:all .12s;display:inline-flex}.category-move-btn:hover:not(:disabled){color:#2e211c;background:#f3ece4;border-color:#2e211c}.category-move-btn:disabled{opacity:.3;cursor:not-allowed;background:0 0;border-color:#0000}.category-row-dragging{opacity:.85;outline:2px dashed #c2a896;box-shadow:0 10px 25px -5px #2e211c26,0 8px 10px -6px #2e211c1a;background:#faf5ee!important}.category-row-over{background:#fbf8f3!important;border-top:2px solid #a88b77!important}.fc-reorder-pill{border-radius:14px;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:600;transition:all .2s;display:inline-flex}.fc-reorder-pill.saving{color:#8a5a36;background:linen;border:1px solid #8a5a3633}.fc-reorder-pill.saved{color:#53755b;background:#edf4ee;border:1px solid #53755b40}.fc-reorder-pill.idle{color:#8c7e74;background:#f4efeb;border:1px solid #8c7e7433}.invoice-page-wrapper{max-width:1000px;margin:0 auto;padding:1.5rem 1rem 4rem}.invoice-settings-banner{background-color:#fffbeb;border:1px solid #fde68a;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.85rem 1.25rem;display:flex}.invoice-actions-bar{background:var(--fc-surface,#fff);border:1px solid var(--fc-border,#523d301a);border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:.75rem 1.25rem;display:flex;box-shadow:0 1px 3px #2e211c0a}.invoice-badge{border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.invoice-badge-gst{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.invoice-badge-std{color:#4b5563;background-color:#f3f4f6;border:1px solid #e5e7eb}.gst-invoice-sheet{max-width:820px;min-height:1060px;font-family:var(--font-sans);box-sizing:border-box;border:1px solid #eae3db;border-radius:2px;flex-direction:column;margin:0 auto;padding:40px 48px;display:flex;box-shadow:0 4px 28px #2e211c0f,0 1px 4px #2e211c08;color:#4a3e38!important;background:#fff!important}.gst-header-grid{border-top:2px solid #2e211c;border-bottom:1px solid #eae3db;grid-template-columns:1.35fr 1fr;align-items:start;gap:28px;padding-top:18px;padding-bottom:22px;display:grid}.gst-brand-title{font-family:var(--font-serif);color:#2e211c;letter-spacing:-.01em;margin:0 0 4px;font-size:1.65rem;font-weight:600;line-height:1.2}.gst-proprietor-line{color:#7c6c63;margin:0 0 6px;font-size:.8rem}.gst-supplier-address{color:#6b5e55;margin:0 0 2px;font-size:.8rem;line-height:1.4}.gst-supplier-compliance{color:#7c6c63;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:.78rem;display:flex}.gst-bullet{color:#b8ada3}.gst-meta-col{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.gst-doc-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#8c7e74;margin-bottom:4px;font-size:.72rem;font-weight:600}.gst-invoice-num{font-family:var(--font-serif);color:#2e211c;margin-bottom:10px;font-size:1.25rem;font-weight:600}.gst-meta-list{width:100%;max-width:240px}.gst-meta-item{justify-content:space-between;padding:2.5px 0;font-size:.8rem;display:flex}.gst-meta-label{color:#8c7e74}.gst-meta-val{color:#2e211c;font-weight:500}.gst-parties-grid{border-bottom:1px solid #eae3db;grid-template-columns:1fr 1fr;gap:36px;padding:22px 0;display:grid}.gst-section-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#8c7e74;margin-bottom:3px;font-size:.68rem;font-weight:600;display:block}.gst-party-heading{font-family:var(--font-serif);color:#2e211c;margin:0 0 6px;font-size:1.05rem;font-weight:600}.gst-party-name{color:#2e211c;margin:0 0 5px;font-size:.92rem;font-weight:600}.gst-party-text{color:#5c4f47;margin:0 0 3px;font-size:.8rem;line-height:1.4}.gst-party-text span{color:#8c7e74}.gst-party-address{color:#5c4f47;margin:0 0 4px;font-size:.8rem;line-height:1.4}.gst-table-container{margin:20px 0 24px}.gst-items-table{table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.82rem}.gst-items-table thead tr{background:#faf8f5;border-top:1px solid #ddd4cc;border-bottom:1px solid #ddd4cc}.gst-items-table th{color:#7c6c63;letter-spacing:.05em;text-transform:uppercase;border:none;padding:9px 10px;font-size:.7rem;font-weight:600}.gst-items-table tbody tr{border-bottom:1px solid #f0eae1}.gst-items-table td{vertical-align:middle;color:#4a3e38;border:none;padding:13px 10px}.gst-item-title{color:#2e211c;font-size:.86rem;font-weight:600}.gst-tax-breakdown-section{margin:18px 0 24px}.gst-subheading{font-family:var(--font-serif);color:#2e211c;margin:0 0 8px;font-size:1rem;font-weight:600}.gst-tax-breakdown-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.8rem}.gst-tax-breakdown-table thead tr{background:#faf8f5;border-top:1px solid #ddd4cc;border-bottom:1px solid #ddd4cc}.gst-tax-breakdown-table th{color:#7c6c63;letter-spacing:.05em;text-transform:uppercase;border:none;padding:7px 10px;font-size:.68rem;font-weight:600}.gst-tax-breakdown-table tbody tr{border-bottom:1px solid #f0eae1}.gst-tax-breakdown-table td{color:#4a3e38;border:none;padding:9px 10px}.gst-totals-grid{grid-template-columns:1.25fr 1fr;align-items:start;gap:36px;margin:24px 0;display:grid}.gst-words-block{margin-bottom:20px}.gst-words-val{font-family:var(--font-serif);color:#2e211c;margin:4px 0 0;font-size:1.05rem;font-style:italic;line-height:1.45}.gst-payment-block{margin-top:10px}.gst-payment-line{color:#6b5e55;margin:4px 0 0;font-size:.8rem}.gst-totals-box{background:0 0;padding:0}.gst-total-line{color:#5c4f47;font-variant-numeric:tabular-nums;justify-content:space-between;padding:4px 0;font-size:.82rem;display:flex}.gst-subline{color:#7c6c63;font-size:.78rem}.gst-total-label{color:#6b5e55}.gst-total-num{color:#2e211c;font-weight:500}.gst-grand-total-row{border-top:1px solid #2e211c;border-bottom:3px double #2e211c;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:8px;padding-bottom:6px;display:flex}.gst-grand-label{font-family:var(--font-serif);color:#2e211c;font-size:1.15rem;font-weight:600}.gst-grand-val{font-family:var(--font-serif);color:#2e211c;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.gst-footer-section{border-top:1px solid #eae3db;grid-template-columns:1.4fr 1fr;gap:36px;margin-top:32px;padding-top:24px;display:grid}.gst-footer-left{color:#6b5e55;font-size:.78rem}.gst-footer-note-text{color:#5c4f47;margin:4px 0 8px;line-height:1.4}.gst-footer-support{color:#7c6c63;margin:0 0 6px}.gst-footer-disclaimer{color:#9a8d83;margin:0;font-size:.72rem;font-style:italic}.gst-signature-box{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.gst-sign-for{font-family:var(--font-serif);color:#2e211c;margin:0;font-size:.95rem;font-weight:600}.gst-sign-prop{color:#8c7e74;margin:2px 0 0;font-size:.76rem}.gst-sign-space{height:52px}.gst-sign-line{border-top:1px dashed #ddd4cc;width:160px;margin-bottom:4px}.gst-sign-label{color:#6b5e55;margin:0;font-size:.74rem}@media print{@page{size:A4 portrait;margin:12mm 14mm}html,body{color:#2e211c!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;width:100%!important;margin:0!important;padding:0!important}.invoice-actions-bar,.invoice-settings-banner,.app-sidebar,.admin-sidebar,.admin-navbar,.main-nav,.btn,button,.toaster,aside,header,nav,#root>div>div>header{display:none!important}.app-container,.main-content,.page-body,.invoice-page-wrapper{width:100%!important;max-width:100%!important;box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important}.gst-invoice-sheet{width:100%!important;max-width:100%!important;box-shadow:none!important;border:none!important;min-height:auto!important;margin:0!important;padding:0!important}.gst-items-table tr,.gst-tax-breakdown-table tr,.gst-parties-grid,.gst-totals-grid,.gst-footer-section{page-break-inside:avoid}}
