:root{font-family:Inter,Segoe UI,Tahoma,sans-serif;color:#203344;background:#f4f7fb;font-size:15px;--teal:#007f7a;--purple:#7562d5;--border:#dfe7ed}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{border:0;background:var(--teal);color:white;padding:10px 16px;border-radius:10px;cursor:pointer;text-decoration:none;display:inline-block;font-weight:600}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#eaf0f6;color:#334c66}.purple{background:var(--purple)}input,select,textarea{border:1px solid #cbd8e1;border-radius:9px;background:white;color:#203344;padding:10px;width:100%;margin:5px 0 12px}textarea{min-height:140px;resize:vertical}input[type=checkbox]{width:auto;margin:0 8px}label{font-weight:600;font-size:.88rem}aside{position:fixed;inset-block:0;inset-inline-start:0;width:232px;background:#123f47;color:#e5f4f2;padding:30px 20px;display:flex;flex-direction:column;gap:12px}aside h2{font-size:22px;margin:0}aside small{color:#b6d3d6}nav{display:grid;gap:8px;margin-top:36px}nav button{text-align:start;background:transparent;color:#c7dfe0;padding:14px}nav button.active{background:#1c666c;color:white}aside footer{margin-top:auto;font-size:.8rem;color:#b6d3d6}main{margin-inline-start:232px;padding:34px;max-width:1600px}.top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{font-size:.74rem;text-transform:uppercase;letter-spacing:2px;color:var(--teal);font-weight:700}h1{font-size:30px;margin:8px 0}h2{font-size:20px;margin:0 0 15px}h3{font-size:16px;margin:0 0 10px}p{line-height:1.7}.muted,small{color:#657b8b}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row input,.row select{width:auto;min-width:160px;margin:0}.card{border:1px solid var(--border);background:white;border-radius:17px;padding:22px;margin-bottom:20px;box-shadow:0 3px 15px #193b5010}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.metric{border-radius:16px;padding:20px;background:#dcf5ee}.metric:nth-child(2){background:#ede8ff}.metric:nth-child(3){background:#fff0d6}.metric:nth-child(4){background:#e0edff}.metric strong{display:block;font-size:32px;margin:10px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:15px}.country{margin:0}progress{width:100%;height:12px;accent-color:var(--teal)}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:start;padding:13px 10px;border-bottom:1px solid #edf1f5;vertical-align:top}th{color:#627989;background:#f8fafc;font-size:.78rem}td button{font-size:.78rem;padding:7px 10px;margin:3px}.scroll{overflow:auto}.badge{display:inline-block;padding:5px 9px;border-radius:7px;background:#edf1f7;font-size:.75rem}.hold{background:#fff3db;border:1px solid #efd7a6;padding:15px;border-radius:12px;margin:12px 0}.login{max-width:440px;margin:9vh auto}#toast{position:fixed;bottom:24px;inset-inline-end:24px;max-width:520px;background:#163e49;color:white;padding:16px 22px;border-radius:12px;display:none;z-index:10}details{margin-top:10px}summary{cursor:pointer;color:var(--teal)}pre{white-space:pre-wrap;word-break:break-word;background:#f4f7fb;padding:14px;border-radius:10px;font:inherit;font-size:.85rem;max-height:360px;overflow:auto}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.device{border-inline-start:4px solid var(--teal)}.spacer{margin-top:22px}a{color:var(--teal)}.checklist{display:flex;gap:12px;flex-wrap:wrap}.checklist label{background:#f1f5fa;padding:10px;border-radius:8px}.banner{background:#e5edff;border:1px solid #cedaf1;border-radius:12px;padding:14px;margin-bottom:20px}.small{font-size:.8rem}@media(max-width:900px){aside{position:static;width:auto;padding:20px}nav{display:flex;overflow:auto;margin-top:10px}aside footer{display:none}main{margin:0;padding:20px}.metrics{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.top{align-items:start;flex-direction:column}}:focus-visible{outline:3px solid #efb940;outline-offset:3px}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.filters label{min-width:120px;max-width:210px;flex:1}.clinic-table{font-size:13px;width:100%;border-collapse:collapse}.clinic-table td{vertical-align:top;white-space:pre-line;min-width:120px;max-width:270px;overflow-wrap:anywhere;padding:10px}.clinic-table td:first-child{min-width:36px}.clinic-table th{position:sticky;top:0;background:#e7f7f3}.clinic-detail{width:400px;max-height:480px;overflow:auto;background:#f6fbff;padding:14px;white-space:pre-wrap}.clinic-detail pre{white-space:pre-wrap}.bulk{margin:16px 0}.scroll{max-height:70vh}.web-metrics{display:flex;gap:12px;flex-wrap:wrap}.web-metrics>span{background:#e9f5ff;padding:10px 16px;border-radius:12px}
.stream-row{border:1px solid #b8dcd6;border-radius:14px;padding:16px;margin:12px 0;background:#f5fcfa}.stream-row .badge{background:#d8efff;color:#12466b}.keyword-chips{display:flex;gap:8px;flex-wrap:wrap;margin-block:14px}.device{min-width:300px}.stream-row p{overflow-wrap:anywhere}

.device-connection{padding:20px;border:2px solid;border-radius:14px;margin:16px 0}.device-connection strong{font-size:24px;display:block}.device-connection p{margin:8px 0}.is-connected{background:#dcfce7;border-color:#22c55e;color:#14532d}.is-disconnected{background:#fff1f2;border-color:#f43f5e;color:#881337}.device-connection small{color:inherit}

.device-connection.is-unknown{background:#fff6da;border-color:#e6b84c;color:#805d0a}select[multiple]{min-width:240px;min-height:130px}#local-diagnostics{white-space:pre-wrap;overflow-wrap:anywhere}

/* Stable compact rows; full content expands in its own row. */
.clinic-table{table-layout:fixed;min-width:100%}
.clinic-table .clinic-summary-row{height:108px}
.clinic-table td{min-width:0;max-width:none;overflow-wrap:anywhere}
.clinic-cell-preview{line-height:21px;height:84px;max-height:84px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;white-space:pre-line;overflow-wrap:anywhere}
.clinic-table .clinic-expanded-row[hidden]{display:none}
.clinic-table .clinic-expanded-row>td{padding:0;white-space:normal}
.clinic-expanded-row .clinic-detail{width:auto;max-width:1100px;max-height:560px;padding:22px;white-space:normal;overflow:auto}
.clinic-full-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.clinic-full-fields>section{min-width:0}
.clinic-full-fields>section>div{white-space:pre-line;overflow-wrap:anywhere}
.clinic-detail h4{margin:14px 0 6px}.clinic-summary-row button{white-space:normal}
.plan-state{padding:7px 10px;border-radius:8px;margin:4px 0;border-inline-start:4px solid #94a3b8;background:#f1f5f9;min-width:230px}.plan-state.complete{border-color:#10b981;background:#ecfdf5;color:#065f46}.plan-state.planned{border-color:#6366f1;background:#eef2ff;color:#3730a3}.plan-state.new{color:#64748b}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto}[data-control="reset"],[data-recover-settings]{background:#ecfdf5;color:#065f46;border:1px solid #10b981;font-weight:700}

.maps-alert{background:#fff7ed;border:2px solid #f97316;border-inline-start-width:8px;border-radius:16px;padding:24px;margin-bottom:24px;color:#7c2d12}.maps-alert h2{font-size:1.35rem;margin-top:0}.maps-alert p{max-width:100ch;line-height:1.7}#ai-configuration{border-top:4px solid #8b5cf6}#ai-connection-result{white-space:pre-wrap;overflow-wrap:anywhere}

.team-device-rows .device{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.team-device-rows .device>.row,.team-device-rows .device>details,.team-device-rows .device>[id^="device-connection"]{grid-column:1/-1}.team-donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;margin:20px auto}.team-donut span{background:white;border-radius:50%;width:100px;height:100px;display:grid;place-items:center;font-weight:bold;font-size:24px}@media(max-width:850px){.team-device-rows .device{display:block}}

#team-leaderboard{min-height:540px}.timeline-legend{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.timeline-legend label{border:1px solid;border-inline-start-width:5px;border-radius:9px;padding:8px;background:#f8fbff}.dash-pill{display:inline-block;border-radius:20px;padding:7px 11px;font-size:12px;font-weight:700;white-space:normal}.dash-pill.online{background:#d4fae5;color:#086333;border:1px solid #71d69e;box-shadow:0 0 0 3px #14b86a12}.dash-pill.offline{background:#ffe4e8;color:#a32342;border:1px solid #f4a9b9}.dash-pill.warning{background:#fff0cb;color:#865100;border:1px solid #edc05a}.dash-pill.current{background:#e6edff;color:#3855a6}.device-overview tbody tr:nth-child(even){background:#f3f8ff}

.load-status{position:fixed;inset-block-start:16px;inset-inline-end:24px;z-index:1000;display:flex;align-items:center;gap:12px;padding:13px 20px;background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7;border-radius:14px;box-shadow:0 8px 28px #064e3b22;max-width:min(540px,90vw)}
.load-status[hidden]{display:none}.load-status.has-error{background:#fff7ed;color:#9a3412;border-color:#fdba74}.loading-spinner{width:20px;height:20px;border:3px solid #a7f3d0;border-top-color:#059669;border-radius:50%;animation:atlas-spin .8s linear infinite;flex-shrink:0}@keyframes atlas-spin{to{transform:rotate(360deg)}}
.page-skeleton{display:grid;gap:20px;padding-block:20px}.page-skeleton div{height:110px;border-radius:16px;background:linear-gradient(100deg,#e6f4f1,#f4faff,#e6f4f1);background-size:200% 100%;animation:atlas-shimmer 1.5s infinite}@keyframes atlas-shimmer{to{background-position:-200% 0}}.current-device{border:2px solid #34d399;background:linear-gradient(120deg,#ecfdf5,#eff6ff);box-shadow:0 8px 24px #10b98118}.current-device.disconnected,.current-device.unidentified{border-color:#fbbf24;background:#fffbeb}.review-warning{border:2px solid #f59e0b;background:#fffbeb;color:#78350f;padding:18px;border-radius:14px;margin-block:18px}.review-warning ul{padding-inline-start:22px}@media(prefers-reduced-motion:reduce){.loading-spinner,.page-skeleton div{animation:none}}
.chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-block:12px}.chart-key{display:inline-block;padding:6px 10px;border-inline-start:5px solid var(--series);background:#f6f8fb;border-radius:6px}.clinic-table{width:100%;border-collapse:collapse}.clinic-table th,.clinic-table td{padding:9px;border-bottom:1px solid #dbe3ec;vertical-align:top}.clinic-table th{position:sticky;top:0;background:#edf4f8;z-index:1}.clinic-table details{min-width:140px}
