body{color:#101828;background:#f7f8fb;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}.auth-page{background:#f2f4f8;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px 16px 12px;display:flex}.auth-card{background:#fff;border:1px solid #e4e8ef;border-radius:14px;width:360px;padding:24px;box-shadow:0 12px 24px #0f172a14}.auth-card h1{margin:0;font-size:1.4rem}.auth-subtitle{color:#667085;margin:8px 0 16px}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form label{color:#344054;font-size:.92rem}.auth-form input{border:1px solid #d0d5dd;border-radius:8px;padding:10px;font-size:.95rem}.auth-form button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;margin-top:8px;padding:10px;font-weight:600}.error-message{color:#b42318;margin:0;font-size:.88rem}.dashboard-page{background:#f7f8fb;flex-direction:column;min-height:100vh;padding:24px;display:flex}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.page-header h2{margin:0;font-size:1.8rem}.page-header p{color:#667085;margin-top:4px}.summary-stats{color:#667085;gap:16px;display:flex}.summary-stats strong{color:#1366d6;margin-right:4px}.actions-row{justify-content:flex-end;margin-bottom:16px;display:flex}.open-modal-btn{color:#fff;cursor:pointer;background:#175cd3;border:none;border-radius:8px;padding:10px 14px;font-weight:600}.modal-overlay{z-index:1000;background:#10182873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{width:min(760px,100%);margin-bottom:0}.modal-title-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-title-row h3{margin:0}.modal-close-btn{color:#667085;cursor:pointer;background:0 0;border:none;font-size:1.4rem}.new-loan-panel{background:#fff;border:1px solid #e4e8ef;border-radius:12px;margin-bottom:16px;padding:14px}.new-loan-panel h3{color:#344054;margin:0 0 12px}.new-loan-form{grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;display:grid}.new-loan-row{flex-direction:column;gap:6px;display:flex}.new-loan-row label{color:#475467;font-size:.85rem}.new-loan-row input{border:1px solid #d0d5dd;border-radius:8px;padding:9px}.new-loan-row textarea{resize:vertical;border:1px solid #d0d5dd;border-radius:8px;padding:9px;font-family:inherit}.full-width-row{grid-column:1/-1}.process-loan-btn{color:#fff;cursor:pointer;background:#175cd3;border:none;border-radius:8px;grid-column:1/-1;padding:10px 12px;font-weight:600}.process-loan-btn:disabled{opacity:.7;cursor:not-allowed}.submit-message{color:#475467;grid-column:1/-1;margin:0}.side-notifications{z-index:1200;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.side-notification{color:#fff;border-radius:10px;min-width:260px;max-width:360px;padding:12px 14px;font-size:.9rem;box-shadow:0 10px 24px #10182833}.side-notification-info{background:#175cd3}.side-notification-success{background:#027a48}.side-notification-error{background:#b42318}.board-grid{grid-template-columns:repeat(3,minmax(240px,1fr));gap:16px;display:grid}.board-column{background:#f8fafc;border:1px solid #e4e8ef;border-radius:12px;padding:12px}.board-column h3{color:#344054;letter-spacing:.5px;margin:0 0 12px;font-size:.9rem}.board-column h3 span{color:#98a2b3;margin-left:4px}.cards{flex-direction:column;gap:12px;display:flex}.task-card{background:#fff;border:1px solid #e4e8ef;border-radius:12px;padding:12px}.clickable-card{color:inherit;text-decoration:none;transition:transform .12s,box-shadow .12s;display:block}.clickable-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px #10182814}.task-card p{color:#475467;margin:4px 0}.task-card small{color:#98a2b3}.card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.status-pill{border:1px solid #0000;border-radius:999px;padding:4px 8px;font-size:.75rem}.doc-tags{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.doc-tags span{border:1px solid #0000;border-radius:999px;padding:3px 8px;font-size:.75rem}.pdf{color:#1d4ed8;background:#eff4ff;border-color:#c7d7fe}.ssr{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}.xml{color:#047857;background:#ecfdf3;border-color:#abefc6}.missing{color:#b42318;background:#fef3f2;border-color:#fecdca}.queued{color:#344054;background:#f2f4f7;border-color:#d0d5dd}.warning{color:#b54708;background:#fffaeb;border-color:#fedf89}.progress{color:#175cd3;background:#eff8ff;border-color:#b2ddff}.uploading{color:#7a5af8;background:#f9f5ff;border-color:#d9d6fe}.success{color:#027a48;background:#ecfdf3;border-color:#abefc6}.error{color:#b42318;background:#fef3f2;border-color:#fecdca}.status-error{border-color:#fecdca}.progress-wrapper{margin:8px 0}.progress-bar{background:#e4e7ec;border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-bar div{background:#2f6fd7;height:100%}.loading{color:#667085;margin-top:0}.app-footer{text-align:center;color:#667085;margin-top:auto;padding-top:20px;font-size:.9rem}.detail-page{max-width:1200px;margin:0 auto}.back-button{color:#475467;cursor:pointer;background:0 0;border:none;margin-bottom:16px;padding:0;font-size:1rem}.detail-top{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.detail-loan-id{color:#101828;margin:0;font-size:2.3rem}.detail-owner{color:#667085;margin:4px 0 12px}.submitted-block{color:#667085;flex-direction:column;align-items:flex-end;display:flex}.submitted-block strong{color:#344054;margin-top:4px}.detail-section{margin-top:18px}.detail-section h4{color:#98a2b3;letter-spacing:2px;margin:0 0 10px;font-size:.8rem}.source-list{background:#fff;border:1px solid #e4e8ef;border-radius:12px;overflow:hidden}.source-row{border-bottom:1px solid #f0f2f6;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.source-row:last-child{border-bottom:none}.source-left{align-items:center;gap:12px;display:flex}.source-left p{color:#98a2b3;margin:2px 0 0}.file-icon{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:.75rem;font-weight:700;display:inline-flex}.output-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;display:grid}.output-card{background:#fff;border:1px solid #e4e8ef;border-radius:12px;padding:16px}.output-card-qc-full{grid-column:1/-1}.output-card h5{margin:0 0 6px;font-size:1.1rem}.output-card p{color:#667085;margin:2px 0}.output-card a{color:#175cd3;margin-top:10px;text-decoration:none;display:inline-block}.output-details{margin-top:10px}.output-details summary{cursor:pointer;color:#175cd3;font-weight:600}.download-pdf-btn{color:#fff;cursor:pointer;background:#175cd3;border:none;border-radius:8px;margin-top:10px;padding:8px 12px;font-size:.85rem;font-weight:600}.output-sections{flex-direction:column;gap:10px;margin-top:10px;display:flex}.output-section-block{background:#fafbfc;border:1px solid #e4e8ef;border-radius:8px;padding:10px}.output-section-block h6{color:#344054;margin:0 0 6px;font-size:.85rem}.output-section-block p{color:#475467;margin:0}.output-section-block ul{color:#475467;margin:0;padding-left:18px}.output-html-preview{background:#fff;border:1px solid #d0d5dd;border-radius:8px;margin-top:10px;overflow:hidden}.output-html-preview iframe{border:none;width:100%;min-height:50vh}.pipeline-box{background:#fff;border:1px solid #e4e8ef;border-radius:12px;overflow:hidden}.pipeline-row{border-bottom:1px solid #f0f2f6;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.pipeline-row:last-child{border-bottom:none}.step-name{align-items:center;gap:10px;display:flex}.step-check{color:#027a48;background:#ecfdf3;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-weight:700;display:inline-flex}.step-time{color:#98a2b3}@media (width<=960px){.board-grid{grid-template-columns:1fr}.page-header{flex-direction:column;gap:12px}.actions-row{justify-content:flex-start}.new-loan-form{grid-template-columns:1fr}.detail-top{flex-direction:column;gap:10px}.submitted-block{align-items:flex-start}.output-grid{grid-template-columns:1fr}}
