:root{--primary: #2c5f8a;--primary-dark: #1a3a5c;--accent: #3d7ab5;--danger: #dc3545;--warning: #ffc107;--success: #28a745;--gray-100: #f8f9fa;--gray-200: #e9ecef;--gray-300: #dee2e6;--gray-600: #6c757d;--gray-800: #343a40;--white: #ffffff;--font: "Segoe UI", Calibri, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);font-size:14px;color:var(--gray-800);background:var(--gray-100)}.app-layout{min-height:100vh}.app-header{background:var(--primary-dark);color:var(--white);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:32px}.header-right{display:flex;align-items:center;gap:16px}.app-title{font-size:18px;font-weight:600}.nav-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.nav-link{color:#ffffffbf;text-decoration:none;font-size:13px;font-weight:500;padding:6px 14px;border-radius:999px;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.nav-link:hover{background:#ffffff1f;color:var(--white)}.nav-link.active{background:var(--white);color:var(--primary-dark);font-weight:600}.user-info{font-size:13px;opacity:.8}.app-main{max-width:1400px;margin:0 auto;padding:24px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--gray-300);border-radius:4px;background:var(--white);color:var(--gray-800);cursor:pointer;font-size:13px}.btn:hover{background:var(--gray-200)}.btn-primary{background:var(--primary);color:var(--white);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{background:var(--white);color:var(--primary);border-color:var(--primary)}.btn-outline:hover{background:var(--gray-100)}.btn-outline-light{background:transparent;color:var(--white);border-color:#fff6}.btn-outline-light:hover{background:#ffffff1a}.btn-sm{padding:4px 10px;font-size:12px}.data-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px}.data-table th{background:var(--primary);color:var(--white);padding:8px 12px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.data-table td{padding:8px 12px;border-bottom:1px solid var(--gray-200)}.data-table tr:hover{background:#f0f6fc}.data-table .amount{text-align:right;font-variant-numeric:tabular-nums}.actions-cell{display:flex;gap:6px}.table-scroll{width:100%;overflow-x:auto}.data-table td.party-cell{max-width:220px}.party-cell .party-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.party-cell .party-trn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--gray-600);font-variant-numeric:tabular-nums}.status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600}.status-received{background:#fce8e8;color:var(--danger)}.status-reviewed{background:#fff3cd;color:#856404}.status-entered{background:#d4edda;color:var(--success)}.status-ecm{background:var(--gray-200);color:var(--gray-600)}.filter-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.filter-bar input,.filter-bar select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:4px;font-size:13px}.pagination{display:flex;align-items:center;gap:16px;margin-top:16px;font-size:13px}.pagination button{padding:6px 12px}.bulk-actions{margin-top:12px;display:flex;gap:12px;padding:12px;background:#e8f0fe;border-radius:4px}:root{--st-total: #2c5f8a;--st-progress: #f0ad4e;--st-cleared: #28a745;--st-warning: #e8850c;--st-rejected: #dc3545;--st-neutral: #3d7ab5}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:20px 0}@media (max-width: 1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 720px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi-card{position:relative;background:var(--white);border-radius:10px;padding:16px 18px 16px 20px;box-shadow:0 1px 3px #1018281a;text-align:left;overflow:hidden}.kpi-highlight{border:2px solid var(--danger)}.kpi-label{font-size:12.5px;color:var(--gray-600);margin-bottom:6px;font-weight:600;letter-spacing:.2px}.kpi-count{font-size:30px;font-weight:700;color:var(--primary-dark);line-height:1.05;font-variant-numeric:tabular-nums}.kpi-value{font-size:13px;color:var(--gray-600);margin-top:6px;font-variant-numeric:tabular-nums}.kpi-action{font-size:11px;color:var(--danger);margin-top:6px;font-weight:600}.kpi-card.kpi-status{border-left:5px solid var(--kpi-color, var(--st-total));background:linear-gradient(180deg,var(--kpi-tint, #eef4fa) 0%,#ffffff 78%);transition:transform .14s ease,box-shadow .14s ease}.kpi-card.kpi-status:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10182824}.kpi-card.kpi-status .kpi-count{color:var(--kpi-color, var(--primary-dark))}.kpi-icon{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;line-height:1;color:var(--kpi-color, var(--st-total));background:#ffffffbf;box-shadow:inset 0 0 0 1px var(--kpi-ring, rgba(0,0,0,.06))}.kpi-share{margin-top:10px;height:5px;border-radius:999px;background:#10182814;overflow:hidden}.kpi-share-fill{height:100%;border-radius:999px;background:var(--kpi-color, var(--st-total));transition:width .3s ease}.kpi-share-label{font-size:11px;color:var(--gray-600);margin-top:4px;font-variant-numeric:tabular-nums}.kpi-st-total{--kpi-color: var(--st-total);--kpi-tint: #eef4fa;--kpi-ring: rgba(44,95,138,.2)}.kpi-st-progress{--kpi-color: var(--st-progress);--kpi-tint: #fef6e7;--kpi-ring: rgba(240,173,78,.28)}.kpi-st-cleared{--kpi-color: var(--st-cleared);--kpi-tint: #eaf7ee;--kpi-ring: rgba(40,167,69,.24)}.kpi-st-warning{--kpi-color: var(--st-warning);--kpi-tint: #fdf0e3;--kpi-ring: rgba(232,133,12,.26)}.kpi-st-rejected{--kpi-color: var(--st-rejected);--kpi-tint: #fdecee;--kpi-ring: rgba(220,53,69,.26)}.kpi-st-neutral{--kpi-color: var(--st-neutral);--kpi-tint: #eef4fa;--kpi-ring: rgba(61,122,181,.24)}.chart-section,.table-section{background:var(--white);border-radius:8px;padding:20px;margin:20px 0;box-shadow:0 1px 3px #0000001a}.chart-section h3,.table-section h3{margin-bottom:16px;color:var(--primary-dark)}.seller-summary-row{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap}.seller-table-col,.summary-table-col{flex:1 1 340px;min-width:0}.status-donut-col{flex:0 0 380px;max-width:400px}.status-donut-col h3{margin-bottom:8px}.seller-table-col .data-table,.summary-table-col .data-table{table-layout:fixed;width:100%}.seller-table-col .data-table th:first-child,.seller-table-col .data-table td:first-child,.summary-table-col .data-table th:first-child,.summary-table-col .data-table td:first-child{width:190px}.seller-table-col .data-table th:not(:first-child),.seller-table-col .data-table td:not(:first-child),.summary-table-col .data-table th:not(:first-child),.summary-table-col .data-table td:not(:first-child){width:66px;text-align:right}.seller-table-col .data-table td:not(:first-child),.summary-table-col .data-table td:not(:first-child){white-space:nowrap;font-variant-numeric:tabular-nums}.seller-table-col .data-table th:not(:first-child),.summary-table-col .data-table th:not(:first-child){white-space:normal;font-size:11px;line-height:1.25;vertical-align:bottom;padding:8px}.seller-table-col .data-table th:last-child,.seller-table-col .data-table td:last-child,.summary-table-col .data-table th:last-child,.summary-table-col .data-table td:last-child{width:96px}.seller-table-col .data-table td.party-cell,.summary-table-col .data-table td.party-cell{max-width:0}.status-donut{display:flex;flex-direction:column;align-items:center}.donut-wrap{position:relative;width:100%}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}.donut-pct{font-size:30px;font-weight:700;color:var(--st-cleared);line-height:1}.donut-pct-label{font-size:11px;color:var(--gray-600);text-transform:uppercase;letter-spacing:.6px;margin-top:2px}.donut-legend{list-style:none;margin:10px 0 0;padding:0;width:100%;font-size:12.5px}.donut-legend li{display:flex;align-items:center;gap:8px;padding:3px 0}.donut-swatch{width:11px;height:11px;border-radius:3px;flex:0 0 auto}.donut-legend-name{flex:1 1 auto;color:var(--gray-700, #374151)}.donut-legend-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--primary-dark)}.donut-legend-total{margin-top:6px;padding-top:6px;border-top:1px solid var(--gray-200);font-weight:600}.donut-legend-total .donut-legend-name{color:var(--primary-dark)}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.back-link{color:var(--primary);text-decoration:none;font-size:14px}.detail-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin:20px 0}.detail-section{background:var(--white);border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.detail-section h3{margin-bottom:12px;color:var(--primary-dark);font-size:14px}.detail-section dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px}.detail-section dt{font-weight:600;font-size:12px;color:var(--gray-600)}.detail-section dd{font-size:13px}.uuid{font-family:monospace;font-size:11px;word-break:break-all}.totals-section{max-width:400px;margin:20px 0 20px auto}.total-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid var(--gray-200)}.total-payable{font-weight:700;font-size:16px;border-bottom:2px solid var(--primary)}.status-actions{margin-top:24px;display:flex;gap:12px}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--gray-100)}.login-card{background:var(--white);padding:48px;border-radius:12px;text-align:center;box-shadow:0 4px 12px #0000001a;max-width:400px}.login-card h1{color:var(--primary-dark);margin-bottom:16px}.login-card p{color:var(--gray-600);margin-bottom:24px}.loading{text-align:center;padding:48px;color:var(--gray-600);font-size:16px}.period-label{color:var(--gray-600);font-size:13px;margin-bottom:8px}.actions{margin-top:20px}@media (max-width: 900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column}}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 11px 3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.5;letter-spacing:.2px;border:1px solid transparent;box-shadow:0 1px 2px #1018280f;transition:transform .12s ease,box-shadow .12s ease}.status-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px #ffffffa6;flex:0 0 auto}.status-badge:hover{transform:translateY(-1px);box-shadow:0 2px 6px #1018281f}.status-received{background:linear-gradient(180deg,#fdeff0,#fce1e3);color:#b02a37;border-color:#f4c9cd}.status-reviewed{background:linear-gradient(180deg,#fff8e6,#fdf1cf);color:#8a6d00;border-color:#f0e0a6}.status-entered{background:linear-gradient(180deg,#ecf8ee,#ddf1e1);color:#1e6b2f;border-color:#c3e6ca}.status-ecm{background:linear-gradient(180deg,#eef4fb,#e0ebf7);color:#1f4e79;border-color:#c7dbf0}.status-inprogress{background:linear-gradient(180deg,#fff6e8,#fdecd0);color:#9a6a12;border-color:#f2d9ab}.status-cleared{background:linear-gradient(180deg,#ecf8ee,#ddf1e1);color:#1e6b2f;border-color:#c3e6ca}.status-warning{background:linear-gradient(180deg,#fdf1e3,#fbe4cb);color:#a55a06;border-color:#f2d2ac}.status-rejected{background:linear-gradient(180deg,#fdeff0,#fce1e3);color:#b02a37;border-color:#f4c9cd}.nav-group{display:inline-flex;align-items:center;gap:8px;margin-right:20px;padding-right:20px;border-right:1px solid rgba(255,255,255,.25)}.nav-group:last-child{border-right:none;margin-right:0;padding-right:0}.lifecycle-timeline{list-style:none;margin:8px 0;padding:0;border-left:2px solid #d8dde3}.timeline-item{position:relative;padding:6px 0 10px 18px}.timeline-dot{position:absolute;left:-7px;top:10px;width:10px;height:10px;border-radius:50%;background:#2c5f8a}.timeline-header{display:flex;gap:12px;align-items:baseline}.timeline-event{font-weight:600}.timeline-time{color:#6b7280;font-size:12px}.timeline-transition{color:#374151;font-size:13px;margin-top:2px}.rejection-panel{margin-top:20px}.rejection-panel .row-error td{background:#fdf1f1}.rejection-panel .row-warning td{background:#fdf8e6}.rejection-panel .xpath{font-family:monospace;font-size:12px;color:#4b5563}.muted{color:#6b7280;font-style:italic}.no-access{padding:40px;text-align:center;color:#4b5563}.error-summary dd{color:#a12b2b}
