:root{color:#17201a;background:#f5f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.45;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{border:1px solid #c8d3cb;background:#fff;color:#17201a;min-height:38px;padding:0 12px;border-radius:6px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}button:hover:not(:disabled){border-color:#5d7f6a;background:#f1f7f3}button:disabled{color:#8b948f;cursor:not-allowed;background:#f1f3f1}.app-shell{min-height:100vh}.topbar{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 32px;border-bottom:1px solid #d7ded8;background:#fff}.brand-lockup,.header-actions,.signal-scope>div,.workflow-heading,.step-title,.output-intro,.output-card{display:flex;align-items:center}.brand-lockup{gap:14px}.brand-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#173f2a,#23814a);box-shadow:0 7px 18px #1f6b3b32}.eyebrow{color:#457259;font-size:10px;line-height:1;font-weight:800;letter-spacing:.12em}.header-actions{gap:16px}.bank-link{min-height:40px;padding:0 13px;border:1px solid #b9d3c1;border-radius:8px;display:inline-flex;align-items:center;gap:7px;color:#195f35;background:#f1faf4;font-size:13px;font-weight:700;text-decoration:none}.bank-link:hover{background:#e4f5e9}.topbar h1{margin:0;font-size:24px;line-height:1.2;letter-spacing:0}.topbar p{margin:6px 0 0;color:#53635a;font-size:14px}.date-control{display:grid;gap:6px;color:#46534b;font-size:13px}.date-control input{min-height:38px;border:1px solid #c8d3cb;border-radius:6px;padding:0 10px;background:#fff;color:#17201a}.status-strip{display:flex;flex-wrap:wrap;gap:10px;padding:12px 28px;border-bottom:1px solid #d7ded8;background:#edf2ee}.signal-scope{min-height:50px;padding:9px 32px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#36483c;background:#173f2a}.signal-scope>div{gap:7px;color:#fff;margin-right:5px}.signal-scope span{padding:6px 10px;border-radius:999px;color:#e7f4ea;background:#ffffff12;border:1px solid #ffffff26;font-size:12px}.signal-scope span b{color:#fff;margin-right:3px}.signal-scope small{margin-left:auto;color:#c8dfcf;font-size:11px}.workspace-nav{padding:0 32px;display:flex;gap:4px;border-bottom:1px solid #d7ded8;background:#fff}.workspace-nav button{min-height:48px;padding:0 16px;border:0;border-bottom:3px solid transparent;border-radius:0;color:#607067;background:transparent;font-size:13px;font-weight:700}.workspace-nav button.active{color:#1f6b3b;border-bottom-color:#1f6b3b}.workflow-card{margin:18px;border:1px solid #d5ded7;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 6px 24px #203a2810}.workflow-heading{justify-content:space-between;gap:18px;padding:17px 20px;border-bottom:1px solid #e1e7e2}.workflow-heading h2,.output-intro h2{margin:5px 0 0;font-size:18px}.workflow-progress{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.workflow-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;padding:18px;gap:9px;background:#f8faf8}.workflow-step{min-width:0;min-height:205px;padding:14px;border:1px solid #d7e0d9;border-radius:10px;background:#fff}.step-title{gap:7px}.step-title h3{margin:0;font-size:14px}.step-number{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#1f6b3b;font-size:11px;font-weight:800}.step-icon{color:#37734d;display:inline-flex}.workflow-step p{min-height:54px;margin:10px 0;color:#5c6961;font-size:11.5px}.workflow-step .upload-control{padding:9px}.step-arrow{color:#91a197}.workflow-card .action-row{padding:0 18px 18px}.action-help{color:#657169;font-size:12px}.status-pill{min-height:30px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border-radius:999px;border:1px solid #cbd6ce;color:#4f5c54;background:#fff;font-size:13px}.status-pill.ready{color:#1f6b3b;border-color:#b9dbc5;background:#effaf2}.status-pill.error{color:#9d2d2d;border-color:#efc1c1;background:#fff2f1}.status-pill.loading svg,.busy svg{animation:spin .9s linear infinite}.layout{display:block;min-height:calc(100vh - 300px)}.upload-band{padding:18px;border-bottom:1px solid #d7ded8;background:#fff;display:grid;gap:12px}.upload-grid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:12px}.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.workspace{padding:18px;display:grid;gap:16px;align-content:start}.upload-control{border:1px solid #ced8d0;border-radius:8px;padding:12px;display:grid;gap:8px;background:#fbfcfb;cursor:pointer}.upload-control.has-file{border-color:#9ed6ad;background:#effaf2}.upload-control.has-file span{color:#1f6b3b}.upload-control.has-file small{color:#1f6b3b;font-weight:650}.upload-control span{display:inline-flex;align-items:center;gap:8px;font-weight:650;font-size:14px}.upload-control input{width:100%;color:#4d5b52;font-size:13px}.upload-control small{color:#627069;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-control.is-disabled{opacity:.58;cursor:not-allowed}.primary-action{justify-content:center;background:#1f6b3b;border-color:#1f6b3b;color:#fff}.primary-action:hover:not(:disabled){background:#185932;border-color:#185932}.busy,.error-box{border-radius:6px;padding:10px;font-size:13px}.busy{display:flex;align-items:center;gap:8px;background:#edf5ff;color:#1d4f7a}.error-box{background:#fff2f1;color:#9d2d2d}.metrics-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.result-workspace,.output-workspace{padding:22px 28px}.section-heading>div h2{margin:5px 0 0}.output-intro{gap:13px;padding:18px;border:1px solid #d7ded8;border-radius:10px;background:linear-gradient(120deg,#f7fbf8,#edf6f0)}.output-intro p{margin:6px 0 0;color:#5b6960;font-size:13px}.output-icon{width:50px;height:50px;border-radius:12px;display:grid;place-items:center;color:#fff;background:#1f6b3b}.output-toolbar{padding:16px;border:1px solid #d7ded8;border-radius:10px;background:#fff}.output-registers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.output-card{min-height:82px;gap:12px;padding:15px;border:1px solid #d7ded8;border-radius:10px;color:#2b6b42;background:#fff}.output-card>div{flex:1}.output-card h3{margin:0 0 4px;color:#243329;font-size:14px}.output-card p{margin:0;color:#667269;font-size:12px}.output-ready{color:#77a485}.output-status{padding:12px;border:1px solid #d7ded8;border-radius:8px;background:#fff}.metric{min-height:58px;border:1px solid #d7ded8;border-radius:8px;background:#fff;padding:9px 10px;display:grid;align-content:space-between;gap:4px;min-width:0}.metric span{color:#53635a;font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric strong{font-size:18px;line-height:1;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.sheet-sync-status{color:#4d5c53;font-size:12px;line-height:1.35}.table-section,.summary-list{border:1px solid #d7ded8;border-radius:8px;background:#fff;overflow:hidden}.section-heading{min-height:46px;padding:11px 14px;border-bottom:1px solid #e2e8e3;display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{margin:0;font-size:15px;line-height:1.2}.section-heading span{color:#64716a;font-size:13px}.table-wrap{overflow:auto;max-height:520px}table{width:100%;min-width:1320px;table-layout:fixed;border-collapse:collapse;font-size:11.5px}th,td{border-bottom:1px solid #e2e8e3;padding:6px 8px;text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}th{position:sticky;top:0;z-index:1;background:#eef3ef;color:#35433b;font-weight:700}td{color:#26322b;white-space:nowrap}th:nth-child(1),td:nth-child(1),th:nth-child(14),td:nth-child(14),th:nth-child(15),td:nth-child(15),th:nth-child(16),td:nth-child(16){width:72px}th:nth-child(12),td:nth-child(12){width:58px}.report-row.waiting td{background:#fff}.report-row.noData td{background:#fff8d8}.report-row.complied td{background:#edf9f0}.report-row.violation td{background:#fff0ef}.report-row.noData:hover td{background:#fff2b5}.report-row.complied:hover td{background:#ddf2e4}.report-row.violation:hover td{background:#ffe0de}td select{min-height:28px;border:1px solid #c8d3cb;border-radius:5px;background:#fff}.empty-state,.empty-list{color:#64716a;text-align:center;padding:20px}.table-note{padding:9px 12px;border-top:1px solid #e2e8e3;color:#64716a;font-size:12px}.violation-section{border:1px solid #d7ded8;border-radius:8px;background:#fff;overflow:hidden}.violation-list{display:grid;gap:0}.violation-card{min-height:64px;padding:11px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid #edf0ed;background:#fff0ef}.violation-card:last-child{border-bottom:0}.violation-main{display:grid;gap:3px;min-width:0;font-size:13px}.violation-main strong,.violation-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.violation-main span{color:#5c3d39}.violation-actions{display:flex;flex-wrap:wrap;gap:8px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1100px){.upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}.workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.step-arrow{display:none}}@media(max-width:720px){.topbar{align-items:stretch;flex-direction:column;padding:16px}.header-actions{align-items:stretch;flex-direction:column}.signal-scope{padding:10px 16px}.signal-scope small{width:100%;margin-left:0}.workspace-nav{padding:0 8px;overflow-x:auto}.workspace-nav button{white-space:nowrap}.workflow-card{margin:10px}.workflow-heading{align-items:flex-start;flex-direction:column}.workflow-progress{justify-content:flex-start}.workflow-steps,.output-registers{grid-template-columns:1fr}.workflow-step{min-height:auto}.status-strip,.workspace{padding:12px}.upload-band{grid-template-columns:1fr;padding:12px}.upload-grid,.metrics-grid,.violation-card{grid-template-columns:1fr}}
