:root{--font:"Segoe UI", Roboto, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-mono:"SF Mono", Consolas, "Roboto Mono", "DejaVu Sans Mono", monospace;--bg:#fff;--bg-sidebar:#fff;--bg-page:#f4f4f5;--bg-hover:#f4f4f5;--bg-input:#fff;--text:#0f0f0f;--text-secondary:#707579;--text-tertiary:#a8a8a8;--separator:#e6e6e6;--border-input:#dcdfe1;--accent:#3390ec;--accent-hover:#2b82d9;--accent-soft:#eaf3fc;--on-accent:#fff;--accent-fill:#1078d2;--accent-fill-hover:#0d6cbd;--green:#31b545;--green-soft:#e8f6ea;--red:#e53935;--red-soft:#fdeaea;--orange:#e9a13b;--orange-soft:#fdf3e4;--radius:10px;--radius-sm:8px;--radius-pill:999px;--shadow:0 2px 8px #00000014;--chart-1:#3390ec;--chart-2:#e9930f;--chart-grid:#ececec;--chart-zero:#c8c8c8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#212121;--bg-sidebar:#212121;--bg-page:#181818;--bg-hover:#2b2b2b;--bg-input:#212121;--text:#fff;--text-secondary:#aaa;--text-tertiary:#7d7d7d;--separator:#303030;--border-input:#3d3d3d;--accent:#6ab3f3;--accent-hover:#83c0f6;--accent-soft:#232e3c;--on-accent:#fff;--green:#4dcd5e;--green-soft:#1e3023;--red:#ef5350;--red-soft:#33211f;--orange:#f0b26a;--orange-soft:#33291a;--shadow:0 2px 12px #00000073;--chart-1:#4392e0;--chart-2:#bd7d1c;--chart-grid:#2e2e2e;--chart-zero:#4a4a4a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg-page);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}h1,h2,h3{margin:0;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{background:var(--bg);grid-template-columns:280px minmax(0,1fr);min-height:100%;display:grid}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--separator);flex-direction:column;align-self:start;height:100dvh;display:flex;position:sticky;top:0}.sidebar__head{flex:none;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex}.sidebar__logo{background:var(--accent-fill);width:34px;height:34px;color:var(--on-accent);border-radius:50%;flex:none;place-items:center;display:grid}.sidebar__title{font-size:16px;font-weight:600;line-height:1.2;display:block}.sidebar__subtitle{color:var(--text-secondary);font-size:12px;line-height:1.3;display:block}.sidebar__nav{flex:1;min-height:0;padding:6px 8px 12px;overflow-y:auto}.sidebar__group{color:var(--text-secondary);padding:16px 12px 6px;font-size:13px;font-weight:500}.navitem{border-radius:var(--radius);color:var(--text);cursor:pointer;align-items:center;gap:14px;padding:9px 12px;font-size:15px;text-decoration:none;transition:background-color .12s;display:flex}.navitem:hover{background:var(--bg-hover);text-decoration:none}.navitem--on,.navitem--on:hover{background:var(--accent-fill);color:var(--on-accent)}.navitem__icon{color:var(--text-secondary);flex:none;display:flex}.navitem--on .navitem__icon{color:var(--on-accent)}.navitem--muted{color:var(--text-tertiary);cursor:default}.navitem--muted:hover{background:0 0}.navitem__badge{border-radius:var(--radius-pill);background:var(--accent-fill);min-width:22px;color:var(--on-accent);text-align:center;margin-left:auto;padding:0 7px;font-size:12px;font-weight:600;line-height:22px}.navitem--on .navitem__badge{background:var(--on-accent);color:var(--accent-fill)}.sidebar__foot{border-top:1px solid var(--separator);flex:none;align-items:center;gap:12px;padding:12px 16px;display:flex}.sidebar__avatar{color:#fff;background:linear-gradient(135deg,#5caffe,#3390ec);border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:grid}.sidebar__who{flex:1;min-width:0}.sidebar__who b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;display:block;overflow:hidden}.sidebar__who span{color:var(--text-secondary);font-size:12px}.iconbtn{width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items:center;transition:background-color .12s,color .12s;display:grid}.iconbtn:hover{background:var(--bg-hover);color:var(--red)}.shell--tight{grid-template-columns:68px minmax(0,1fr)}.shell--tight .sidebar__title,.shell--tight .sidebar__subtitle,.shell--tight .sidebar__group,.shell--tight .sidebar__who,.shell--tight .navitem>span:not(.navitem__icon):not(.navitem__badge){display:none}.shell--tight .sidebar__head,.shell--tight .sidebar__foot{flex-direction:column;gap:8px;height:auto;padding:10px 0}.shell--tight .navitem{justify-content:center;padding:10px 0}.shell--tight .navitem__badge{min-width:17px;margin:0;font-size:10px;line-height:17px;position:absolute;top:2px;right:8px}.shell--tight .navitem{position:relative}.menu-toggle{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items:center;transition:background-color .12s;display:grid}.menu-toggle:hover{background:var(--bg-hover);color:var(--text)}.main{background:var(--bg);min-width:0;padding:28px 32px 64px}.main__inner{max-width:940px}.page-head{margin-bottom:24px}.page-head h1{font-size:24px}.page-head p{max-width:66ch;color:var(--text-secondary);margin:8px 0 0;font-size:14px}.section{margin-top:32px}.section__head{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section__head h2{font-size:17px}.section__head .caption{color:var(--text-secondary);margin-left:auto;font-size:13px}.caption{color:var(--text-secondary);font-size:13px}.block{background:var(--bg);border:1px solid var(--separator);border-radius:var(--radius);overflow-x:auto}.rows{border-collapse:collapse;width:100%;font-size:15px}.rows th{text-align:left;color:var(--text-secondary);background:var(--bg-page);border-bottom:1px solid var(--separator);white-space:nowrap;padding:11px 16px;font-size:13px;font-weight:500}.rows td{border-bottom:1px solid var(--separator);vertical-align:middle;padding:13px 16px}.rows tbody tr:last-child td{border-bottom:none}.rows tbody tr{transition:background-color .12s}.rows tbody tr:hover{background:var(--bg-hover)}.rows .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px}.rows .actions{text-align:right;white-space:nowrap}.cell-title{font-size:15px;font-weight:500;display:block}.cell-sub{color:var(--text-secondary);margin-top:1px;font-size:13px;display:block}.avatar{color:#fff;background:linear-gradient(135deg,#5caffe,#3390ec);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:15px;font-weight:600;display:grid}.avatar--green{background:linear-gradient(135deg,#6fd67d,#31b545)}.avatar--orange{background:linear-gradient(135deg,#f5c26b,#e9a13b)}.person{align-items:center;gap:12px;display:flex}.chip{border-radius:var(--radius-pill);background:var(--bg-page);color:var(--text-secondary);white-space:nowrap;padding:3px 10px;font-size:12.5px;font-weight:500;display:inline-block}.chip--wait{background:var(--orange-soft);color:var(--orange)}.chip--ok{background:var(--green-soft);color:var(--green)}.chip--stop{background:var(--red-soft);color:var(--red)}.chip--accent{background:var(--accent-soft);color:var(--accent)}.btn{border-radius:var(--radius-sm);background:var(--bg-page);color:var(--text);cursor:pointer;border:none;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:500;transition:background-color .12s,opacity .12s}.btn:hover:not(:disabled){background:var(--separator)}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--accent-fill);color:var(--on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-fill-hover)}.btn--danger{color:var(--red);background:0 0}.btn--danger:hover:not(:disabled){background:var(--red-soft)}.btn--quiet{color:var(--accent);background:0 0;padding-left:10px;padding-right:10px}.btn--quiet:hover:not(:disabled){background:var(--accent-soft)}.btn--sm{padding:6px 12px;font-size:13px}.btn+.btn{margin-left:6px}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tab{border-radius:var(--radius-pill);background:var(--bg-page);color:var(--text-secondary);cursor:pointer;border:none;padding:7px 14px;font-family:inherit;font-size:14px;font-weight:500;transition:background-color .12s,color .12s}.tab:hover{background:var(--separator)}.tab--on,.tab--on:hover{background:var(--accent-fill);color:var(--on-accent)}.field{margin-bottom:22px;display:block;position:relative}.field__input{width:100%;height:46px;color:var(--text);background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--radius);outline:none;padding:0 14px;font-family:inherit;font-size:15px;transition:border-color .12s,box-shadow .12s}.field__input:focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.field__label{background:var(--bg);color:var(--text-secondary);pointer-events:none;padding:0 5px;font-size:12px;transition:color .12s;position:absolute;top:-8px;left:10px}.field__input:focus+.field__label{color:var(--accent)}.field__hint{color:var(--text-secondary);margin:6px 4px 0;font-size:13px}.switch{vertical-align:middle;flex:none;width:38px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch__track{border-radius:var(--radius-pill);background:var(--border-input);pointer-events:none;transition:background-color .14s;position:absolute;inset:0}.switch__track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.switch input:checked+.switch__track{background:var(--accent-fill)}.switch input:checked+.switch__track:after{transform:translate(16px)}.switch input:disabled+.switch__track{opacity:.5}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.toolbar .field{margin-bottom:0}.toolbar__spacer{flex:1}.grid2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 18px;display:grid}.subtle{color:var(--text-secondary)}.editrow{max-width:640px;padding:18px 4px 8px}.editrow h3{margin-bottom:16px;font-size:15px}.card{background:var(--bg);border:1px solid var(--separator);border-radius:var(--radius);padding:24px}.note{border-radius:var(--radius);background:var(--bg-page);color:var(--text-secondary);margin:4px 0 16px;padding:12px 16px;font-size:14px}.note--bad{background:var(--red-soft);color:var(--red)}.note--good{background:var(--green-soft);color:var(--green)}.empty{text-align:center;color:var(--text-secondary);padding:48px 0;font-size:14px}.facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.fact{border:1px solid var(--separator);border-radius:var(--radius);padding:16px 18px}.fact span{color:var(--text-secondary);font-size:13px}.fact b{font-variant-numeric:tabular-nums;margin-top:4px;font-size:28px;font-weight:600;line-height:1.1;display:block}.fact--call{border-color:var(--accent)}.fact--call b{color:var(--accent)}.panels{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;display:grid}.chart{border:1px solid var(--separator);border-radius:var(--radius);background:var(--bg);padding:18px 20px 14px;position:relative}.chart__head{align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.chart__head h3{font-size:15px;font-weight:600}.chart__legend{color:var(--text-secondary);gap:14px;margin-left:auto;font-size:12.5px;display:flex}.chart__key{align-items:center;gap:6px;display:inline-flex}.chart__swatch{border-radius:3px;flex:none;width:10px;height:10px}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart__grid{stroke:var(--chart-grid);stroke-width:1px}.chart__zero{stroke:var(--chart-zero);stroke-width:1px}.chart__axis{fill:var(--text-secondary);font-size:10.5px}.chart__value{fill:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:10.5px}.chart__bar{transition:opacity .12s}.chart__hit:hover~.chart__bar,.chart__bar:hover{opacity:.82}.chart__tip{z-index:5;pointer-events:none;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);white-space:nowrap;box-shadow:var(--shadow);padding:8px 10px;font-size:12.5px;line-height:1.4;position:absolute;transform:translate(-50%)}.chart__tip b{font-variant-numeric:tabular-nums}.chart__empty{text-align:center;color:var(--text-secondary);padding:32px 0;font-size:13.5px}.mapwrap{border:1px solid var(--separator);border-radius:var(--radius);height:min(64vh,620px);overflow:hidden}.leaflet-container{background:var(--bg-page);width:100%;height:100%;font:inherit}.leaflet-container .leaflet-control-attribution{border-radius:var(--radius-sm) 0 0 0;background:color-mix(in srgb, var(--bg) 72%, transparent);color:var(--text-tertiary);padding:1px 6px;font-size:10px;line-height:15px}.leaflet-container .leaflet-control-attribution a{color:var(--text-tertiary);text-decoration:none}.leaflet-container .leaflet-control-attribution:hover{background:var(--bg);color:var(--text-secondary)}.leaflet-container .leaflet-control-attribution:hover a{color:var(--accent)}.gate{background:var(--bg);place-items:center;min-height:100%;padding:40px 20px;display:grid}.gate__form{text-align:center;width:100%;max-width:360px}.gate__logo{background:var(--accent-fill);width:90px;height:90px;color:var(--on-accent);border-radius:50%;place-items:center;margin:0 auto 26px;display:grid}.gate__form h1{font-size:26px}.gate__form p{color:var(--text-secondary);margin:10px 0 32px;font-size:14.5px}.gate__form .field{text-align:left}.gate__submit{width:100%;height:46px;font-size:15px}.gate__foot{color:var(--text-secondary);margin-top:24px;font-size:13px}@keyframes appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.settle{animation:.22s ease-out backwards appear;animation-delay:calc(var(--i,0) * 18ms)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--separator);height:auto;position:static}.sidebar__nav{flex-wrap:wrap;gap:4px;display:flex;overflow:visible}.sidebar__group,.navitem--muted{display:none}.main{padding:20px 16px 48px}.rows th:nth-child(n+4),.rows td:nth-child(n+4){display:none}}
