@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-body:16px;--letter-spacing-body:.01em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--sidebar-width:264px;--sidebar-compact-width:72px;--header-height:68px;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--glass-blur:18px}:root,[data-theme=light]{color-scheme:light;--bg:rgba(247,249,252,.3);--surface:rgba(255,255,255,.3);--surface-raised:#fff;--surface-muted:#eef2f7;--text:#17243a;--text-muted:#64748b;--border:#e2e8f0;--glass-bg:rgba(255,255,255,.3);--glass-border:rgba(255,255,255,.72);--shadow-sm:0 3px 12px rgba(23,36,58,.06);--shadow-lg:0 14px 40px rgba(23,36,58,.14);--map-bg:#e7eee9;--map-road:#fff;--map-water:#c6e0e9;--map-park:#cfe1c8}[data-theme=dark]{color-scheme:dark;--bg:rgba(11,18,32,.3);--surface:rgba(21,31,48,.3);--surface-raised:#1a2638;--surface-muted:#202d40;--text:#f1f5f9;--text-muted:#a0aec0;--border:#334155;--glass-bg:rgba(15,23,42,.3);--glass-border:rgba(255,255,255,.12);--shadow-sm:0 3px 12px rgba(0,0,0,.2);--shadow-lg:0 16px 42px rgba(0,0,0,.4);--map-bg:#172638;--map-road:#2c4055;--map-water:#173f57;--map-park:#234738}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--font-size-body);letter-spacing:var(--letter-spacing-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 35%,transparent);outline-offset:2px}.app-shell{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.app-header{height:var(--header-height);min-height:var(--header-height);display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);z-index:30}.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;min-width:0}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--color-primary);color:#fff;border-radius:12px;font-size:25px;box-shadow:0 5px 14px #2563eb35}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand-copy strong{font-size:16px;font-weight:750;letter-spacing:-.23px}.brand-copy small{font-size:12px;color:var(--text-muted)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.theme-button,.header-link{height:38px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:13px;font-weight:600}.theme-button:hover,.header-link:hover,.icon-button:hover{background:var(--surface-muted)}.icon-button{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:19px;cursor:pointer;flex:none}.mobile-menu-button,.mobile-close{display:none}.app-body{display:flex;flex:1;min-height:0;position:relative}.app-sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);padding:17px 13px 14px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--glass-border);box-shadow:var(--shadow-lg);z-index:20;display:flex;flex-direction:column;transition:width .2s,flex-basis .2s}.sidebar-topline{display:flex;align-items:center;justify-content:space-between;padding:0 5px 13px}.eyebrow,.page-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:750;color:var(--text-muted)}.collapse-button{width:30px;height:30px;border:0;background:transparent}.sidebar-nav{display:grid;gap:5px}.sidebar-link{min-height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:10px;color:var(--text-muted);text-decoration:none;font-weight:550;white-space:nowrap;transition:background .15s,color .15s}.sidebar-link:hover{background:var(--surface-muted);color:var(--text)}.sidebar-link.active{background:color-mix(in srgb,var(--color-primary) 11%,var(--surface));color:var(--color-primary);font-weight:700}.nav-icon{width:20px;text-align:center;font-size:20px}.sidebar-city{display:grid;gap:7px;margin:17px 4px 2px;padding:12px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.sidebar-city label{font-size:11px;font-weight:750;color:var(--text-muted)}.sidebar-city select{width:100%;height:38px;padding:0 9px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:13px}.sidebar-city small{font-size:10px;line-height:1.4;color:var(--text-muted)}.sidebar-divider{height:1px;background:var(--border);margin:18px 5px 13px}.sidebar-foot{margin-top:auto;padding:12px 9px;display:flex;align-items:center;gap:9px;color:var(--text-muted);font-size:12px}.sidebar-foot-mark{font-size:10px;color:var(--color-success)}.app-sidebar.collapsed{width:var(--sidebar-compact-width);flex-basis:var(--sidebar-compact-width);padding-inline:9px}.app-sidebar.collapsed .eyebrow,.app-sidebar.collapsed .nav-label,.app-sidebar.collapsed .sidebar-foot,.app-sidebar.collapsed .sidebar-city{display:none}.app-sidebar.collapsed .sidebar-topline{justify-content:center}.app-sidebar.collapsed .sidebar-link{justify-content:center;padding:0}.app-sidebar.collapsed .sidebar-divider{margin-top:18px}.app-main{min-width:0;min-height:0;flex:1;position:relative;overflow:hidden}.map-page{height:100%;min-height:0;display:flex;flex-direction:column;padding:18px 20px 20px;gap:14px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex:none}.map-toolbar h1,.workspace-heading h1{font-size:24px;letter-spacing:-.46px;margin:4px 0 0;font-weight:750}.map-toolbar-actions{display:flex;align-items:center;gap:9px}.map-toolbar-actions select{height:40px;min-width:175px;border:1px solid var(--border);border-radius:10px;padding:0 34px 0 12px;background:var(--surface);color:var(--text)}.button{min-height:40px;border-radius:10px;padding:0 15px;border:1px solid transparent;font-weight:650;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .15s,transform .15s}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--color-primary);color:#fff}.button-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.button-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.map-stage{position:relative;flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--map-bg);box-shadow:var(--shadow-sm)}.map{position:relative;width:100%;height:100%;min-height:240px}.map-canvas{width:100%;height:100%}.ol-viewport{background:var(--map-bg)}.ol-control button{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:8px!important}.ol-attribution{font-size:11px!important}.status{position:absolute;top:14px;left:14px;z-index:5;background:var(--surface);color:var(--text-muted);border:1px solid var(--border);padding:8px 11px;border-radius:9px;box-shadow:var(--shadow-sm);font-size:12px}.status.error{color:var(--color-danger)}.point-card{position:absolute;right:18px;bottom:18px;width:min(310px,calc(100% - 36px));padding:14px 15px 15px;border:1px solid var(--border);border-radius:15px;background:var(--surface-raised);box-shadow:var(--shadow-lg);z-index:8}.point-card-head{display:flex;align-items:center;justify-content:space-between}.category-chip{font-size:11px;font-weight:750;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 11%,var(--surface));padding:5px 9px;border-radius:20px}.close-card{width:28px;height:28px;border:0;background:transparent;font-size:21px}.point-card h2{font-size:17px;line-height:1.35;letter-spacing:-.2px;margin:10px 0 7px}.point-date{font-size:12px;color:var(--text-muted);font-weight:600}.point-card p{font-size:13px;line-height:1.55;color:var(--text-muted);margin:10px 0}.point-author{border-top:1px solid var(--border);padding-top:9px;color:var(--text-muted);font-size:11px}.dialog-backdrop{position:fixed;inset:0;z-index:60;background:#080f1c8f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:22px}.dialog{width:min(720px,100%);max-height:min(92vh,900px);overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:24px;box-shadow:var(--shadow-lg)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.dialog-heading h2{font-size:22px;letter-spacing:-.39px;margin:5px 0}.dialog-heading p{font-size:13px;color:var(--text-muted);margin:0;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 13px}.form-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;font-weight:700}.form-field>span b{color:var(--color-danger)}.form-field input,.form-field textarea,.form-field select{width:100%;min-height:42px;border:1px solid var(--border);border-radius:9px;padding:10px 11px;background:var(--bg);color:var(--text);outline:none;font-size:13px}.form-field textarea{min-height:88px;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--text-muted);opacity:.75}.form-field-wide{grid-column:1/-1}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-hint{font-weight:400;color:var(--text-muted);font-size:11px;line-height:1.5}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--border);margin-top:20px;padding-top:17px}.form-error{padding:10px 12px;margin-top:14px;border-radius:9px;background:color-mix(in srgb,var(--color-danger) 10%,var(--surface));color:var(--color-danger);font-size:13px}.workspace-page{height:100%;overflow:auto;padding:28px clamp(18px,3vw,42px)}.workspace-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.workspace-heading p{margin:8px 0 0;color:var(--text-muted);font-size:13px}.workspace-icon{width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--color-primary) 11%,var(--surface));color:var(--color-primary);display:grid;place-items:center;font-size:24px}.moderator-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}.moderator-nav,.moderator-content{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.moderator-nav{padding:13px}.moderator-nav-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:750;padding:8px 9px 12px}.moderator-nav-items{display:flex;flex-wrap:wrap;align-items:stretch;gap:5px;width:100%}.moderator-nav-item{min-height:40px;padding:0 10px;display:flex;align-items:center;gap:9px;border-radius:9px;color:var(--text-muted);font-size:13px;font-weight:600;white-space:normal}.moderator-nav-item.active{background:color-mix(in srgb,var(--color-primary) 10%,var(--surface));color:var(--color-primary)}.moderator-nav-item.disabled{opacity:.55}.moderator-nav-item small{margin-left:auto;font-size:10px}.moderator-content{padding:20px;min-height:320px}.moderator-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.moderator-panel-heading h2{font-size:17px;margin:0 0 5px}.moderator-panel-heading p{font-size:12px;color:var(--text-muted);margin:0}.status-pill{padding:6px 9px;border-radius:20px;font-size:11px;font-weight:700}.status-pill.pending{background:color-mix(in srgb,var(--color-warning) 13%,var(--surface));color:var(--color-warning)}.moderator-empty{min-height:235px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px}.empty-icon{width:52px;height:52px;border-radius:16px;background:var(--surface-muted);color:var(--text-muted);display:grid;place-items:center;font-size:26px;margin-bottom:13px}.moderator-empty h3{font-size:15px;margin:0 0 8px}.moderator-empty p{max-width:460px;font-size:12px;line-height:1.65;color:var(--text-muted);margin:0}.sidebar-backdrop{display:none}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.app-sidebar{background:var(--surface)}}@media(max-width:900px){.app-sidebar{width:220px;flex-basis:220px}.moderator-layout{grid-template-columns:180px minmax(0,1fr)}.moderator-nav-item{white-space:normal}}@media(max-width:720px){:root{--header-height:60px}.app-header{padding:0 13px;gap:10px}.mobile-menu-button{display:grid}.brand-mark{width:34px;height:34px}.brand-copy strong{font-size:14px}.brand-copy small{display:none}.header-actions{gap:6px}.theme-button{width:38px;padding:0;justify-content:center}.theme-button span:last-child{display:none}.header-link{font-size:12px;padding:0 9px}.app-sidebar{position:fixed;left:10px;top:70px;bottom:10px;width:min(290px,calc(100vw - 40px));transform:translate(calc(-100% - 24px));border:1px solid var(--glass-border);border-radius:17px;transition:transform .2s;box-shadow:var(--shadow-lg)}.app-sidebar.mobile-open{transform:translate(0)}.app-sidebar .collapse-button{display:none}.app-sidebar .mobile-close{display:grid}.sidebar-topline{justify-content:space-between}.sidebar-backdrop.visible{display:block;position:fixed;inset:60px 0 0;background:#080f1c47;z-index:15}.map-page{padding:13px;gap:11px}.map-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.map-toolbar h1{font-size:20px}.map-toolbar-actions{width:100%}.map-toolbar-actions select{min-width:0;flex:1;width:100%}.map-toolbar-actions .button{white-space:nowrap;padding:0 11px}.map-stage{border-radius:13px}.point-card{left:10px;right:10px;bottom:10px;width:auto}.workspace-page{padding:20px 14px}.moderator-layout{grid-template-columns:1fr}.moderator-nav{display:flex;flex-direction:column;align-items:stretch;gap:8px;overflow:visible;padding:8px}.moderator-nav-title{display:none}.moderator-nav-items{display:flex;flex-wrap:wrap;align-items:stretch;gap:5px;width:100%}.moderator-nav-item{white-space:normal;flex:1 1 140px;min-width:140px}.moderator-account{width:100%;flex:0 0 auto}.moderator-content{padding:15px}}@media(max-width:480px){.header-link{display:none}.map-toolbar-actions .button{font-size:12px}.dialog-backdrop{padding:0;align-items:end}.dialog{width:100%;max-height:94vh;border-radius:19px 19px 0 0;padding:19px 16px calc(16px + env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr}.form-field-wide{grid-column:auto}.coordinate-grid{grid-template-columns:1fr 1fr}.dialog-footer{flex-direction:column-reverse}.dialog-footer .button{width:100%}.moderator-panel-heading{align-items:flex-start;flex-direction:column}.moderator-nav-item{white-space:normal}}[data-theme=dark] .base-map-layer canvas{filter:invert(88%) hue-rotate(180deg) brightness(.82) contrast(.9)}.auth-panel{width:min(440px,100%);margin:24px auto;padding:25px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.auth-panel h2{font-size:20px;letter-spacing:-.26px;margin:7px 0}.auth-panel>p,.auth-panel-heading p{font-size:13px;line-height:1.55;color:var(--text-muted);margin:7px 0 0}.auth-form{display:grid;gap:15px;margin-top:22px}.auth-submit{width:100%;margin-top:3px}.moderator-account{display:grid;gap:6px;border-top:1px solid var(--border);margin-top:13px;padding:15px 8px 4px}.moderator-account>span{font-size:11px;color:var(--text-muted)}.moderator-account>strong{font-size:14px;margin-bottom:5px}.moderator-account .button{width:100%}.moderator-account .form-error{font-size:11px;line-height:1.45;margin:4px 0 0}@media(max-width:720px){.auth-panel{margin:5px auto;padding:20px}}.request-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:20px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--border)}.request-filter,.request-refresh{min-height:34px;padding:0 11px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:650;cursor:pointer}.request-filter:hover,.request-refresh:hover{background:var(--surface-muted);color:var(--text)}.request-filter.active{background:color-mix(in srgb,var(--color-primary) 11%,var(--surface));color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 18%,transparent)}.request-refresh{margin-left:auto;border-color:var(--border);background:var(--surface);color:var(--text)}.request-refresh:disabled{opacity:.5;cursor:wait}.request-workspace{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(0,1.4fr);gap:14px;align-items:start}.request-list{display:grid;gap:7px;max-height:620px;overflow:auto;padding-right:3px}.request-list-item{width:100%;display:flex;align-items:flex-start;gap:9px;text-align:left;padding:12px 10px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);cursor:pointer;min-width:0}.request-list-item:hover{background:var(--surface-muted)}.request-list-item.selected{border-color:color-mix(in srgb,var(--color-primary) 55%,var(--border));background:color-mix(in srgb,var(--color-primary) 5%,var(--surface))}.request-status-dot{width:8px;height:8px;flex:none;margin-top:5px;border-radius:50%;background:var(--text-muted)}.request-status-dot.pending{background:var(--color-warning)}.request-status-dot.approved{background:var(--color-success)}.request-status-dot.rejected{background:var(--color-danger)}.request-list-copy{display:grid;gap:5px;min-width:0;flex:1}.request-list-copy strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.request-list-copy small{font-size:10px;color:var(--text-muted);line-height:1.4}.request-status-label{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:5px 8px;border-radius:20px;font-size:10px;line-height:1.2;font-weight:750;white-space:nowrap}.request-status-label.pending{background:color-mix(in srgb,var(--color-warning) 13%,var(--surface));color:var(--color-warning)}.request-status-label.approved{background:color-mix(in srgb,var(--color-success) 12%,var(--surface));color:var(--color-success)}.request-status-label.rejected{background:color-mix(in srgb,var(--color-danger) 11%,var(--surface));color:var(--color-danger)}.request-detail{min-width:0;padding:18px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.request-detail-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.request-id{font-size:11px;color:var(--text-muted)}.request-detail h3{font-size:19px;line-height:1.35;letter-spacing:-.26px;margin:13px 0 8px;overflow-wrap:anywhere}.request-description{font-size:13px;line-height:1.65;color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 17px}.request-meta{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;margin:0;padding:15px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.request-meta div{min-width:0}.request-meta dt{font-size:10px;color:var(--text-muted);margin-bottom:5px}.request-meta dd{font-size:12px;font-weight:650;margin:0;overflow-wrap:anywhere;line-height:1.4}.request-rejection{margin-top:14px;padding:11px;border-radius:9px;background:color-mix(in srgb,var(--color-danger) 8%,var(--surface))}.request-rejection strong{font-size:11px;color:var(--color-danger)}.request-rejection p{font-size:12px;line-height:1.5;margin:5px 0 0}.request-actions{display:grid;gap:14px;margin-top:16px}.request-actions>.button{justify-self:start}.request-reject-form{display:grid;gap:9px;padding-top:13px;border-top:1px solid var(--border)}.request-reject-form .form-field textarea{min-height:76px}.button-danger{background:var(--color-danger);color:#fff}.button-danger:hover:not(:disabled){filter:brightness(.94)}.request-state{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:24px;color:var(--text-muted);font-size:13px}.request-state strong{color:var(--text);font-size:14px}.request-state p{max-width:360px;margin:0 0 5px;font-size:12px;line-height:1.5}.request-state-error{color:var(--color-danger)}@media(max-width:1000px){.request-workspace{grid-template-columns:1fr}.request-list{max-height:300px;grid-template-columns:1fr 1fr}}@media(max-width:720px){.request-list{grid-template-columns:1fr;max-height:260px}.request-detail{padding:14px}}@media(max-width:480px){.request-meta{grid-template-columns:1fr 1fr}.request-refresh{margin-left:0}}.app-shell:has(.map-page) .ol-zoom{top:50%;right:18px;left:auto;transform:translateY(-50%);z-index:15}@media(max-width:720px){.app-shell:has(.map-page) .ol-zoom{display:none}}.app-shell:has(.map-page){position:relative;overflow:hidden}.app-shell:has(.map-page) .app-header{position:absolute;inset:12px 14px auto;height:52px;min-height:52px;padding:0;background:transparent;border:0;z-index:35;pointer-events:none}.app-shell:has(.map-page) .app-header>*{pointer-events:auto}.app-shell:has(.map-page) .brand{padding:6px 12px 6px 7px;border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm)}.app-shell:has(.map-page) .header-actions{gap:8px}.app-shell:has(.map-page) .theme-button,.app-shell:has(.map-page) .header-link{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-color:var(--glass-border);box-shadow:var(--shadow-sm)}.app-shell:has(.map-page) .app-body{position:absolute;inset:0;overflow:hidden}.app-shell:has(.map-page) .app-sidebar{position:absolute;left:14px;top:76px;bottom:14px;height:auto;width:264px;flex-basis:264px;border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--shadow-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.app-shell:has(.map-page) .app-sidebar.collapsed{width:72px;flex-basis:72px}.app-shell:has(.map-page) .app-sidebar.collapsed~.app-main .map-toolbar{left:102px}.app-shell:has(.map-page) .app-sidebar.collapsed~.app-main .status{left:102px}.app-shell:has(.map-page) .app-main{width:100%;height:100%;overflow:hidden}.app-shell:has(.map-page) .map-page{position:relative;width:100%;height:100%;padding:0;gap:0}.app-shell:has(.map-page) .map-toolbar{position:absolute;z-index:12;top:76px;left:294px;right:14px;min-height:54px;justify-content:flex-end;pointer-events:none}.app-shell:has(.map-page) .map-toolbar>*{pointer-events:auto}.app-shell:has(.map-page) .map-toolbar-actions{padding:7px;border:1px solid var(--glass-border);border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm)}.app-shell:has(.map-page) .map-toolbar-actions select{background:var(--surface);min-width:150px}.app-shell:has(.map-page) .map-stage{position:absolute;inset:0;border:0;border-radius:0;box-shadow:none;overflow:hidden}.app-shell:has(.map-page) .map{min-height:0}.app-shell:has(.map-page) .point-card{right:18px;bottom:18px}.app-shell:has(.map-page) .status{top:142px;left:294px}@media(max-width:900px){.app-shell:has(.map-page) .app-sidebar{width:230px;flex-basis:230px}.app-shell:has(.map-page) .map-toolbar{left:258px}.app-shell:has(.map-page) .status{left:258px}}@media(max-width:720px){.app-shell:has(.map-page) .app-header{inset:9px 10px auto;height:44px;min-height:44px;gap:7px}.app-shell:has(.map-page) .brand{gap:8px;padding:4px 9px 4px 5px;border-radius:12px}.app-shell:has(.map-page) .app-sidebar{position:fixed;left:10px;top:64px;bottom:10px;width:min(290px,calc(100vw - 40px));height:auto;transform:translate(calc(-100% - 24px));border-radius:17px}.app-shell:has(.map-page) .app-sidebar.mobile-open{transform:translate(0)}.app-shell:has(.map-page) .map-toolbar{top:64px;left:10px;right:10px;min-height:0;align-items:flex-end;gap:7px}.app-shell:has(.map-page) .map-toolbar-actions{margin-left:auto;max-width:calc(100vw - 20px);gap:6px;padding:6px;border-radius:12px}.app-shell:has(.map-page) .map-toolbar-actions select{min-width:0;max-width:42vw;height:36px}.app-shell:has(.map-page) .map-toolbar-actions .button{min-height:36px;padding:0 10px;font-size:12px}.app-shell:has(.map-page) .status{top:112px;left:10px}.app-shell:has(.map-page) .point-card{left:10px;right:10px;bottom:10px;width:auto}.app-shell:has(.map-page) .sidebar-backdrop.visible{z-index:30}.app-shell:has(.map-page) .app-sidebar{z-index:32}}@media(max-width:420px){.app-shell:has(.map-page) .map-toolbar-actions{width:100%}.app-shell:has(.map-page) .map-toolbar-actions select{flex:1;max-width:none}.app-shell:has(.map-page) .header-actions{gap:5px}}.app-shell:has(.map-page) .map-toolbar{align-items:stretch;flex-direction:column;justify-content:flex-start;gap:7px}.app-shell:has(.map-page) .map-toolbar-actions{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;flex:1;min-width:0}.app-shell:has(.map-page) .map-toolbar-actions select{flex:0 1 220px;max-width:45%;padding:0 34px 0 12px;border:1px solid var(--glass-border);border-radius:11px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-sm)}.app-shell:has(.map-page) .map-toolbar-actions .button{margin-left:auto;flex:none;box-shadow:var(--shadow-sm)}@media(max-width:720px){.app-shell:has(.map-page) .map-toolbar{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.app-shell:has(.map-page) .map-toolbar-actions{width:100%;justify-content:space-between;gap:8px;padding:0;border:0;background:transparent;box-shadow:none}.app-shell:has(.map-page) .map-toolbar-actions select{flex:0 1 48%;max-width:48%;height:36px}.app-shell:has(.map-page) .map-toolbar-actions .button{margin-left:auto;flex:none}}.app-sidebar{min-width:min-content}.eyebrow,.page-kicker,.moderator-nav-title{font-size:12px}.sidebar-city label,.sidebar-city small,.field-hint,.point-author,.request-id,.request-list-copy small,.request-meta dt,.moderator-account>span,.moderator-account .form-error{font-size:12px}.sidebar-city select,.theme-button,.header-link,.button,.map-toolbar-actions select,.form-field input,.form-field textarea,.form-field select{font-size:14px}.sidebar-foot{font-size:13px}.moderator-nav-item{font-size:14px}.moderator-nav-item small,.category-chip,.point-date,.status,.status-pill,.form-field,.moderator-panel-heading p,.moderator-account .form-error{font-size:12px}.point-card p,.dialog-heading p,.workspace-heading p,.request-description,.request-rejection p,.request-state p,.moderator-empty p{font-size:14px}.request-filter,.request-refresh{font-size:13px}.request-list-copy strong,.request-meta dd,.moderator-panel-heading h2{font-size:14px}.request-status-label{font-size:11px}.request-rejection strong{font-size:12px}.request-state{font-size:14px}.request-state strong{font-size:15px}.brand-copy strong,.map-toolbar h1,.workspace-heading h1,.point-card h2,.dialog-heading h2,.request-detail h3,.auth-panel h2{letter-spacing:-.02em}@media(min-width:721px)and (max-width:900px){.app-shell:has(.map-page) .map-toolbar{left:278px}}@media(max-width:720px){.app-shell:has(.map-page) .map-toolbar-actions .button{font-size:13px}}
