*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#18181b;background:#f4f4f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}.app{max-width:1400px;margin:0 auto;padding:0 32px 60px}header{border-bottom:1px solid #e4e4e7;justify-content:space-between;align-items:center;margin-bottom:32px;padding:20px 0 18px;display:flex}header h1{color:#18181b;letter-spacing:-.2px;font-size:16px;font-weight:600}nav{gap:2px;display:flex}nav button{cursor:pointer;color:#71717a;background:0 0;border:none;border-radius:6px;padding:7px 14px;font-size:14px;font-weight:500}nav button:hover{color:#18181b;background:#f4f4f5}nav button.active{color:#fff;background:#18181b}.card{background:#fff;border:1px solid #e4e4e7;border-radius:12px;margin-bottom:16px;padding:24px}.card h2{color:#18181b;margin-bottom:16px;font-size:15px;font-weight:600}.card-title-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.upload-zone{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;border:2px dashed #d4d4d8;border-radius:10px;padding:56px 32px;transition:all .15s}.upload-zone:hover,.upload-zone.over{background:#fafafa;border-color:#18181b}.upload-zone p{color:#71717a;font-size:14px}.upload-zone .hint{color:#a1a1aa;margin-top:6px;font-size:13px}.upload-preview{color:#3f3f46;background:#f4f4f5;border-radius:8px;margin-top:20px;padding:16px;font-size:14px}.upload-preview strong{color:#18181b}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:#71717a;border-bottom:1px solid #e4e4e7;padding:8px 12px;font-size:12px;font-weight:600}td{text-align:center;border-bottom:1px solid #f4f4f5;padding:10px 12px}tr:last-child td{border-bottom:none}td.text-right{text-align:center;font-variant-numeric:tabular-nums}td.label{color:#71717a;text-align:center;font-size:13px}tr.total td{background:#fafafa;border-top:1px solid #e4e4e7;border-bottom:none;font-weight:600}tr.highlight td{font-size:15px;font-weight:700}.fin-table th:not(:first-child),.fin-table td:not(:first-child){text-align:right}.btn{cursor:pointer;border:none;border-radius:7px;padding:9px 18px;font-size:14px;font-weight:500;line-height:1;display:inline-block}.btn-primary{color:#fff;background:#18181b}.btn-primary:hover{background:#3f3f46}.btn-primary:disabled{cursor:not-allowed;background:#a1a1aa}.btn-ghost{color:#3f3f46;background:0 0;border:1px solid #e4e4e7}.btn-ghost:hover{background:#f4f4f5}.btn-danger{color:#dc2626;background:0 0;border:1px solid #fca5a5;font-size:13px}.btn-danger:hover{background:#fef2f2}.status-ok{color:#16a34a;font-weight:600}.status-fail{color:#dc2626;font-weight:600}.issues-list{color:#dc2626;margin-top:8px;padding-left:16px;font-size:13px}.issues-list li{margin-top:4px}.error-msg{color:#dc2626;margin-top:10px;font-size:13px}select{color:#18181b;cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:6px 10px;font-size:14px}.page-title{letter-spacing:-.4px;margin-bottom:24px;font-size:22px;font-weight:700}.mes-label{color:#71717a;font-size:13px}.actions-row{gap:8px;margin-top:20px;display:flex}.empty-state{text-align:center;color:#71717a;padding:48px;font-size:14px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#fafafa}.col-grid th,.col-grid td{border-right:1px solid #e4e4e7}.col-grid th:last-child,.col-grid td:last-child{border-right:none}.col-grid td{border-bottom:1px solid #e4e4e7}td.bold{font-weight:700}
