
:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#111827;background:#f5f6f8
}
*{box-sizing:border-box}
body{margin:0;overflow-x:hidden}
button,input,select{font:inherit}
button{cursor:pointer}
main{min-height:100vh}
.hidden{display:none!important}
.app-shell{max-width:100%;overflow:hidden}
.brand{font-weight:800;letter-spacing:.08em}
.brand span{font-weight:600;color:#6b7280}
.muted{color:#6b7280;margin:.25rem 0}
.message{min-height:1.25rem;color:#991b1b}
.login-card,.summary-card,.table-card,.modal{
  background:#fff;border:1px solid #e5e7eb;border-radius:14px;
  box-shadow:0 2px 10px rgba(0,0,0,.04)
}
.login-card{width:min(420px,calc(100% - 32px));margin:10vh auto;padding:28px}
.login-card h1{margin-bottom:.25rem}
label{display:block;font-size:.9rem;font-weight:650;margin-top:12px}
input,select{padding:10px 11px;border:1px solid #d1d5db;border-radius:8px;background:#fff}
.login-card input{width:100%;margin-top:5px}
button{border:0;border-radius:8px;padding:9px 12px;font-weight:700}
.primary{width:100%;margin-top:16px;background:#111827;color:#fff}
.secondary{background:#eef0f3;color:#111827}
.approve{background:#166534;color:#fff}
.reject{background:#991b1b;color:#fff}
button:disabled{opacity:.45;cursor:not-allowed}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:22px 24px}
.summary-card{margin:0 24px 14px;padding:15px}
.filters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(140px,1fr));gap:8px;margin-top:12px}
.filters input,.filters select{width:100%}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.badge{display:inline-block;background:#f3f4f6;border-radius:999px;padding:4px 9px;margin:3px;font-size:.85rem}
.table-card{margin:0 24px 24px;overflow:hidden}
.table-top-scroll{overflow-x:auto;overflow-y:hidden;height:16px;border-bottom:1px solid #e5e7eb}
.table-top-scroll>div{height:1px}
.table-scroll{overflow:auto;max-height:calc(100vh - 300px)}
table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}
th,td{padding:10px;border-bottom:1px solid #e5e7eb;border-right:1px solid #f1f5f9;text-align:left;vertical-align:top;background:#fff}
th{position:sticky;top:0;background:#f9fafb;z-index:4;white-space:nowrap}
.sortable{cursor:pointer}
.sortable:hover{text-decoration:underline}
.status{font-weight:800}
.test{display:inline-block;background:#fef3c7;border-radius:999px;padding:2px 6px;font-size:11px;margin-left:5px}
.missing{color:#991b1b;font-weight:700}
.signal-summary{max-width:330px;line-height:1.35}
.actions{display:flex;gap:6px;flex-wrap:wrap;min-width:235px}
.sticky-left{position:sticky;left:0;z-index:3;min-width:220px;max-width:220px}
.sticky-left-2{position:sticky;left:220px;z-index:3;min-width:170px;max-width:170px}
.sticky-left-3{position:sticky;left:390px;z-index:3;min-width:230px;max-width:230px}
.sticky-right{position:sticky;right:0;z-index:3;background:#fff}
thead .sticky-left,thead .sticky-left-2,thead .sticky-left-3,thead .sticky-right{z-index:6;background:#f9fafb}
.col-company{min-width:220px;max-width:220px}
.col-contact{min-width:170px;max-width:170px}
.col-email{min-width:230px;max-width:230px}
.col-state{min-width:100px}.col-city{min-width:120px}.col-priority{min-width:80px}
.col-role{min-width:180px}.col-signal{min-width:360px;max-width:360px}
.col-timezone{min-width:170px}.col-status{min-width:125px}.col-scheduled{min-width:165px}
.col-delivery{min-width:140px}.col-actions{min-width:235px}
.modal-backdrop{position:fixed;inset:0;background:rgba(17,24,39,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}
.modal{width:min(980px,100%);max-height:90vh;overflow:auto;padding:22px}
.modal-header{display:flex;justify-content:space-between;align-items:center;gap:20px}
pre{white-space:pre-wrap;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:15px;line-height:1.5;font-family:inherit}
.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.detail{background:#f9fafb;border-radius:8px;padding:10px}
.detail b{display:block;font-size:12px;color:#6b7280;margin-bottom:4px}
@media(max-width:900px){
  .filters{grid-template-columns:1fr 1fr}
  .details-grid{grid-template-columns:1fr}
  .table-scroll{max-height:calc(100vh - 360px)}
}
