:root{--bg: #f4f6f9;--surface: #ffffff;--surface-muted: #f8fafc;--border: #e2e8f0;--text: #0f172a;--text-muted: #64748b;--primary: #1d4ed8;--primary-soft: #dbeafe;--accent: #0f766e;--accent-soft: #ccfbf1;--warning: #b45309;--warning-soft: #fef3c7;--danger: #b91c1c;--shadow: 0 10px 30px rgba(15, 23, 42, .08);--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:DM Sans,system-ui,sans-serif;background:linear-gradient(180deg,#eef2ff 0%,var(--bg) 180px);color:var(--text);min-height:100vh}#app{max-width:none;margin:0;padding:0}.app-content{max-width:1440px;margin:0 auto;padding:16px 24px 24px}.app-content-wide{max-width:100%;padding:16px 20px 24px}.brand-bar{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 4px 18px #0f172a0d;border-top:4px solid var(--dash-accent, var(--primary))}.brand-title-row{display:flex;align-items:center;gap:12px;min-width:0}.dashboard-icon-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;flex-shrink:0;color:var(--dash-accent, var(--primary));background:var(--dash-accent-soft, var(--primary-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dash-accent, var(--primary)) 18%,transparent)}.dashboard-icon-svg{width:24px;height:24px}.dashboard-icon-badge--pulse{animation:dashboard-icon-pop .55s cubic-bezier(.2,.9,.2,1)}@keyframes dashboard-icon-pop{0%{transform:scale(.72) rotate(-8deg);opacity:.35}60%{transform:scale(1.08) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.brand-heading h1{margin:0 0 2px;font-size:1.35rem;letter-spacing:-.03em;line-height:1.2}.dashboard-content>.panel:first-child,.dashboard-content>section.panel:first-child{border-top:3px solid var(--dash-accent, var(--primary))}.brand-bar-inner{max-width:1440px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:18px}.brand-logo{height:48px;width:auto;max-width:200px;object-fit:contain;flex-shrink:0}.brand-heading{flex:1;min-width:0}.brand-heading p{margin:0;color:var(--text-muted);font-size:.85rem;line-height:1.3}.brand-heading .dashboard-selector,.brand-heading .dashboard-home-link{margin-top:8px}.dashboard-home-link{white-space:nowrap}.dashboard-home{padding:8px 0 24px}.dashboard-home-intro{margin-bottom:18px}.dashboard-home-intro h1{margin:0 0 6px;font-size:1.5rem}.dashboard-home-intro p{margin:0;color:var(--text-muted)}.dashboard-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.dashboard-home-card{display:flex;flex-direction:column;align-items:stretch;gap:14px;width:100%;padding:18px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,var(--dash-accent-soft, #f8fafc) 100%);box-shadow:0 8px 24px #0f172a0d;text-align:left;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.dashboard-home-card:hover:not(:disabled){transform:translateY(-2px);border-color:var(--dash-accent, #1d4ed8);box-shadow:0 14px 30px #0f172a1a}.dashboard-home-card.active{border-color:var(--dash-accent, #1d4ed8)}.dashboard-home-card:disabled{opacity:.75;cursor:wait}.dashboard-home-card.error{border-color:#fca5a5}.dashboard-home-card-head{display:flex;align-items:flex-start;gap:12px}.dashboard-home-card-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--dash-accent-soft, #eff6ff);color:var(--dash-accent, #1d4ed8);flex-shrink:0}.dashboard-home-card-head h2{margin:0 0 4px;font-size:1.05rem;color:var(--text)}.dashboard-home-card-head p{margin:0;color:var(--text-muted);font-size:.82rem;line-height:1.35}.dashboard-home-card-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-home-metric{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.82);border:1px solid rgba(148,163,184,.18)}.dashboard-home-metric-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px}.dashboard-home-metric-value{font-size:1rem;font-weight:700;color:var(--text);line-height:1.2}.dashboard-home-metric-usd .dashboard-home-metric-value{color:#1d4ed8}.dashboard-home-metric-overdue .dashboard-home-metric-value{color:#b91c1c}.dashboard-home-card.deferred .dashboard-home-card-body{min-height:72px;display:flex;align-items:center}.dashboard-home-card.deferred .dashboard-home-card-status{font-style:italic}.dashboard-home-card-foot{min-height:18px;font-size:.8rem;color:var(--text-muted)}.dashboard-home-card-status{grid-column:1 / -1;color:var(--text-muted);font-size:.9rem}.dashboard-home-card-status.error{color:#b91c1c}.brand-actions{text-align:right;flex-shrink:0}.brand-updated{color:var(--text-muted);font-size:.82rem;margin-bottom:6px}.brand-actions .header-actions{margin-top:0}.brand-actions .status{margin-top:6px}.login-page-wrap{min-height:calc(100vh - 78px)}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.header h1{margin:0 0 6px;font-size:1.9rem;letter-spacing:-.03em}.header p{margin:0;color:var(--text-muted)}.dashboard-selector{margin-top:14px;display:flex;align-items:center;gap:10px}.dashboard-selector label{font-size:.82rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dashboard-selector select{min-width:240px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:inherit;background:white}.header-meta{text-align:right;color:var(--text-muted);font-size:.9rem}.header-actions{margin-top:10px;display:flex;gap:8px;justify-content:flex-end}.login-page{min-height:calc(100vh - 126px);display:flex;align-items:center;justify-content:center}.login-card{width:min(460px,100%);padding:28px}.login-card h1{margin:0 0 8px;font-size:1.7rem}.login-card p{margin:0 0 20px;color:var(--text-muted)}.login-form{display:grid;gap:14px}.login-submit{display:inline-block;text-align:center;text-decoration:none;box-sizing:border-box}.provider-description{margin:6px 0 0;font-size:.82rem;color:var(--text-muted)}.login-hint{margin:0;font-size:.82rem;color:var(--text-muted)}.login-hint code{font-size:.8rem}.header-actions button:disabled{opacity:.7;cursor:wait}.status{margin-top:8px;font-size:.82rem;font-weight:600}.status.success{color:var(--accent)}.status.error{color:var(--danger)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.kpi-card .label{color:var(--text-muted);font-size:.82rem;margin-bottom:8px}.kpi-card .value{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.kpi-card.usd .value{color:var(--primary)}.kpi-card.inr .value{color:var(--accent)}.kpi-card.overdue .value{color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:18px;border-bottom:1px solid var(--border);background:var(--surface-muted)}.field label{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.field-year-multiselect,.year-multiselect{position:relative}.year-multiselect-trigger{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:inherit;background:white;text-align:left;color:var(--text);font-weight:500}.year-multiselect-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:240px;overflow:auto;background:white;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:8px 0}.year-multiselect-actions{display:flex;gap:12px;padding:4px 12px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.link-btn{background:transparent;border:none;padding:0;color:var(--primary);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.year-multiselect-option{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:.92rem}.year-multiselect-option:hover{background:var(--surface-muted)}.year-multiselect-option input{width:auto;margin:0}.field input,.field select{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:inherit;background:white}.search-apply-row{display:flex;gap:8px;align-items:center}.search-apply-row input{flex:1;min-width:0}.field-search-apply{min-width:260px}.filters.filters-toolbar{display:flex;flex-direction:column;gap:12px}.filters-collapse-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}.filters-primary-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}.filters-primary-fields .field{margin:0;min-width:150px}.filters-primary-fields .field label{margin-bottom:4px}.filters-collapse-bar .pdf-options-actions{margin-left:auto;align-self:flex-end}.filters-collapse-summary{flex:1 1 220px;font-size:.85rem}.filters-collapse-hint{color:var(--text-muted);font-size:.85rem}.filters-panel-body{display:flex;flex-direction:column;gap:12px}.details-table-wrap-tall{max-height:min(78vh,820px)}.filters-toolbar .filters-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.filters-toolbar .filters-fields .field{flex:0 0 auto;min-width:118px}.filters-toolbar .filters-fields .field-search{min-width:150px}.filters-single-row{display:flex;align-items:flex-end;gap:10px;overflow-x:visible;flex-wrap:wrap}.filters-single-row .filters-fields{display:flex;align-items:flex-end;gap:10px;flex:1;min-width:0;flex-wrap:wrap}.filters-single-row .field{flex:0 0 auto;min-width:118px}.filters-single-row .field-search{min-width:150px}.filters-single-row .field-filter-toggles{min-width:auto;flex:1 1 100%}.filters-single-row .field-filter-toggles .filter-toggles{flex-direction:column;flex-wrap:nowrap;align-items:flex-start;gap:8px;padding-top:0}.filters-single-row .filter-toggle select{width:auto;min-width:130px;padding:6px 8px}.filters-single-row .filter-actions-end{width:100%;margin-left:0;flex-shrink:0;align-items:flex-end;justify-content:flex-end;padding-top:4px}.filter-actions{display:flex;align-items:end;gap:8px}.pdf-options-row{display:flex;flex-wrap:nowrap;align-items:center;gap:20px;width:100%;min-height:40px;padding-top:8px;border-top:1px solid var(--border);overflow-x:auto}.pdf-options-compact{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;overflow:visible}.pdf-options-compact .field{margin:0;min-width:160px}.pdf-options-compact .field-pdf-summary-multiselect{min-width:220px;position:relative;z-index:5}.pdf-options-compact .pdf-summary-multiselect{min-width:220px}.pdf-options-compact .pdf-summary-multiselect .year-multiselect-panel{min-width:240px;right:auto}.pdf-options-compact .pdf-summary-multiselect.is-disabled{opacity:.65;pointer-events:none}.pdf-options-row .filter-toggle,.pdf-options-row .pdf-select-label{flex-shrink:0;white-space:nowrap;font-weight:700;color:var(--text)}.pdf-options-row .pdf-select-label{display:flex;align-items:center;gap:8px;font-size:.9rem}.pdf-options-row select,.pdf-options-compact .field select{width:auto;min-width:160px;padding:7px 9px}.pdf-options-actions{margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:8px;white-space:nowrap}.pdf-summary-includes-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;width:100%;padding:8px 0 4px}.summary-layout .pdf-summary-includes-row{padding:4px 0 10px;border-bottom:1px solid var(--border);margin-bottom:12px}.pdf-summary-includes-label{font-weight:700;color:var(--text);flex-shrink:0;font-size:.9rem}.pdf-summary-toggle{font-size:.85rem;font-weight:600}.field-filter-toggles .filter-toggles{display:flex;flex-direction:column;gap:8px;padding-top:2px}.filter-toggle{display:flex;align-items:center;gap:6px;color:var(--text);font-size:.9rem;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-toggle input{width:auto;margin:0}button{border:none;border-radius:10px;padding:10px 14px;font:inherit;font-weight:600;cursor:pointer}button.primary{background:var(--primary);color:#fff}button.secondary{background:white;border:1px solid var(--border);color:var(--text)}.back-to-summary-btn{background:#ea580c;border:1px solid #c2410c;color:#fff;border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 2px 8px #ea580c59}.back-to-summary-btn:hover{background:#c2410c;border-color:#9a3412}.tabs{display:flex;gap:8px;padding:16px 18px 0;border-bottom:1px solid var(--border)}.tab{background:transparent;color:var(--text-muted);border-bottom:3px solid transparent;border-radius:0;padding:10px 14px 12px}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.summary-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;padding:18px}@media (max-width: 1100px){.summary-layout{grid-template-columns:1fr}}.contracts-summary-table th.col-overdue,.contracts-summary-table td.col-overdue{width:4.5rem;max-width:5rem;white-space:nowrap}.contracts-summary-table th.col-req-hon,.contracts-summary-table td.col-req-hon{width:5.5rem;max-width:6.5rem;white-space:nowrap}.contracts-summary-table th.col-contribution,.contracts-summary-table td.col-contribution{width:4.5rem;max-width:5rem;white-space:nowrap}.subtabs{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 16px}.summary-note{margin:0 18px 12px;color:var(--text-muted);font-size:.875rem}.subtab{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.subtab.active{background:var(--primary-soft);color:var(--primary);border-color:#bfdbfe}.table-wrap{overflow:auto;max-height:420px;border:1px solid var(--border);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:.9rem}thead th{position:sticky;top:0;background:#f1f5f9;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}thead th.group-header{text-align:center;border-bottom:0}thead tr+tr th{top:41px}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{background:#e2e8f0}thead th.sorted{color:var(--primary)}tbody td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:top}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fafc}tbody tr.selected{background:var(--primary-soft)}tbody tr.summary-subtotal{background:var(--surface-muted);font-weight:600}tbody tr.summary-subtotal td{border-top:2px solid var(--border)}tbody tr.summary-total{background:#e2e8f0}tbody tr.summary-total td{border-top:2px solid #94a3b8}tbody tr.details-group-header{background:#e8eef7;font-weight:700}tbody tr.details-group-header td{border-top:2px solid var(--border);color:var(--primary)}.num{text-align:right;font-variant-numeric:tabular-nums}.chart-box{border:1px solid var(--border);border-radius:12px;padding:12px;min-height:360px}.chart-panel{display:flex;flex-direction:column;height:100%;min-height:330px}.chart-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.chart-toolbar label{font-size:.82rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.chart-toolbar select{min-width:160px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font:inherit;background:white}.chart-box canvas,.chart-panel canvas{max-height:300px;flex:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal{width:min(720px,100%);max-height:min(80vh,720px);overflow:auto;padding:22px}.modal h3{margin:0 0 8px}.modal-help{margin:0 0 16px;color:var(--text-muted);font-size:.9rem}.column-picker-actions{display:flex;gap:8px;margin-bottom:12px}.column-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:18px}.column-picker-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted);font-size:.9rem}.column-picker-item input{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.details{padding:18px}.details-table-header{margin-bottom:12px;font-size:1rem;font-weight:600;color:var(--text)}.details-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;color:var(--text-muted);font-size:.9rem}.details-toolbar-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.cell-working-hours{min-width:72px;padding:2px 4px!important}.working-hours-input{width:64px;max-width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:4px;text-align:right;font:inherit;background:#fff}.working-hours-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent);border-color:var(--primary)}.date-combo{display:flex;align-items:center;gap:6px}.date-combo input[type=text]{min-width:110px;flex:1 1 auto}.date-combo input[type=date]{width:34px;min-width:34px;padding:4px 2px;cursor:pointer}.pending-contracts-details-table th.col-group-short,.pending-contracts-details-table td.col-group-short{max-width:10ch;min-width:10ch;width:10ch;overflow:hidden;text-overflow:clip;white-space:nowrap}.details-toggle{display:flex;align-items:center;gap:6px;color:var(--text);font-size:.9rem;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.details-toolbar-info{display:flex;flex-direction:column;gap:4px}.details-toolbar-info-inline{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px 16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.details-toolbar-info-inline>span{white-space:nowrap}.pending-po-details .details-toolbar{margin-bottom:8px}.details-table-wrap-po.details-table-wrap-tall{max-height:min(82vh,900px)}.pending-po-details-table th.col-cont-date,.pending-po-details-table td.col-cont-date{min-width:118px;width:118px;white-space:nowrap!important}.pending-po-details-table th.col-date-one-line,.pending-po-details-table td.col-date-one-line{min-width:110px;white-space:nowrap}.pending-po-details-table th.col-packing-style,.pending-po-details-table td.col-packing-style{min-width:110px}.pending-po-details-table th.col-customer-po,.pending-po-details-table td.col-customer-po{min-width:140px;white-space:nowrap}.pending-po-details-table th.col-center,.pending-po-details-table td.col-center,.pending-po-details-table th.num,.pending-po-details-table td.num{text-align:center}.pending-po-details-table th.col-country,.pending-po-details-table td.col-country{min-width:88px;max-width:88px;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}.pending-po-details-table th.col-product-details,.pending-po-details-table td.col-product-details{min-width:160px;max-width:280px;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}.pending-po-details-table thead th{text-align:center;vertical-align:middle}.pending-contracts-details-table th.col-customer-po,.pending-contracts-details-table td.col-customer-po{min-width:160px;white-space:nowrap}.pending-contracts-details-table th.col-packing-style,.pending-contracts-details-table td.col-packing-style{min-width:130px;width:130px;white-space:normal}.pending-contracts-details-table th.col-req-del-date,.pending-contracts-details-table td.col-req-del-date,.pending-contracts-details-table th.col-date-one-line,.pending-contracts-details-table td.col-date-one-line,.pending-contracts-details-table th.col-contract-no,.pending-contracts-details-table td.col-contract-no{min-width:110px;white-space:nowrap}.pending-contracts-details-table th.col-contract-no,.pending-contracts-details-table td.col-contract-no{min-width:120px}.pending-contracts-details-table,.pending-po-details-table{font-size:.78rem;border-collapse:separate;border-spacing:0}.pending-contracts-details-table th,.pending-contracts-details-table td,.pending-po-details-table th,.pending-po-details-table td{border:1px solid var(--border);border-top:none;border-left:none}.pending-contracts-details-table th:first-child,.pending-contracts-details-table td:first-child,.pending-po-details-table th:first-child,.pending-po-details-table td:first-child{border-left:1px solid var(--border)}.pending-contracts-details-table thead th,.pending-po-details-table thead th{border-top:1px solid var(--border);box-shadow:inset 0 -1px 0 var(--border)}.pending-contracts-details-table thead tr+tr th,.pending-po-details-table thead tr+tr th{border-top:1px solid var(--border)}.pack-matrl-table{min-width:1380px;font-size:.72rem;color:#334155}.pack-matrl-table thead th.pack-th-stack{white-space:normal;line-height:1.15;text-align:center;vertical-align:middle;font-size:.64rem;padding-top:3px;padding-bottom:3px}.pack-matrl-table th.pack-col-compact,.pack-matrl-table td.pack-col-compact{min-width:2.6ch;width:3.2ch;max-width:4.2ch;padding-left:2px;padding-right:2px;font-size:.68rem}.pack-matrl-table th.pack-col-compact.pack-th-stack{min-width:3.4ch;width:4ch;max-width:4.8ch}.pack-matrl-table th.pack-date-col,.pack-matrl-table td.pack-date-col{min-width:15ch;width:15ch;max-width:15ch;white-space:nowrap;font-size:.68rem;text-align:center}.pack-matrl-table th.pack-date-col.pack-th-stack{white-space:normal}.pack-matrl-table th.col-contract-no,.pack-matrl-table td.col-contract-no,.pack-matrl-table th.col-customer,.pack-matrl-table td.col-customer,.pack-matrl-table th.col-product,.pack-matrl-table td.col-product,.pack-matrl-table th.col-size,.pack-matrl-table td.col-size,.pack-matrl-table th.col-packing-style,.pack-matrl-table td.col-packing-style{position:sticky;z-index:3;background:#fff}.pack-matrl-table th.col-contract-no,.pack-matrl-table td.col-contract-no{left:0;min-width:10ch;width:10ch;max-width:10ch}.pack-matrl-table th.col-customer,.pack-matrl-table td.col-customer{left:10ch;min-width:10ch;width:10ch;max-width:10ch;overflow:hidden;text-overflow:ellipsis}.pack-matrl-table th.col-product,.pack-matrl-table td.col-product{left:20ch;min-width:15ch;width:15ch;max-width:15ch;overflow:hidden;text-overflow:ellipsis}.pack-matrl-table th.col-size,.pack-matrl-table td.col-size{left:35ch;min-width:10ch;width:10ch;max-width:10ch}.pack-matrl-table th.col-packing-style,.pack-matrl-table td.col-packing-style{left:45ch;min-width:15ch;width:15ch;max-width:15ch;overflow:hidden;text-overflow:ellipsis;box-shadow:6px 0 8px -8px #0f172a73}.pack-matrl-table th.col-packing-style.pack-th-stack{white-space:normal}.pack-matrl-table thead th.col-contract-no,.pack-matrl-table thead th.col-customer,.pack-matrl-table thead th.col-product,.pack-matrl-table thead th.col-size,.pack-matrl-table thead th.col-packing-style{z-index:5;background:#1d4ed8}.pack-matrl-table thead th.group-header{text-align:center;letter-spacing:.02em;font-weight:700}.pack-matrl-table thead th.pack-group-master{background:#bfdbfe;color:#1e3a8a}.pack-matrl-table thead th.pack-group-pouches{background:#bbf7d0;color:#14532d}.pack-matrl-table thead tr:nth-child(2) th{position:sticky;top:40px;z-index:2;white-space:nowrap}.pack-matrl-table thead th.pack-col-ctn,.pack-matrl-table tbody td.pack-col-ctn{background:#eff6ff}.pack-matrl-table thead th.pack-col-pc,.pack-matrl-table tbody td.pack-col-pc{background:#f0fdf4}.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.pack-col-ctn{background:#e8f1ff}.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.pack-col-pc{background:#e8f8ee}.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td:not(.pack-col-ctn):not(.pack-col-pc){background:#f8fafc}.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.col-contract-no,.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.col-customer,.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.col-product,.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.col-size,.pack-matrl-table tbody tr:nth-child(2n):not(.details-row-to-produce-done) td.col-packing-style{background:#f8fafc}.pack-matrl-table tbody tr.details-row-to-produce-done td.pack-col-ctn,.pack-matrl-table tbody tr.details-row-to-produce-done td.pack-col-pc{background:#b8ffb8}.pack-matrl-table tbody tr.details-row-to-produce-done:hover td.pack-col-ctn,.pack-matrl-table tbody tr.details-row-to-produce-done:hover td.pack-col-pc{background:#9fff9f}.pack-matrl-table tbody td{padding:3px 4px;line-height:1.15;white-space:nowrap;vertical-align:middle}.contracts-matrix-wrap{overflow:visible}.contracts-matrix-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.78rem}.contracts-matrix-table th,.contracts-matrix-table td{border:1px solid var(--border);border-top:none;border-left:none;padding:6px 8px;white-space:nowrap}.contracts-matrix-table th:first-child,.contracts-matrix-table td:first-child{border-left:1px solid var(--border)}.contracts-matrix-table thead th{border-top:1px solid var(--border);position:sticky;top:0;z-index:4;background:#f1f5f9;box-shadow:inset 0 -1px 0 var(--border)}.contracts-matrix-table thead th.contracts-matrix-grade{white-space:normal;text-align:center;vertical-align:middle;line-height:1.15;font-size:.68rem;font-weight:700;min-width:74px;max-width:88px;padding:6px 4px}.contracts-matrix-table thead th.contracts-matrix-commit-date{white-space:normal;line-height:1.15;text-align:center;vertical-align:middle}.contracts-matrix-contract,.contracts-matrix-customer,.contracts-matrix-commit-date{position:sticky;left:0;z-index:2;background:#fff;text-align:left}.contracts-matrix-count{position:sticky;left:0;z-index:2;background:#fff;min-width:36px;width:36px;max-width:40px;text-align:center;font-weight:600;color:#64748b}.contracts-matrix-combined .contracts-matrix-contract{left:36px}.contracts-matrix-combined .contracts-matrix-customer{left:128px}.contracts-matrix-combined .contracts-matrix-commit-date{left:248px;box-shadow:none}.contracts-matrix-contract{left:0;min-width:92px}.contracts-matrix-customer{left:92px;min-width:120px}.contracts-matrix-commit-date{left:212px;min-width:110px;box-shadow:2px 0 4px #0f172a0f}.contracts-matrix-combined .contracts-matrix-commit-date{box-shadow:none}.contracts-matrix-metric{position:sticky;left:358px;z-index:2;background:#fff;min-width:88px;max-width:96px;font-size:.7rem;font-weight:600;color:#334155;white-space:nowrap;box-shadow:2px 0 4px #0f172a0f}.contracts-matrix-combined .contracts-matrix-metric{left:358px}.po-matrix-combined .contracts-matrix-customer{left:36px;min-width:120px}.po-matrix-combined .contracts-matrix-contract{left:156px;min-width:120px}.po-matrix-combined .contracts-matrix-commit-date{left:276px;min-width:110px;box-shadow:none}.po-matrix-combined .contracts-matrix-metric{left:386px}.contracts-matrix-table thead th.contracts-matrix-metric,.contracts-matrix-table thead th.contracts-matrix-count{z-index:5;background:#f1f5f9}.contracts-matrix-combined-row td{border-top-color:#e2e8f0}.contracts-matrix-combined-first td{border-top:1px solid var(--border)}.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td.contracts-matrix-metric{background:#f8fafc}.contracts-matrix-table thead th.contracts-matrix-count,.contracts-matrix-table thead th.contracts-matrix-contract,.contracts-matrix-table thead th.contracts-matrix-customer,.contracts-matrix-table thead th.contracts-matrix-commit-date,.contracts-matrix-table thead th.contracts-matrix-metric{z-index:5;background:#f1f5f9}.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td{background:#f8fafc}.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td.contracts-matrix-count,.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td.contracts-matrix-contract,.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td.contracts-matrix-customer,.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td.contracts-matrix-commit-date,.contracts-matrix-table tbody tr:nth-child(2n):not(.details-group-header):not(.summary-subtotal) td.contracts-matrix-metric{background:#f8fafc}.contracts-matrix-table .matrix-total-col{font-weight:600}.contracts-matrix-grade-by-month .contracts-matrix-grade-label{position:sticky;left:0;z-index:2;background:#fff;text-align:left;min-width:140px;max-width:200px;white-space:normal;line-height:1.15;font-size:.72rem;font-weight:600;box-shadow:2px 0 4px #0f172a0f}.contracts-matrix-grade-by-month thead th.contracts-matrix-grade-label{z-index:5;background:#f1f5f9}.contracts-matrix-grade-by-month .contracts-matrix-month,.contracts-matrix-grade-by-month .matrix-total-col{min-width:72px;white-space:normal;line-height:1.15;font-size:.72rem}.contracts-matrix-grade-by-month .contracts-matrix-month-current{background:#e0f2fe}.contracts-matrix-grade-by-month .matrix-month-sub{display:inline-block;font-weight:500;font-size:.62rem;color:#64748b;line-height:1.1}.contracts-matrix-dual-cell{white-space:normal!important;line-height:1.2;vertical-align:middle;font-variant-numeric:tabular-nums}.contracts-matrix-dual-cell .matrix-dual-line{display:block}.contracts-matrix-grade-by-month tbody tr:nth-child(2n):not(.summary-subtotal) td.contracts-matrix-grade-label{background:#f8fafc}.contracts-matrix-grade-by-month tbody tr.summary-subtotal td.contracts-matrix-grade-label{background:#e2e8f0}.contracts-matrix-projection thead th:nth-child(2),.contracts-matrix-projection tbody td:nth-child(2),.contracts-matrix-projection thead th:nth-last-child(-n+4),.contracts-matrix-projection tbody td:nth-last-child(-n+4){min-width:64px;white-space:nowrap}.pending-contracts-details-table thead th,.pending-po-details-table thead th{font-size:.72rem;padding:5px 4px;line-height:1.1}.pending-contracts-details-table tbody td,.pending-po-details-table tbody td{padding:4px;line-height:1.2;border-bottom:1px solid var(--border)}.contracts-summary-table td.summary-grade-heading{white-space:normal;line-height:1.2;font-size:.78rem;min-width:110px;max-width:160px}.active-filters{color:var(--primary);font-weight:600}.details-table-wrap{overflow:auto;max-height:560px;border:1px solid var(--border);border-radius:12px}.details-table-wrap thead th{white-space:normal;line-height:1.15;vertical-align:bottom;font-size:.78rem;padding:6px 5px}.payout-details-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.8rem}.payout-details-table thead th,.payout-details-table tbody td{white-space:nowrap;padding:5px 8px;vertical-align:middle;line-height:1.2}.payout-details-table .col-customer-po,.payout-details-table .col-remarks{max-width:180px;overflow:hidden;text-overflow:ellipsis}.payout-details-table .col-bank{max-width:160px;overflow:hidden;text-overflow:ellipsis}.payout-details-table .col-negot{max-width:140px;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.details-row-zero-alert td.cell-zero-highlight{background:var(--warning-soft);color:var(--warning);font-weight:600}.details-row-zero-alert:hover td.cell-zero-highlight{background:#fde68a}.details-row-to-produce-done td{background:#b8ffb8}.details-row-to-produce-done:hover td{background:#9fff9f}.details-row-to-produce-done td.cell-zero-highlight{background:var(--warning-soft);color:var(--warning);font-weight:600}.details-row-to-produce-done:hover td.cell-zero-highlight{background:#fde68a}.badge.overdue{background:#fee2e2;color:var(--danger)}.badge.current{background:var(--accent-soft);color:var(--accent)}.rm-pivot-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;padding:16px 18px 18px}.pivot-config{padding:16px;align-self:start;position:sticky;top:12px}.pivot-config h3{margin:0 0 12px;font-size:1rem}.pivot-count-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto;padding:4px 0}.pivot-count-actions{display:flex;gap:12px;margin-top:8px}.pivot-main{min-width:0}.customer-summary-tabs{margin-bottom:12px}.customer-drill-heading{margin-bottom:16px}.customer-drill-title{margin:10px 0 0;font-size:1.25rem;letter-spacing:-.02em}.customer-drill-kpis{margin-top:12px;margin-bottom:0}.customer-name-card .value{font-size:1.1rem;line-height:1.35;word-break:break-word}.customer-drill-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:12px}.customer-drill-header h3{margin:0 0 4px;font-size:1.2rem}.customer-drill-tabs{margin-bottom:12px}.customer-matrix-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-bottom:12px}.customer-matrix-wrap{overflow:auto}.customer-matrix-table{width:max-content;min-width:100%;border-collapse:collapse}.customer-matrix-table th,.customer-matrix-table td{border:1px solid var(--border);padding:8px 10px;white-space:nowrap}.customer-matrix-corner,.customer-matrix-row-label{position:sticky;left:0;background:var(--surface-muted);z-index:1;text-align:left;font-weight:600}.customer-select-row{cursor:pointer}.customer-select-row:hover{background:var(--surface-muted)}.customer-select-row.selected{background:var(--primary-soft)}.customer-summary-shell,.customer-drill-shell{display:flex;flex-direction:column;gap:8px}.pivot-table-wrap{max-height:70vh;overflow:auto}.pivot-table{width:max-content;min-width:100%}.pivot-period-col{position:sticky;left:0;z-index:2;background:var(--surface-muted);min-width:220px}.pivot-period{position:sticky;left:0;z-index:1;background:var(--surface);white-space:nowrap;padding-left:calc(12px + var(--pivot-depth, 0) * 18px)}.pivot-row-year .pivot-period{font-weight:700;background:#f8fafc}.pivot-row-month .pivot-period{font-weight:600}.pivot-toggle{border:none;background:transparent;cursor:pointer;width:20px;padding:0;margin-right:4px;color:var(--primary);font-size:.75rem}.pivot-leaf{display:inline-block;width:20px;margin-right:4px}.pivot-count-header{text-align:center;white-space:nowrap}.pivot-subhead{font-size:.78rem;color:var(--text-muted)}.pivot-empty{color:var(--text-muted)}.pivot-dual{line-height:1.35}.pivot-rate,.pivot-qty{display:block}.pivot-rate{font-weight:600}.pivot-qty{font-size:.82rem;color:var(--text-muted)}.hourwise-empty{padding:28px 24px}.hourwise-empty h3{margin:0 0 8px}.hourwise-empty p{margin:0;color:var(--text-muted)}.cost-sheet-table-wrap{max-height:70vh;overflow:auto}.cost-sheet-table{min-width:2500px;border-collapse:separate;border-spacing:0;font-size:.78rem;border:1px solid #64748b}.cost-sheet-table thead th{position:sticky;z-index:2;background:#99ffff;color:#0f172a;white-space:nowrap;padding:4px 5px;vertical-align:middle;line-height:1.15;border:1px solid #64748b;font-weight:700;text-align:center}.cost-sheet-table thead tr:first-child th{top:0;height:40px}.cost-sheet-table thead tr:nth-child(2) th{top:40px;z-index:1;height:28px;font-size:.72rem;border-top:none}.cost-sheet-table thead th[rowspan="2"]{z-index:3}.cost-sheet-table .cost-freeze{position:sticky;z-index:2;background:#fff}.cost-sheet-table thead th.cost-freeze{z-index:5;background:#99ffff}.cost-sheet-table tbody tr:nth-child(2n) td.cost-freeze{background:#f8fafc}.cost-sheet-table tbody tr.cost-sheet-group-row td.cost-freeze,.cost-sheet-table tbody tr.cost-sheet-group-row td.cost-freeze-group{background:#ccffff;z-index:4}.cost-sheet-table tbody tr.cost-sheet-total-row td.cost-freeze{background:#e2e8f0;z-index:3}.cost-sheet-table .cost-freeze-0{left:0;min-width:110px;max-width:130px}.cost-sheet-table .cost-freeze-1{left:110px;min-width:78px}.cost-sheet-table .cost-freeze-2{left:188px;min-width:58px}.cost-sheet-table .cost-freeze-3{left:246px;min-width:50px}.cost-sheet-table .cost-freeze-4{left:296px;min-width:42px}.cost-sheet-table .cost-freeze-5{left:338px;min-width:58px}.cost-sheet-table .cost-freeze-6{left:396px;min-width:52px}.cost-sheet-table .cost-freeze-7{left:448px}.cost-sheet-table .cost-freeze-8{left:506px;min-width:54px;box-shadow:2px 0 5px #0f172a1f}.cost-sheet-table .cost-freeze-span{left:0;min-width:448px;max-width:none;z-index:3}.cost-sheet-table .cost-freeze-group{left:0;z-index:4;box-shadow:2px 0 5px #0f172a1f}.cost-sheet-table .cost-head-group{text-align:center!important;vertical-align:middle}.cost-sheet-table thead th.cost-col-wrap{white-space:normal;word-break:break-word;line-height:1.1;font-size:.7rem;padding:3px}.cost-sheet-table th.cost-col-pack,.cost-sheet-table td.cost-col-pack{max-width:58px;width:58px}.cost-sheet-table th.cost-col-ovh,.cost-sheet-table td.cost-col-ovh{max-width:48px;width:48px}.cost-sheet-table th.cost-col-excess,.cost-sheet-table td.cost-col-excess{max-width:56px;width:56px}.cost-sheet-table th.cost-col-exc,.cost-sheet-table td.cost-col-exc{max-width:52px;width:52px}.cost-sheet-table th.cost-col-sales-rate,.cost-sheet-table td.cost-col-sales-rate{max-width:54px;width:54px}.cost-sheet-table th.cost-col-sales-val,.cost-sheet-table td.cost-col-sales-val{max-width:62px;width:62px}.cost-sheet-table .cost-head-base{background:#99ffff;color:#0f172a}.cost-sheet-table .cost-head-exp{background:#ccccff;color:#0f172a}.cost-sheet-table .cost-head-cop{background:#ff99ff;color:#0f172a}.cost-sheet-table .cost-head-sell{background:#ccffcc;color:#0f172a}.cost-sheet-table .cost-head-less{background:#ccffff;color:#0f172a}.cost-sheet-table .cost-head-net{background:#ccccff;color:#0f172a}.cost-sheet-table .cost-head-pl{background:#ffffcc;color:#0f172a}.cost-sheet-table td{white-space:nowrap;padding:3px 5px;border:1px solid #94a3b8;color:#0f172a}.cost-sheet-table tbody tr:nth-child(2n) td{background:#f8fafc}.cost-sheet-table th:first-child,.cost-sheet-table td:first-child{border-left:1px solid #64748b}.cost-sheet-group-row td{background:#ccffff!important;font-weight:700;padding:5px 8px;border:1px solid #64748b}.cost-sheet-total-row td{background:#e2e8f0!important;border:1px solid #64748b;font-weight:700}.cost-cop{background:#fdf4ff}.cost-sheet-table tbody tr:nth-child(2n) td.cost-cop{background:#fae8ff}.cost-pl-pos{color:#15803d;font-weight:700}.cost-pl-neg{color:#b91c1c;font-weight:700}.hourwise-table-wrap{max-height:640px}.hourwise-table{min-width:1180px;border-collapse:collapse}.hourwise-table thead th{position:sticky;top:0;z-index:2;background:#1d4ed8;color:#fff;white-space:nowrap}.hourwise-table thead tr:nth-child(2) th{top:28px;background:#2563eb;font-size:.78rem}.hourwise-stage-head{text-align:center}.hourwise-subhead{min-width:72px}.hourwise-row-date td{background:#eff6ff;font-weight:700}.hourwise-row-hour td{background:#f1f5f9}.hourwise-row-ic td{background:#f8fafc}.hourwise-tree{white-space:nowrap}.hourwise-time{min-width:112px;white-space:nowrap}.hourwise-tree .pivot-toggle{margin-right:6px}.hourwise-qty,.hourwise-cum{min-width:70px}.hourwise-cum{color:#475569}.empty{padding:40px;text-align:center;color:var(--text-muted)}.admin-page .admin-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.admin-page .admin-header h2{margin:0 0 4px}.admin-page .admin-header p,.admin-help{margin:0;color:var(--text-muted);font-size:.9rem}.admin-card{border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-top:16px;background:var(--surface)}.admin-card h3{margin:0 0 12px;font-size:1rem}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.admin-form-actions{display:flex;gap:8px;margin-top:14px}.admin-access-list{display:grid;gap:8px;margin-top:14px}.admin-access-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.admin-access-item input{margin-top:3px}.admin-access-item strong{display:block}.admin-access-item small{display:block;color:var(--text-muted);margin-top:2px}
