:root{color-scheme:light;--bg: #f6f5f2;--card-bg: #ffffff;--text: #1c1b1a;--muted: #6b6862;--accent: #d9542f;--accent-dark: #b8431f;--border: #e4e1db;--error: #c0392b;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:24px 16px 48px}.page-header{max-width:480px;text-align:center;margin-bottom:24px}.page-header h1{font-size:1.6rem;margin-bottom:8px}.page-header p{color:var(--muted);margin:0}.card{width:100%;max-width:480px;background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 8px 24px #0000000f}.form{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:12px}.form-row label{flex:1;min-width:0}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600}input{width:100%;border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:1rem;font-weight:400}input:focus{outline:2px solid var(--accent);outline-offset:1px}.phone-input{display:flex;align-items:center;border:1px solid var(--border);border-radius:10px;overflow:hidden}.phone-prefix{padding:0 12px;background:var(--bg);color:var(--muted);font-weight:600;align-self:stretch;display:flex;align-items:center}.phone-input input{border:none;border-radius:0;flex:1}.phone-input input:focus{outline:none}.field-label{font-size:.9rem;font-weight:600;margin:0 0 8px}.category-picker{display:flex;flex-direction:column;gap:12px}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.category-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:.85rem;font-weight:500;cursor:pointer}.category-chip input{width:auto}button[type=submit]{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:14px;font-size:1rem;font-weight:600;cursor:pointer}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}button[type=submit]:not(:disabled):hover{background:var(--accent-dark)}.form-error{color:var(--error);font-size:.85rem;margin:0}.success{text-align:center;padding:16px 0}.success h2{margin-bottom:12px}.success p{color:var(--muted);margin:0}.datasheet-page{width:100%;padding:24px 24px 48px}.datasheet-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:20px}.datasheet-header h1{font-size:1.4rem;margin:0}.datasheet-total{color:var(--muted);margin:0;font-size:.9rem}.datasheet-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.datasheet-tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 18px;font-size:.95rem;font-weight:600;color:var(--muted);cursor:pointer;margin-bottom:-1px}.datasheet-tab:hover{color:var(--text)}.datasheet-tab.active{color:var(--accent-dark);border-bottom-color:var(--accent)}.map-view{display:flex;flex-direction:column;gap:12px}.map-split{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.map-table-panel{flex:1 1 320px;min-width:280px;max-height:700px;overflow-y:auto;background:var(--card-bg);border:1px solid var(--border);border-radius:12px}.map-table-panel .datasheet-table th{position:sticky;top:0;background:var(--card-bg)}.map-table-row-active{background:#fbe9e2}.map-canvas-panel{flex:1 1 420px;min-width:300px;display:flex;flex-direction:column;align-items:center;gap:12px}.map-canvas{position:relative;width:100%;max-width:620px;background:#f6f5f2;border:1px solid var(--border);border-radius:16px;padding:24px}.map-canvas svg{width:100%;height:auto;display:block}.map-boundary{fill:#1c1b1a;stroke:#000;stroke-width:.6;stroke-linejoin:round;transition:fill .15s ease}.map-boundary:hover{fill:#2c2b29}.map-cluster-group{cursor:pointer}.map-cluster{fill:var(--accent);stroke:#fff;stroke-width:1.2;fill-opacity:.92;transform-box:fill-box;transform-origin:center;transition:transform .15s ease,fill-opacity .15s ease}.map-cluster-group:hover .map-cluster,.map-cluster-group.active .map-cluster{transform:scale(1.18);fill-opacity:1;stroke-width:1.8}.map-cluster-label{fill:#fff;font-size:11px;font-weight:700;text-anchor:middle;pointer-events:none}.map-area-label{fill:#f0efe9;font-size:10px;font-weight:600;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#1c1b1a;stroke-width:3px;stroke-linejoin:round}.map-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 12px));background:var(--text);color:#fff;padding:8px 12px;border-radius:8px;font-size:.8rem;line-height:1.4;display:flex;flex-direction:column;gap:2px;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #00000040;z-index:10}.map-tooltip strong{font-size:.85rem}.map-tooltip span{color:#ffffffbf}.stat-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.stat-box{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:4px;text-align:center}.stat-box-total{background:var(--text);border-color:var(--text)}.stat-box-total .stat-box-count{color:#fff}.stat-box-total .stat-box-name{color:#ffffffb3}.stat-box-count{font-size:1.8rem;font-weight:700;color:var(--accent-dark)}.stat-box-name{color:var(--muted);font-size:.85rem;font-weight:600}.datasheet-search{width:100%;border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:1rem;margin-bottom:16px;background:var(--card-bg)}.datasheet-search:focus{outline:2px solid var(--accent);outline-offset:1px}.datasheet-table-wrap{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow-x:auto;margin-bottom:16px}.datasheet-table{width:100%;border-collapse:collapse;font-size:.85rem;white-space:nowrap}.datasheet-table th,.datasheet-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}.datasheet-table th{color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.02em}.datasheet-table tbody tr:last-child td{border-bottom:none}.datasheet-empty{text-align:center;color:var(--muted);padding:24px!important}.pagination{display:flex;align-items:center;justify-content:center;gap:16px}.pagination button{border:1px solid var(--border);background:var(--card-bg);border-radius:8px;padding:8px 16px;font-size:.9rem;cursor:pointer}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{color:var(--muted);font-size:.9rem}
