:root{font-family:Inter,system-ui,-apple-system,sans-serif;color-scheme:light;color:#1a1a1a;background-color:#f5f7fa}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{font-size:16px;line-height:1.5}a{color:#1565c0}button{font-family:inherit;cursor:pointer}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e3f2fd,#f5f7fa 60%)}.auth-card{width:100%;max-width:400px;background:#fff;border-radius:16px;padding:32px;box-shadow:0 10px 40px #1565c01f}.auth-card h1{margin:0 0 4px;font-size:24px;font-weight:700;color:#1565c0}.auth-card .subtitle{margin:0 0 24px;color:#5e6b7a;font-size:14px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:13px;font-weight:600;color:#2c3e50}.field input{border:1px solid #d1d8e0;border-radius:8px;padding:12px 14px;font-size:15px;font-family:inherit;transition:border-color .15s ease}.field input:focus{outline:none;border-color:#1565c0;box-shadow:0 0 0 3px #1565c026}.btn-primary{width:100%;border:none;background:#1565c0;color:#fff;font-weight:600;font-size:15px;padding:12px 16px;border-radius:8px;transition:background .15s ease}.btn-primary:hover:not(:disabled){background:#0d4ea8}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.error{background:#ffebee;color:#c62828;border:1px solid #ffcdd2;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:16px}.admin-shell{min-height:100vh;display:flex;flex-direction:row}.admin-body{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar{width:248px;flex-shrink:0;background:#0f172a;color:#cbd5e1;display:flex;flex-direction:column;transition:width .2s ease}.sidebar.is-collapsed{width:72px}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 14px;border-bottom:1px solid rgba(148,163,184,.15);min-height:64px}.sidebar-brand{display:flex;align-items:center;gap:10px;overflow:hidden}.sidebar-brand-mark{flex-shrink:0;width:36px;height:36px;border-radius:9px;background:#2563eb;color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center}.sidebar-brand-text{font-weight:700;font-size:15px;color:#f1f5f9;white-space:nowrap}.sidebar-toggle{flex-shrink:0;background:transparent;border:none;color:#94a3b8;padding:6px;border-radius:8px;display:grid;place-items:center}.sidebar-toggle:hover{background:#94a3b826;color:#f1f5f9}.sidebar.is-collapsed .sidebar-top{flex-direction:column;gap:12px}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 10px}.sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar-nav>ul>li{margin-bottom:4px}.sidebar-link{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:none;background:transparent;color:#cbd5e1;font-size:14px;font-weight:500;border-radius:9px;text-decoration:none;transition:background .15s ease,color .15s ease}.sidebar-link:hover{background:#94a3b81f;color:#f1f5f9}.sidebar-link.is-active{background:#2563eb;color:#fff}.sidebar-icon{flex-shrink:0}.sidebar-label{flex:1;white-space:nowrap}.sidebar.is-collapsed .sidebar-link{justify-content:center;padding:11px 0}.sidebar-chevron{transition:transform .2s ease}.sidebar-chevron.is-open{transform:rotate(180deg)}.sidebar-submenu{margin:2px 0 6px!important;padding-left:32px!important}.sidebar-sublink{display:block;padding:8px 12px;color:#94a3b8;font-size:13px;border-radius:7px;text-decoration:none;transition:background .15s ease,color .15s ease}.sidebar-sublink:hover{background:#94a3b81f;color:#f1f5f9}.sidebar-sublink.is-active{color:#fff;background:#2563eb59}.admin-header{background:#1565c0;color:#fff;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #00000014}.admin-header .brand{font-weight:700;font-size:18px}.admin-header .brand small{font-weight:400;opacity:.8;margin-left:8px;font-size:13px}.admin-header .user-info{display:flex;gap:16px;align-items:center;font-size:14px}.admin-header button{background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}.admin-header button:hover{background:#ffffff40}.admin-main{flex:1;padding:24px 32px;max-width:1700px;margin:0 auto;width:100%}.admin-main h2{margin:0 0 4px;font-size:22px;color:#1565c0}.admin-main .lead{color:#5e6b7a;margin:0 0 20px;font-size:14px}.users-table-wrap{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #0000000f;overflow-x:auto}table.users{width:100%;border-collapse:collapse;font-size:13px}table.users thead{background:#f5f7fa}table.users th{text-align:left;padding:12px 14px;font-weight:600;color:#4a5568;border-bottom:1px solid #e2e8f0;font-size:12px;text-transform:uppercase;letter-spacing:.04em}table.users td{padding:11px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle;white-space:nowrap}table.users tbody tr:hover{background:#fafbfc}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-success{background:#e8f5e9;color:#2e7d32}.badge-warn{background:#fff3e0;color:#e65100}.onb-badge{letter-spacing:.01em;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.onb-pips{display:inline-flex;gap:2px}.onb-pip{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.25}.onb-pip.on{opacity:1}.onb-pending{background:#eef1f5;color:#5e6b7a}.onb-profile{background:#e3f0ff;color:#1565c0}.onb-imported{background:#d9f5f0;color:#0f766e}.onb-recommended,.conta-active{background:#e8f5e9;color:#2e7d32}.conta-incomplete{background:#eef1f5;color:#5e6b7a}.empty,.loading{padding:40px 20px;text-align:center;color:#5e6b7a}.dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}.period-selector{display:inline-flex;background:#fff;border:1px solid #e2e8f0;border-radius:9px;padding:3px;gap:2px}.period-btn{border:none;background:transparent;color:#5e6b7a;font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;transition:background .15s ease,color .15s ease}.period-btn:hover{background:#f1f5f9}.period-btn.is-active{background:#1565c0;color:#fff}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:24px}.kpi-card{background:#fff;border-radius:12px;padding:16px 18px;box-shadow:0 4px 16px #0000000f;display:flex;flex-direction:column;gap:4px}.kpi-label{font-size:12px;font-weight:600;color:#5e6b7a;text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:28px;font-weight:700;color:#1565c0;line-height:1.1}.kpi-hint{font-size:12px;color:#94a3b8}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px}.chart-card{background:#fff;border-radius:12px;padding:18px;box-shadow:0 4px 16px #0000000f}.chart-title{margin:0 0 14px;font-size:15px;font-weight:600;color:#2c3e50}.chart-body{width:100%}@media(max-width:768px){.sidebar{width:72px}.sidebar .sidebar-brand-text,.sidebar .sidebar-label,.sidebar .sidebar-chevron,.sidebar .sidebar-submenu{display:none}.sidebar .sidebar-link{justify-content:center;padding:11px 0}.charts-grid{grid-template-columns:1fr}}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:center}.filter-search{flex:1 1 260px;min-width:220px;padding:9px 12px;border:1px solid #d7dde5;border-radius:8px;font-size:14px}.filter-select{padding:9px 12px;border:1px solid #d7dde5;border-radius:8px;font-size:14px;background:#fff;color:#2c3e50}.filter-search:focus,.filter-select:focus{outline:none;border-color:#1565c0;box-shadow:0 0 0 2px #1565c026}.filter-clear{border:none;background:transparent;color:#1565c0;font-size:13px;font-weight:600;cursor:pointer;padding:8px 4px}.filter-clear:hover{text-decoration:underline}.table-meta{font-size:12px;color:#94a3b8;margin-bottom:8px}table.users th.num,table.users td.num{text-align:right;font-variant-numeric:tabular-nums}table.users th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.users th.sortable:hover{color:#1565c0}.verified-dot{display:inline-block;margin-left:6px;color:#2e7d32;font-weight:700;font-size:12px}.link-count{border:none;background:transparent;color:#1565c0;font-weight:600;cursor:pointer;font-size:14px;font-variant-numeric:tabular-nums;padding:0}.link-count:hover{text-decoration:underline}.row-action{border:1px solid #d7dde5;background:#fff;color:#1565c0;font-size:13px;font-weight:600;padding:6px 12px;border-radius:7px;cursor:pointer;white-space:nowrap}.row-action:hover{background:#f1f7ff;border-color:#1565c0}.cell-email .truncate{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;color:#334155}.cell-phone{font-variant-numeric:tabular-nums;color:#334155;letter-spacing:.01em}.muted-dash{color:#cbd5e1}.provider-badges{display:inline-flex;flex-wrap:wrap;gap:6px}.provider-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 4px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1;border:1px solid transparent}.provider-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:11px;font-weight:700;color:#fff}.provider-google{background:#fce8e6;color:#b3261e;border-color:#f7c9c4}.provider-google .provider-mark{background:#ea4335}.provider-microsoft{background:#e6effc;color:#1b5cab;border-color:#c7ddf6}.provider-microsoft .provider-mark{background:#0078d4}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal{background:#fff;border-radius:14px;width:100%;max-width:540px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 60px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid #eef1f5}.modal-header h3{margin:0;font-size:17px;color:#2c3e50}.modal-sub{margin:2px 0 0;font-size:13px;color:#94a3b8}.modal-close{border:none;background:transparent;font-size:26px;line-height:1;color:#94a3b8;cursor:pointer;padding:0 4px}.modal-close:hover{color:#2c3e50}.modal-body{padding:16px 20px;overflow-y:auto}.reco-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.reco-item{border:1px solid #eef1f5;border-radius:10px;padding:12px 14px}.reco-top{display:flex;align-items:center;gap:8px;justify-content:space-between}.reco-name{font-weight:600;color:#2c3e50}.badge-muted{background:#eef2f7;color:#5e6b7a}.reco-obs{margin:8px 0 6px;font-size:14px;color:#4a5568;font-style:italic}.reco-date{font-size:12px;color:#94a3b8}
