:root{color:#172033;background:#f7f9fc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{align-items:center;background:#0f766e;border:0;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;min-height:42px;padding:0 16px}button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;opacity:.65}.button-link{align-items:center;background:#0f766e;border-radius:6px;color:#fff;display:inline-flex;gap:8px;min-height:42px;padding:0 16px;text-decoration:none}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid #dce3ee;display:flex;flex-direction:column;gap:24px;padding:24px 16px}.brand{color:#0f3d4a;font-size:20px;font-weight:800;padding:0 8px}.sidebar nav{display:grid;gap:6px}.sidebar a,.ghost-button{align-items:center;border-radius:6px;color:#334155;display:flex;gap:10px;min-height:40px;padding:0 10px;text-decoration:none}.sidebar a.active{background:#e6f4f1;color:#0f766e;font-weight:700}.ghost-button{background:transparent;color:#64748b;margin-top:auto}.content{padding:32px}.page-head{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.page-subtitle{color:#64748b;margin:6px 0 0}h1,h2{margin:0}h1{font-size:28px}h2{font-size:18px}.panel{background:#fff;border:1px solid #dce3ee;border-radius:8px;overflow-x:auto;padding:20px}.toolbar{align-items:center;display:flex;gap:12px;margin-bottom:16px}.toolbar .search-box{max-width:520px;width:100%}table{border-collapse:collapse;min-width:820px;width:100%}th,td{border-bottom:1px solid #edf1f7;padding:12px 10px;text-align:left}th{color:#64748b;font-size:13px;font-weight:700}.status{border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;padding:4px 10px;text-transform:capitalize}.status.completed{background:#dcfce7;color:#166534}.status.failed,.status.partial{background:#fee2e2;color:#991b1b}.status.processing,.status.pending{background:#fef3c7;color:#92400e}.status.awaiting_confirmation{background:#e0e7ff;color:#3730a3}.status.cancelled{background:#e2e8f0;color:#475569}.upload-panel{display:grid;gap:18px;margin-bottom:16px;max-width:820px}.loading-panel{align-items:center;display:flex;gap:14px;max-width:820px}.loading-panel p{margin:4px 0 0}.spin{animation:spin .9s linear infinite}label{color:#475569;display:grid;gap:8px;font-size:14px;font-weight:700}input,textarea,select{border:1px solid #cbd5e1;border-radius:6px;color:#172033;min-height:40px;padding:10px 12px}select{background:#fff;min-height:40px;padding:8px 12px}textarea{min-height:180px;resize:vertical}.summary-grid,.detail-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:16px}.summary-grid div,.detail-grid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px}.summary-grid span,.detail-grid span{color:#64748b;display:block;font-size:12px;text-transform:uppercase}.summary-grid strong,.detail-grid strong{display:block;margin-top:6px}.error{color:#b91c1c;font-weight:700}.muted{color:#64748b}pre{background:#0f172a;border-radius:8px;color:#e2e8f0;overflow:auto;padding:16px;white-space:pre-wrap}.login-page,.public-page{min-height:100vh;padding:32px}.login-page{align-items:center;display:grid;justify-content:center}.login-panel{background:#fff;border:1px solid #dce3ee;border-radius:8px;display:grid;gap:16px;padding:28px;width:min(420px,calc(100vw - 40px))}.search-band{align-items:end;display:grid;gap:24px;grid-template-columns:1fr minmax(280px,520px);margin:0 auto 24px;max-width:1120px}.search-band p{color:#64748b;margin:8px 0 0}.search-box{align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:8px;display:flex;gap:10px;padding:0 12px}.search-box input{border:0;flex:1;outline:none}.result-grid{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;max-width:1120px}.row{border-bottom:1px solid #edf1f7;display:flex;justify-content:space-between;gap:16px;padding:12px 0}.row span{color:#64748b}.preview-panel{display:grid;gap:18px;margin:20px 0 28px}.mapping-list{display:grid;gap:14px}.mapping-row{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(160px,1fr) minmax(260px,2fr) auto}.remove-mapping-button{background:#fff;border:1px solid #fecaca;color:#b91c1c}.excluded-records{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;display:grid;gap:8px;padding:12px}.excluded-records span{align-items:center;display:flex;justify-content:space-between}.excluded-records .ghost-button{color:#9a3412;margin:0;min-height:30px}.searchable-select{position:relative}.searchable-select input{width:100%}.searchable-select-menu{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 12px 28px #0f172a24;left:0;max-height:260px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 4px);z-index:20}.searchable-select-menu button{background:transparent;color:#172033;display:flex;justify-content:space-between;min-height:38px;padding:8px 10px;text-align:left;width:100%}.searchable-select-menu button:hover,.searchable-select-menu button.selected{background:#e6f4f1;color:#0f766e}.searchable-select-menu small{color:#64748b;font-weight:700}.searchable-select-menu p{margin:8px}.action-row{display:flex;gap:12px}.danger-button{background:#b91c1c}.success-note{background:#dcfce7;border-radius:8px;color:#166534;font-weight:700;padding:12px 14px}.records-head{margin-top:30px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #dce3ee;border-right:0}.search-band,.result-grid{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.button-link{width:100%}.mapping-row{grid-template-columns:1fr}}
