:root{--bg-app:#f8fafc;--bg-card:#fff;--bg-card-subtle:#f1f5f9;--bg-muted:#e2e8f0;--border-color:#e2e8f0;--border-subtle:#cbd5e1;--text-main:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--brand-primary:#ea580c;--brand-primary-hover:#c2410c;--brand-primary-subtle:#fff7ed;--color-green:#16a34a;--color-green-subtle:#f0fdf4;--color-green-border:#bbf7d0;--color-red:#dc2626;--color-red-subtle:#fef2f2;--color-red-border:#fecaca;--color-amber:#d97706;--color-amber-subtle:#fffbeb;--color-amber-border:#fde68a;--color-blue:#2563eb;--color-blue-subtle:#eff6ff;--color-blue-border:#bfdbfe;--font-system:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #00000008}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-system);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.portal-container{background-color:var(--bg-app);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.portal-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:10;padding:20px 16px 16px;position:sticky;top:0}.portal-brand{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.brand-badge{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-primary);background:var(--brand-primary-subtle);border-radius:var(--radius-sm);padding:3px 8px;font-size:11px;font-weight:800}.portal-label{color:var(--text-muted);font-size:12px;font-weight:600}.customer-name{color:var(--text-main);font-size:20px;font-weight:700;line-height:1.25}.customer-city{color:var(--text-muted);align-items:center;gap:4px;margin-top:2px;font-size:13px;display:flex}.portal-content{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex}.portal-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px 16px}.card-title-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-title{color:var(--text-main);text-transform:uppercase;letter-spacing:.03em;font-size:15px;font-weight:700}.card-badge{background:var(--bg-card-subtle);color:var(--text-muted);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.dues-headline-card{border-radius:var(--radius-md);text-align:center;margin-bottom:16px;padding:16px}.dues-headline-card.owing{background:var(--color-red-subtle);border:1px solid var(--color-red-border)}.dues-headline-card.owing .dues-headline-label,.dues-headline-card.owing .dues-headline-amount{color:var(--color-red)}.dues-headline-card.nil{background:var(--color-green-subtle);border:1px solid var(--color-green-border)}.dues-headline-card.nil .dues-headline-label,.dues-headline-card.nil .dues-headline-amount{color:var(--color-green)}.dues-headline-card.advance{background:var(--color-blue-subtle);border:1px solid var(--color-blue-border)}.dues-headline-card.advance .dues-headline-label,.dues-headline-card.advance .dues-headline-amount{color:var(--color-blue)}.dues-headline-label{letter-spacing:.02em;margin-bottom:4px;font-size:13px;font-weight:700}.dues-headline-amount{letter-spacing:-.02em;font-size:32px;font-weight:800;line-height:1.1}.dues-credit-term{color:var(--text-muted);margin-top:6px;font-size:11.5px}.dues-subtabs{border-bottom:1px solid var(--border-color);margin-bottom:12px;display:flex}.dues-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 0;font-size:12.5px;font-weight:600}.dues-tab-btn.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.item-list{flex-direction:column;gap:10px;display:flex}.item-row{background:var(--bg-card-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 14px}.item-row-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.item-main-id{color:var(--text-main);font-size:13.5px;font-weight:700}.item-date{color:var(--text-muted);font-size:11.5px}.item-subtext{color:var(--text-muted);margin-bottom:6px;font-size:12px}.item-bottom-row{border-top:1px dashed var(--border-color);justify-content:space-between;align-items:center;margin-top:6px;padding-top:6px;display:flex}.amount-label{color:var(--text-muted);font-size:11px}.amount-value{color:var(--text-main);font-size:14px;font-weight:700}.amount-value.not-priced{color:var(--text-muted);font-size:12px;font-style:italic;font-weight:600}.status-pill{letter-spacing:.03em;border-radius:12px;align-items:center;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-flex}.status-pill.dispatched{background:var(--color-green-subtle);color:var(--color-green);border:1px solid var(--color-green-border)}.status-pill.cancelled{background:var(--bg-muted);color:var(--text-muted);border:1px solid var(--border-subtle)}.status-pill.overdue{background:var(--color-red-subtle);color:var(--color-red);border:1px solid var(--color-red-border)}.status-pill.settled{background:var(--color-green-subtle);color:var(--color-green)}.status-pill.reversed{background:var(--color-red-subtle);color:var(--color-red);border:1px solid var(--color-red-border)}.status-pill.open{background:var(--color-blue-subtle);color:var(--color-blue);border:1px solid var(--color-blue-border)}.status-pill.fulfilled{background:var(--color-green-subtle);color:var(--color-green);border:1px solid var(--color-green-border)}.order-progress-bar{background:var(--bg-muted);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.order-progress-fill{background:var(--brand-primary);border-radius:3px;height:100%}.order-progress-text{color:var(--text-muted);justify-content:space-between;font-size:11.5px;display:flex}.btn-gate-pass{border:1px solid var(--brand-primary);color:var(--brand-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:4px 10px;font-size:12px;font-weight:600}.btn-gate-pass:hover{background:var(--brand-primary-subtle)}.empty-state{text-align:center;color:var(--text-muted);background:var(--bg-card-subtle);border-radius:var(--radius-md);padding:20px 12px;font-size:12.5px}.failure-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:80vh;padding:32px 20px;display:flex}.failure-icon{background:var(--color-red-subtle);width:56px;height:56px;color:var(--color-red);border-radius:28px;justify-content:center;align-items:center;margin-bottom:20px;font-size:24px;font-weight:700;display:flex}.failure-icon.info{background:var(--color-amber-subtle);color:var(--color-amber)}.failure-title{color:var(--text-main);margin-bottom:8px;font-size:18px;font-weight:700}.failure-message{color:var(--text-muted);max-width:320px;margin-bottom:20px;font-size:14px;line-height:1.45}.office-contact-box{background:var(--bg-card-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-main);padding:12px 18px;font-size:13px}.office-contact-box strong{text-transform:uppercase;color:var(--text-muted);margin-bottom:2px;font-size:11px;display:block}.btn-retry{background:var(--brand-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:16px;padding:8px 18px;font-size:13px;font-weight:600}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=500px){.modal-overlay{align-items:center;padding:20px}}.modal-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#fff;width:100%;max-width:500px;max-height:90vh;padding:20px;position:relative;overflow-y:auto}@media (width>=500px){.modal-content{border-radius:var(--radius-lg)}}.modal-actions{gap:10px;margin-top:20px;display:flex}.btn-modal-print{background:var(--brand-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;flex:1;padding:10px 0;font-size:14px;font-weight:600}.btn-modal-close{background:var(--bg-card-subtle);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;padding:10px 16px;font-size:14px;font-weight:600}.gate-pass-doc{color:#000;font-family:var(--font-system);background:#fff;border:1px solid #000;padding:16px}.gp-header{text-align:center;border-bottom:2px solid #000;margin-bottom:12px;padding-bottom:8px}.gp-header h1{margin:0 0 2px;font-size:16pt;font-weight:700}.gp-header p{color:#333;margin:1px 0;font-size:8.5pt}.gp-title{text-align:center;margin-top:6px;font-size:11pt;font-weight:700;text-decoration:underline}.gp-grid{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;font-size:9pt;display:grid}.gp-table{border-collapse:collapse;width:100%;margin-bottom:16px;font-size:9pt}.gp-table th,.gp-table td{text-align:left;border:1px solid #000;padding:4px 6px}.gp-table th{background:#f2f2f2;font-weight:700}.gp-signatures{grid-template-columns:1fr 1fr;gap:16px;margin-top:30px;display:grid}.gp-sign-box{text-align:center;border-top:1px solid #000;padding-top:4px;font-size:8.5pt}@media print{body *{visibility:hidden}.print-only,.print-only *{visibility:visible}.print-only{width:100%;margin:0;padding:20px;position:absolute;top:0;left:0;color:#000!important;background:#fff!important}.no-print{display:none!important}}
