:root{--primary: #1e40af;--primary-soft: #dbeafe;--on-primary: #ffffff;--ok: #15803d;--ok-soft: #dcfce7;--warn: #b45309;--warn-soft: #fef3c7;--bad: #b91c1c;--bad-soft: #fee2e2;--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--fg: #0f172a;--muted: #64748b;--line: #e2e8f0;--line-strong: #cbd5e1;--row-h: 36px;--card-pad: 14px;--gap: 12px;--header-h: 52px;--radius: 10px;--radius-sm: 6px;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-lg: 18px;--fs-xl: 26px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 30px rgba(15, 23, 42, .18);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-num: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--primary: #60a5fa;--primary-soft: #1e3a5f;--on-primary: #0b1220;--ok: #4ade80;--ok-soft: #14311f;--warn: #fbbf24;--warn-soft: #3a2c0a;--bad: #f87171;--bad-soft: #3d1616;--bg: #0b0f16;--surface: #131924;--surface-2: #1a2231;--fg: #e8edf5;--muted: #94a3b8;--line: #26303f;--line-strong: #33405280;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .55)}}*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:var(--fs-base);line-height:1.5;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}button{font:inherit;font-size:var(--fs-sm);font-weight:500;padding:7px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);cursor:pointer;transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}button:disabled{opacity:.45;cursor:default}button.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}button.active:hover{color:var(--on-primary)}:where(button,input,select,a,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:2px}input,select{font:inherit;font-size:var(--fs-sm);padding:7px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);transition:border-color .15s}input:hover,select:hover{border-color:var(--muted)}input[type=number],input[type=date]{font-variant-numeric:tabular-nums}header{display:flex;align-items:center;gap:16px;height:var(--header-h);padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}header h1{font-size:var(--fs-base);font-weight:700;letter-spacing:-.01em;white-space:nowrap}header nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}header nav::-webkit-scrollbar{display:none}header nav button{border:none;background:transparent;padding:6px 11px;border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap}header nav button:hover:not(.active){background:var(--surface-2);color:var(--fg)}header nav button.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.spacer{flex:1}.page{padding:20px;max-width:1680px;margin-inline:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}h1,h2{margin:0;font-size:var(--fs-lg);font-weight:650;letter-spacing:-.01em}h3{margin:0 0 12px;font-size:var(--fs-base);font-weight:600}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--gap);margin-bottom:var(--gap)}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad) 16px;box-shadow:var(--shadow);border-left:3px solid var(--line-strong)}.tile-value{font-family:var(--font-num);font-size:var(--fs-xl);font-weight:600;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile-label{font-size:var(--fs-sm);font-weight:500;margin-top:2px}.tile-hint{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}.tile-ok{border-left-color:var(--ok)}.tile-ok .tile-value{color:var(--ok)}.tile-warn{border-left-color:var(--warn)}.tile-warn .tile-value{color:var(--warn)}.tile-bad{border-left-color:var(--bad)}.tile-bad .tile-value{color:var(--bad)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}thead th:first-child{border-top-left-radius:var(--radius)}thead th:last-child{border-top-right-radius:var(--radius)}tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}th,td{text-align:left;padding:0 12px;height:var(--row-h);border-bottom:1px solid var(--line);white-space:nowrap}th:first-child,td:first-child{width:100%;white-space:normal}thead th{position:sticky;top:var(--header-h);z-index:10;background:var(--surface-2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line-strong)}tbody tr{transition:background .15s}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}td:not(:first-child){font-variant-numeric:tabular-nums}.row-warn,.row-warn:hover{background:var(--bad-soft)}.row-selected,.row-selected:hover{background:var(--primary-soft)}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.row-actions button{padding:4px 9px;font-size:var(--fs-xs)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.pill.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.pill.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.warn-pill{background:var(--warn-soft);color:var(--warn);border-color:transparent;margin-left:8px}.cell-inline{display:flex;align-items:center;gap:8px}.cell-inline .pill{margin-left:0}.muted{color:var(--muted)}.warn{color:var(--warn)}.ok{color:var(--ok)}.bad{color:var(--bad)}.error,.ok-banner,.warn-banner{padding:11px 14px;border-radius:var(--radius);margin-bottom:var(--gap);font-size:var(--fs-sm);border:1px solid transparent;border-left-width:3px}.error{background:var(--bad-soft);color:var(--bad);border-left-color:var(--bad)}.ok-banner{background:var(--ok-soft);color:var(--ok);border-left-color:var(--ok)}.warn-banner{background:var(--warn-soft);color:var(--warn);border-left-color:var(--warn)}.summary{display:flex;gap:18px;margin-bottom:var(--gap);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center}.map{height:clamp(360px,calc(100vh - 210px),1000px);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--gap);box-shadow:var(--shadow)}.map-compact{height:300px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.map-placeholder{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:28px;margin-bottom:var(--gap);text-align:center;background:var(--surface);color:var(--muted)}.map-placeholder p{margin:8px 0 0}.marker{background:var(--primary);color:var(--on-primary);padding:3px 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;transform:translate(-50%,-50%)}.marker-muted{background:var(--muted)}.marker-drag{background:var(--warn);cursor:grab}.pin{position:relative;transform:translate(-50%,-100%);line-height:0;pointer-events:none}.pin-body{fill:var(--primary);stroke:#fff;stroke-width:1.5}.pin-dot{fill:#fff}.pin-muted .pin-body{fill:#94a3b8}.pin-label{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:3px;white-space:nowrap;font:600 11px/1.4 var(--font);color:#0f172a;background:#fffffff0;padding:1px 6px;border-radius:999px;box-shadow:0 1px 3px #00000040}.check{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm)}.hint{font-size:var(--fs-xs);display:block;margin-top:4px;color:var(--muted)}.anomalies,.gaps{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad) 16px;margin-top:var(--gap);font-size:var(--fs-sm)}.anomalies ul,.gaps ul{margin:8px 0 0;padding-left:20px}.anomalies li,.gaps li{margin-bottom:4px}.player{display:flex;align-items:center;gap:12px;font-size:var(--fs-sm)}.player input[type=range]{flex:1;max-width:420px;accent-color:var(--primary)}.login{max-width:340px;margin:12vh auto;display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.login p{margin:0 0 8px}.loading{text-align:center;padding:15vh 20px;color:var(--muted)}.loading button{margin-top:16px}.file-button{display:inline-block;font-size:var(--fs-sm);font-weight:500;padding:7px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s,color .15s}.file-button:hover{border-color:var(--primary);color:var(--primary)}.file-button input[type=file]{display:none}.import-errors{margin:8px 0 0;padding-left:20px;font-size:var(--fs-xs)}.planner td.cell{text-align:center;cursor:pointer;min-width:76px;white-space:nowrap}.planner td.cell:hover{background:var(--primary-soft)}.planner td.cell-filled{background:var(--ok-soft);color:var(--ok);font-weight:600}.kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--gap)}.kanban-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--card-pad);box-shadow:var(--shadow)}.kanban-head{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:10px}.task-result{font-size:var(--fs-xs);color:var(--muted);margin-top:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;width:min(560px,100%);max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 16px;font-size:var(--fs-lg)}.modal label{display:block;margin-bottom:14px;font-size:var(--fs-xs);font-weight:500;color:var(--muted)}.modal label input,.modal label select{display:block;width:100%;margin-top:5px;color:var(--fg)}.modal label.check{display:flex;color:var(--fg);margin-bottom:8px}.modal label.check input{width:auto;margin:0}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.outlet-picker{max-height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px}.credentials{margin:8px 0;font-size:var(--fs-base)}.credentials code{background:var(--surface-2);border:1px solid var(--line);padding:3px 8px;border-radius:var(--radius-sm);font-family:var(--font-num);-webkit-user-select:all;user-select:all}.teams-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.geocode-row{display:flex;gap:8px;align-items:flex-end}.geocode-row label{flex:1;margin:0}.geocode-hits{list-style:none;margin:8px 0 0;padding:0;max-height:180px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.geocode-hits li{padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--line);transition:background .15s}.geocode-hits li:last-child{border-bottom:none}.geocode-hits li:hover{background:var(--surface-2)}@media (max-width: 900px){.page{padding:14px}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.row-2{grid-template-columns:1fr}.wrap{overflow-x:auto}}.attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}.thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;cursor:zoom-in}.photo-big{max-width:92vw;max-height:92vh;border-radius:8px}.attachments audio{height:32px;max-width:100%}button.link{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
