:root{--mh-success-text:#2e7d12}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--mh-surface-page);font-family:var(--mh-font-ui);color:var(--mh-text-body);font-size:var(--mh-body-size);-webkit-font-smoothing:antialiased}button{font-family:inherit}.tnum{font-variant-numeric:tabular-nums}a{color:var(--mh-primary);text-decoration:none}a:hover{color:var(--mh-teal-700)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mh-teal-500);outline-offset:1px}::selection{background:var(--mh-teal-100,#c9f0f2)}.app-scroll::-webkit-scrollbar{width:10px;height:10px}.app-scroll::-webkit-scrollbar-thumb{background:var(--mh-gray-300);border-radius:8px}.app-scroll::-webkit-scrollbar-thumb:hover{background:var(--mh-gray-400)}.app-scroll::-webkit-scrollbar-track{background:0 0}.layout>div>header,.app-header{min-height:var(--mh-header-h);flex-wrap:wrap;height:auto!important}.cust-row{cursor:pointer}.cust-row:hover>td{background:var(--mh-teal-50)}.navitem{transition:background var(--mh-duration) var(--mh-ease)}.navitem:hover{background:#ffffff14!important}.lnk{cursor:pointer}.lnk:hover{text-decoration:underline}.card-hover{transition:var(--mh-transition)}.card-hover:hover{box-shadow:var(--mh-shadow-raised);transform:translateY(-1px)}.card-hover:focus-visible{outline:2px solid var(--mh-blue);outline-offset:2px}[role=button]:focus-visible,.lnk:focus-visible{outline:2px solid var(--mh-blue);outline-offset:2px;border-radius:var(--mh-radius-sm)}.table-scroll{max-height:calc(100vh - 260px);overflow:auto}.mh-table thead th{z-index:5;background:var(--mh-gray-50);position:sticky;top:0}.mh-table th{white-space:nowrap}.table-scroll-x{overflow-x:auto}.chip{transition:var(--mh-transition)}.chip:hover{border-color:var(--mh-primary);color:var(--mh-primary)}.qbtn{transition:var(--mh-transition)}.qbtn:hover:not(:disabled){border-color:var(--mh-primary);color:var(--mh-primary);background:var(--mh-teal-50)}.layout{width:100%;min-height:100vh;display:flex}.content{flex:1;padding:24px 28px 60px;overflow-y:auto}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--mh-gray-150) 25%, var(--mh-gray-100) 37%, var(--mh-gray-150) 63%);border-radius:var(--mh-radius-sm);background-size:800px 100%;animation:1.3s linear infinite shimmer}.modal-overlay{z-index:100;animation:overlayIn var(--mh-duration) var(--mh-ease);background:#14181c6b;justify-content:center;align-items:flex-start;padding:56px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-card{border-radius:var(--mh-radius-lg);box-shadow:var(--mh-shadow-modal);width:100%;animation:modalIn var(--mh-duration) var(--mh-ease-out);background:#fff}#toast-root{z-index:200;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:22px;right:22px}.field-error{color:var(--mh-error);margin-top:5px;font-size:12px}.req:after{content:" *";color:var(--mh-error)}.mh-login-actions>button{width:100%}@media (width<=1180px){.stat-grid{grid-template-columns:repeat(2,1fr)!important}}@media (width<=720px){.content{padding:16px 12px 48px}.stat-grid{grid-template-columns:1fr!important}}.rf-page{box-sizing:border-box;width:100%;max-width:1260px;margin:0 auto;padding:28px}.rf-page *,.rf-workspace *{box-sizing:border-box}.rf-heading{margin-bottom:22px}.rf-heading h2{color:var(--mh-text-strong);letter-spacing:-.3px;margin:8px 0;font-size:24px}.rf-heading p,.rf-section-title p{color:var(--mh-text-muted);margin:6px 0 0;font-size:14px;line-height:1.7}.rf-eyebrow{color:var(--mh-primary);letter-spacing:1px;font-size:12px;font-weight:600}.rf-workspace{flex-direction:column;gap:18px;min-width:0;display:flex}.rf-panel{background:var(--mh-surface-card,#fff);border:1px solid var(--mh-gray-200);border-radius:var(--mh-radius-lg,12px);min-width:0;padding:22px}.rf-page>.rf-panel{margin-bottom:20px}.rf-panel h3{color:var(--mh-text-strong);margin:0;font-size:16px}.rf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.rf-grid>*{min-width:0}.rf-customer-grid{grid-template-columns:minmax(180px,1fr) minmax(230px,2fr)}.rf-input{border:1px solid var(--mh-gray-250);border-radius:var(--mh-radius-md);width:100%;height:40px;font:inherit;color:var(--mh-text-strong);background:#fff;min-width:0;padding:0 12px;font-size:14px}.rf-input:disabled{background:var(--mh-gray-100);cursor:not-allowed}.rf-page input:focus-visible,.rf-workspace input:focus-visible,.rf-page select:focus-visible,.rf-workspace select:focus-visible{outline:2px solid var(--mh-primary);outline-offset:3px}.rf-context{color:var(--mh-text-muted);flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:13px;display:flex}.rf-context strong{color:var(--mh-text-strong);overflow-wrap:anywhere;font-size:16px}.rf-section-title{align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.rf-step{background:var(--mh-ink-900);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:inline-flex}.rf-upload-box{border:1px dashed var(--mh-gray-250);background:var(--mh-gray-50,#fafbfc);border-radius:8px;margin-top:18px;padding:18px}.rf-upload-box>label{margin-bottom:12px;font-size:13px;font-weight:500;display:block}.rf-upload-box input[type=file]{width:100%;max-width:100%;font:inherit;font-size:13px;display:block}.rf-upload-box input::file-selector-button{border:1px solid var(--mh-gray-250);font:inherit;cursor:pointer;background:#fff;border-radius:6px;margin-right:12px;padding:9px 12px}.rf-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rf-pagination{margin-top:14px}.rf-file-picked{color:var(--mh-text-muted);overflow-wrap:anywhere;min-width:0;font-size:13px}.rf-muted{color:var(--mh-text-muted);font-size:12.5px;line-height:1.65}.rf-notice{color:#244566;overflow-wrap:anywhere;background:#eff6ff;border:1px solid #c5ddf9;border-radius:8px;padding:12px 16px;font-size:13px;line-height:1.7}.rf-panel>.rf-notice{margin-bottom:16px}.rf-error{color:#9f2525;background:#fff3f2;border-color:#f3cbc6}.rf-success{color:#20664f;background:#edf8f5;border-color:#b8ded2}.rf-error-next-step{margin-top:4px}.rf-error-meta{color:#7c2020;flex-wrap:wrap;gap:6px 16px;margin-top:7px;font-size:12px;display:flex}.rf-error-meta code{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.rf-request-id{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.rf-request-id button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:1px solid;padding:0;font-size:12px}.rf-request-id button:focus-visible{outline:2px solid var(--mh-primary);outline-offset:2px}.rf-error-with-action{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.rf-error-with-action .rf-notice{flex:1;min-width:240px}.rf-empty{text-align:center;border:1px dashed var(--mh-gray-250);color:var(--mh-text-muted);border-radius:8px;padding:30px 16px;font-size:13px;line-height:1.7}.rf-empty strong{color:var(--mh-text-body);font-size:14px}.rf-library-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.rf-library-heading>:last-child{min-width:150px}.rf-sync-box{border:1px solid var(--mh-gray-200);background:var(--mh-gray-50,#fafbfc);border-radius:8px;margin-bottom:18px;padding:16px}.rf-sync-heading{margin-bottom:14px}.rf-sync-heading h4{color:var(--mh-text-strong);margin:0;font-size:14px}.rf-sync-grid{gap:14px}.rf-sync-box .rf-actions{margin-top:14px}.rf-count{background:var(--mh-gray-100);color:var(--mh-text-muted);border-radius:12px;margin-left:6px;padding:2px 8px;font-size:12px}.rf-source-list{flex-direction:column;display:flex}.rf-source{border-top:1px solid var(--mh-gray-150);align-items:center;gap:16px;padding:18px 0;display:flex}.rf-source-main{flex:1;min-width:0}.rf-source-tags{color:var(--mh-text-muted);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;font-size:12px;display:flex}.rf-year-tag{color:var(--mh-text-strong);font-weight:600}.rf-badge{background:var(--mh-gray-100);color:var(--mh-text-body);border-radius:4px;padding:2px 8px;font-size:11px}.rf-valid{color:#20664f;background:#edf8f5}.rf-invalid{color:#9f2525;background:#fff0ed}.rf-filename{color:var(--mh-text-strong);overflow-wrap:anywhere;font-size:14px;font-weight:500;display:block}.rf-meta{color:var(--mh-text-muted);overflow-wrap:anywhere;margin-top:5px;font-size:11px;line-height:1.6}.rf-validation-error{color:#9f2525;overflow-wrap:anywhere;margin:8px 0 0;font-size:12.5px;line-height:1.6}.rf-source-main p{margin-bottom:0}.rf-validation-report{color:var(--mh-text-body);margin-top:10px;font-size:12px}.rf-validation-report summary{color:var(--mh-primary);cursor:pointer;display:inline-block}.rf-validation-report summary:focus-visible{outline:2px solid var(--mh-primary);outline-offset:2px}.rf-report-body{background:var(--mh-gray-50,#fafbfc);border:1px solid var(--mh-gray-150);border-radius:6px;margin-top:9px;padding:10px}.rf-report-row{flex-wrap:wrap;gap:6px 12px;display:flex}.rf-report-row code,.rf-report-block code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.rf-report-block{flex-direction:column;gap:4px;margin-top:9px;display:flex}.rf-report-block:first-of-type{margin-top:0}.rf-report-block ul{margin:0;padding-left:18px}.rf-report-block li{overflow-wrap:anywhere}.rf-source-actions{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.rf-run-panel{border-top:3px solid var(--mh-primary)}.rf-run-panel>.rf-grid{margin-bottom:18px}.rf-run-summary{border-top:1px solid var(--mh-gray-150);color:var(--mh-text-body);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;padding-top:18px;font-size:14px;font-weight:500;display:flex}.rf-output-file{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:14px;display:flex}.rf-output-file>span{overflow-wrap:anywhere;flex:1;min-width:0}.rf-break{overflow-wrap:anywhere}@media (width<=1100px){.rf-source{flex-direction:column;align-items:stretch}}@media (width<=720px){.rf-page{padding:16px}.rf-heading h2{font-size:20px}.rf-panel{padding:16px}.rf-grid{grid-template-columns:minmax(0,1fr)}.rf-upload-box{padding:12px}.rf-source-actions{gap:8px}.rf-source-actions .mh-button{height:40px!important}}
