:root{--bg-deep: #080e1a;--bg-base: #0c1524;--bg-surface: #12203a;--bg-elevated: #182944;--bg-hover: #1e3354;--border: rgba(255, 255, 255, .08);--copper: #b46542;--copper-light: #c47e62;--sky: #4eb8d4;--success: #10b981;--danger: #ef4444;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--sidebar-width: 292px;color-scheme:dark;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{border:0}a{color:inherit;text-decoration:none}.loading-screen,.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#080e1a,#0d1b2e,#12203a)}.loading-screen{flex-direction:column;gap:14px;color:var(--text-secondary)}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.12);border-top-color:var(--copper-light);border-radius:999px;animation:spin .8s linear infinite}.login-particles{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 20% 30%,rgba(180,101,66,.07) 0%,transparent 48%),radial-gradient(circle at 80% 70%,rgba(78,184,212,.06) 0%,transparent 48%)}.login-card{position:relative;z-index:1;width:min(420px,calc(100vw - 32px));padding:44px 40px;text-align:center;background:#12203ad1;border:1px solid var(--border);border-radius:18px;box-shadow:0 25px 60px #0006;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-card-glow{position:absolute;top:-1px;left:50%;width:60%;height:2px;transform:translate(-50%);background:linear-gradient(90deg,transparent,var(--copper),transparent)}.login-card h1{margin:0 0 8px;font-size:1.6rem;line-height:1.15}.login-card p{margin:0 0 30px;color:var(--text-secondary)}.google-btn,.dev-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 28px;border-radius:999px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease}.google-btn{background:var(--text-primary);color:#111827;box-shadow:0 4px 14px #0000004d}.google-btn:hover,.dev-btn:hover{transform:translateY(-2px)}.dev-btn{margin-top:14px;min-height:40px;background:var(--bg-elevated);color:var(--text-secondary)}.login-error{margin-top:18px;padding:12px 14px;border:1px solid rgba(239,68,68,.32);border-radius:8px;background:#ef44441f;color:#fca5a5;font-size:.9rem}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) 1fr;background:#0b1220}.sidebar{position:sticky;top:0;height:100vh;padding:22px;background:var(--bg-base);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:22px}.brand{display:block}.brand strong{display:block;font-size:.98rem}.brand span{display:block;color:var(--text-secondary);font-size:.82rem}.readonly-badge{display:inline-block!important;margin-top:6px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:#ffffff0d;color:var(--text-secondary)!important;font-size:.7rem!important;letter-spacing:.02em}.summary{padding:16px;border:1px solid var(--border);border-radius:8px;background:#ffffff09}.summary{display:grid;gap:12px}.summary[hidden]{display:none}.summary>span{color:var(--text-secondary);font-size:.86rem}.summary-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;font-size:.92rem;width:100%;padding:6px 8px;margin:-6px -8px;border-radius:7px;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background .15s ease}.summary-row:hover{background:#ffffff0d}.summary-row--active{background:#4eb8d424;box-shadow:inset 0 0 0 1px #4eb8d466}.summary-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-row i,.region-dot{width:10px;height:10px;border-radius:999px}.report-btn{display:inline-flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid rgba(180,101,66,.35);border-radius:8px;background:linear-gradient(135deg,#b4654226,#b4654214);color:var(--copper-light);font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease}.report-btn:hover{background:linear-gradient(135deg,#b4654247,#b4654224);border-color:#b465428c;transform:translateY(-1px)}.report-btn:active{transform:translateY(0)}.logout{margin-top:auto;display:inline-flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border-radius:8px;color:var(--text-secondary);background:var(--bg-surface)}.content{min-width:0;padding:26px clamp(18px,3vw,38px) 44px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}.eyebrow{margin:0 0 6px;color:var(--copper-light);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}h1,h2{margin:0}h1{font-size:clamp(1.7rem,3vw,2.35rem)}.filters{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.search-box,.region-filter__button{height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary)}.search-box input{min-width:0;border:0;outline:0;background:transparent;color:var(--text-primary)}.search-box input{width:min(360px,38vw)}.region-filter{position:relative}.region-filter__button{min-width:202px;justify-content:space-between;cursor:pointer}.region-filter__button span{flex:1;min-width:0;color:var(--text-primary);text-align:left}.region-filter__panel{position:absolute;z-index:20;top:calc(100% + 8px);right:0;width:230px;padding:8px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#111d32;box-shadow:0 18px 45px #0000006b}.region-filter__option{min-height:38px;display:grid;grid-template-columns:18px 1fr;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--text-primary);cursor:pointer}.region-filter__option:hover{background:var(--bg-hover)}.region-filter__option input{position:absolute;opacity:0;pointer-events:none}.region-filter__checkbox{width:18px;height:18px;display:grid;place-items:center;border:1px solid rgba(148,163,184,.55);border-radius:5px;color:#fff;background:#ffffff09}.region-filter__option input:checked+.region-filter__checkbox{border-color:var(--copper-light);background:var(--copper)}.state-list{display:grid;gap:16px}.state-list[hidden]{display:none}.state-section{border:1px solid var(--border);border-radius:8px;background:var(--bg-surface)}.state-heading{position:sticky;top:0;z-index:10;min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);border-radius:7px 7px 0 0;background:var(--bg-elevated);box-shadow:0 8px 18px #00000024}.state-heading h2{font-size:1.15rem}.state-heading span,.state-heading strong{color:var(--text-secondary);font-size:.86rem}.city-table{display:grid}.city-row{min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:14px;padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.055)}.city-row:last-child{border-bottom:0;border-radius:0 0 7px 7px}.city-row--single{grid-template-columns:1fr}.city-name{min-width:0;display:flex;align-items:center;gap:8px}.city-name span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-name small{color:var(--text-muted)}.region-cell{display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:10px}.region-cell select{width:100%;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:6px;outline:0;background:var(--bg-elevated);color:var(--text-primary)}.region-cell select:disabled{opacity:.55}.toast{position:fixed;right:18px;bottom:18px;min-height:44px;display:inline-flex;align-items:center;gap:10px;padding:0 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 16px 40px #00000052}.toast--success{color:#86efac}.toast--error{color:#fca5a5}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.app-shell{display:block}.sidebar{position:static;height:auto}.topbar{align-items:stretch;flex-direction:column}.filters{justify-content:stretch}.search-box,.region-filter,.region-filter__button{flex:1 1 220px}.search-box input{width:100%}.region-filter__panel{left:0;right:0;width:auto}.city-row{grid-template-columns:1fr}.content--map{height:auto}.map-view{height:70vh}}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.tabs{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--bg-surface)}.tabs button{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 16px;border-radius:999px;background:transparent;color:var(--text-secondary);font-weight:600;cursor:pointer;transition:color .15s ease,background .15s ease}.tabs button.is-active{background:var(--bg-elevated);color:var(--text-primary)}.content--map{height:100vh;display:flex;flex-direction:column;padding-bottom:18px}.content--map .topbar{margin-bottom:16px}.map-view{position:relative;flex:1 1 auto;min-height:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--bg-surface)}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:linear-gradient(135deg,#0b1220,#12203a);color:var(--text-secondary)}.map-notice{max-width:460px}.map-notice strong{display:block;margin-bottom:8px;color:var(--text-primary);font-size:1.05rem}.map-notice code{padding:2px 6px;border-radius:4px;background:#ffffff14;font-size:.85em}.map-legend{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#0b1220e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px #00000059}.map-legend__row{display:grid;grid-template-columns:12px auto;align-items:center;gap:9px;font-size:.88rem;color:var(--text-primary)}.map-legend__row i{width:12px;height:12px;border-radius:3px}.map-legend__row small{grid-column:2;color:var(--text-muted);font-size:.76rem}.map-tooltip{position:fixed;z-index:30;pointer-events:none;min-width:150px;max-width:260px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#080e1af2;box-shadow:0 12px 30px #00000073}.map-tooltip strong{font-size:.95rem;color:var(--text-primary)}.map-tooltip__uf{margin-left:6px;color:var(--text-muted);font-size:.8rem}.map-tooltip__region{margin-top:6px;display:flex;align-items:center;gap:7px;font-size:.84rem;color:var(--text-secondary)}.map-tooltip__region i{width:10px;height:10px;border-radius:3px;flex:none}.map-tooltip__customers{margin-top:6px;font-size:.84rem;font-weight:600;color:#fbbf24}.map-controls{position:absolute;left:14px;top:14px;z-index:3;display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#0b1220e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px #00000059}.map-toggle{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--text-primary);-webkit-user-select:none;user-select:none}.map-toggle input{width:16px;height:16px;accent-color:var(--accent, #2563eb);cursor:pointer}.map-toggle label{cursor:pointer}.map-target-select{padding:5px 8px;border:1px solid var(--border);border-radius:8px;background:#080e1ae6;color:var(--text-primary);font-size:.85rem;font-weight:600;cursor:pointer}.map-controls__meta{display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--text-secondary)}.map-controls__meta strong{color:var(--text-primary)}.map-controls__meta small{color:var(--text-muted);font-size:.74rem}.report-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease}.report-modal{position:relative;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;background:var(--bg-base);box-shadow:0 30px 80px #00000080;animation:modalIn .25s ease}.report-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 14px;border-bottom:1px solid var(--border)}.report-modal__header h2{font-size:1.15rem;margin:0}.report-modal__header p{margin:4px 0 0;color:var(--text-secondary);font-size:.85rem}.report-modal__close{flex:none;padding:4px;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:color .15s ease}.report-modal__close:hover{color:var(--text-primary)}.report-modal__body{flex:1 1 auto;overflow-y:auto;padding:10px 14px}.report-modal__option{min-height:44px;display:grid;grid-template-columns:18px auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text-primary);cursor:pointer;transition:background .12s ease}.report-modal__option:hover{background:var(--bg-hover)}.report-modal__option input{position:absolute;opacity:0;pointer-events:none}.report-modal__option--all{grid-template-columns:18px 1fr auto;font-weight:600}.report-modal__option--all strong{color:var(--text-muted);font-size:.82rem;font-weight:500}.report-modal__dot{width:12px;height:12px;border-radius:4px;flex:none}.report-modal__label{display:flex;flex-direction:column;min-width:0}.report-modal__label strong{font-size:.9rem;font-weight:600}.report-modal__label small{color:var(--text-muted);font-size:.78rem}.report-modal__count{color:var(--text-secondary);font-size:.82rem;font-weight:500}.report-modal__divider{height:1px;margin:4px 10px;background:var(--border)}.report-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--border)}.report-modal__summary{color:var(--text-muted);font-size:.82rem}.report-modal__actions{display:flex;gap:8px}.report-modal__cancel,.report-modal__generate{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 18px;border:1px solid var(--border);border-radius:8px;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.report-modal__cancel{background:var(--bg-surface);color:var(--text-secondary)}.report-modal__cancel:hover{background:var(--bg-elevated);color:var(--text-primary)}.report-modal__generate{background:linear-gradient(135deg,var(--copper) 0%,#9a5535 100%);border-color:transparent;color:#fff;box-shadow:0 4px 14px #b465424d}.report-modal__generate:hover{transform:translateY(-1px);box-shadow:0 6px 20px #b4654266}.report-modal__generate:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.sidebar-map{display:flex;flex-direction:column;gap:8px}.sidebar-map[hidden]{display:none}.mini-map{position:relative;height:230px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-surface);cursor:pointer}.mini-map__canvas{position:absolute;top:0;right:0;bottom:0;left:0}.mini-map__canvas .leaflet-container{background:#0c1524}.mini-map__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.82rem;pointer-events:none}.sidebar-map__hint{color:var(--text-muted);font-size:.76rem;line-height:1.3}.nucleos-panel{display:flex;flex-direction:column;gap:16px}.nucleos-panel__head{display:flex;flex-direction:column;gap:12px}.nucleos-panel__head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.nucleos-panel__tabs{flex-shrink:0}.nucleos-panel__back{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;padding:6px 10px;border-radius:7px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.nucleos-panel__back:hover{background:var(--bg-hover);color:var(--text-primary)}.nucleos-panel__title{display:flex;align-items:center;gap:12px}.nucleos-panel__title i{width:14px;height:14px;border-radius:999px;flex-shrink:0}.nucleos-panel__title h2{margin:0;font-size:1.2rem}.nucleos-panel__title span{color:var(--text-secondary);font-size:.86rem}.nucleos-panel__empty{color:var(--text-secondary)}.nucleos-list{display:flex;flex-direction:column;gap:18px}.nucleos-city h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:.86rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.nucleo-card{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:9px;background:#ffffff06;margin-bottom:8px}.nucleo-card__main{min-width:0;display:flex;flex-direction:column;gap:6px}.nucleo-card__main strong{font-size:.96rem}.nucleo-card__meta{display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:var(--text-secondary)}.nucleo-card__contacts{display:flex;flex-wrap:wrap;gap:14px;color:var(--text-muted)}.nucleo-card__contacts span{display:inline-flex;align-items:center;gap:4px}.nucleo-card__edit{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;padding:7px 12px;border-radius:7px;background:var(--bg-surface);color:var(--copper-light);cursor:pointer;transition:background .15s ease}.nucleo-card__edit:hover{background:var(--bg-hover)}.nucleo-modal{max-width:720px;width:100%}.nucleo-form{display:flex;flex-direction:column}.nucleo-form__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:22px 26px;max-height:60vh;overflow-y:auto}.nucleo-form__section{grid-column:1 / -1;margin-top:6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--copper-light)}.nucleo-form__field{display:flex;flex-direction:column;gap:5px}.nucleo-form__field--sm{max-width:120px}.nucleo-form__field span{font-size:.78rem;color:var(--text-secondary)}.nucleo-form__field input,.nucleo-form__field select{padding:9px 11px;border:1px solid var(--border);border-radius:7px;background:var(--bg-base);color:var(--text-primary)}.nucleo-form__field select:disabled{opacity:.5;cursor:not-allowed}.nucleo-form__field input:focus,.nucleo-form__field select:focus{outline:none;border-color:var(--sky)}@media(max-width:720px){.nucleo-form__grid{grid-template-columns:1fr}}
