.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-cyrillic-ext-300-normal-D71dtq-w.woff2) format("woff2"),url(/assets/onest-cyrillic-ext-300-normal-CVEXGb1-.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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-cyrillic-300-normal-Dcqa6NY4.woff2) format("woff2"),url(/assets/onest-cyrillic-300-normal-C0KwR0uu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-math-300-normal-BCrHImzY.woff2) format("woff2"),url(/assets/onest-math-300-normal-B6yDjLW0.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-symbols-300-normal-C9avkWLX.woff2) format("woff2"),url(/assets/onest-symbols-300-normal-Ca5XqV6O.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-vietnamese-300-normal-BauXs1Ff.woff2) format("woff2"),url(/assets/onest-vietnamese-300-normal-rbn87Pts.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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-latin-ext-300-normal-BgZMjXpW.woff2) format("woff2"),url(/assets/onest-latin-ext-300-normal-NTPrO95Y.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:Onest;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/onest-latin-300-normal-CQb7Hhx7.woff2) format("woff2"),url(/assets/onest-latin-300-normal-BcBQOVFv.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-cyrillic-ext-400-normal-C0aKJzIG.woff2) format("woff2"),url(/assets/onest-cyrillic-ext-400-normal-CV3RJNZo.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-cyrillic-400-normal-BTdD9fLi.woff2) format("woff2"),url(/assets/onest-cyrillic-400-normal-BQq8x-Ju.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-math-400-normal-BOdeoExJ.woff2) format("woff2"),url(/assets/onest-math-400-normal-BoceZrtY.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-symbols-400-normal-BKpJPZvB.woff2) format("woff2"),url(/assets/onest-symbols-400-normal-Cyp7MkQ3.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-vietnamese-400-normal-5bytZ3jO.woff2) format("woff2"),url(/assets/onest-vietnamese-400-normal-b_JsbRRP.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-latin-ext-400-normal-DN_ZkHKd.woff2) format("woff2"),url(/assets/onest-latin-ext-400-normal-n6Pl0Elk.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:Onest;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/onest-latin-400-normal-9AYXx_QC.woff2) format("woff2"),url(/assets/onest-latin-400-normal-RaMPE1jb.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-cyrillic-ext-500-normal-BRptT_Q-.woff2) format("woff2"),url(/assets/onest-cyrillic-ext-500-normal-C2Nf5dsb.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-cyrillic-500-normal-CJRUgmys.woff2) format("woff2"),url(/assets/onest-cyrillic-500-normal-BMFE-GJD.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-math-500-normal-BAEyco5m.woff2) format("woff2"),url(/assets/onest-math-500-normal-CFbo1AvL.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-symbols-500-normal-x8bjkRDT.woff2) format("woff2"),url(/assets/onest-symbols-500-normal-BnHuuehd.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-vietnamese-500-normal-CYcoD-Qw.woff2) format("woff2"),url(/assets/onest-vietnamese-500-normal-B-ujVS1X.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-latin-ext-500-normal-BOsNMgOh.woff2) format("woff2"),url(/assets/onest-latin-ext-500-normal-BG_GNqt_.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:Onest;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/onest-latin-500-normal-2-RsuwM3.woff2) format("woff2"),url(/assets/onest-latin-500-normal-CVP923du.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:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-cyrillic-ext-700-normal-Bv9yQbv6.woff2) format("woff2"),url(/assets/onest-cyrillic-ext-700-normal-VHhFdOv4.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:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-cyrillic-700-normal-3rOSeAdn.woff2) format("woff2"),url(/assets/onest-cyrillic-700-normal-BYHfPO1G.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-math-700-normal-8BLSvV4n.woff2) format("woff2"),url(/assets/onest-math-700-normal-DV7Jn8rc.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-symbols-700-normal-C_KQTiD_.woff2) format("woff2"),url(/assets/onest-symbols-700-normal-DWaVlq9G.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-vietnamese-700-normal-o95X2wRR.woff2) format("woff2"),url(/assets/onest-vietnamese-700-normal-DJPTbRH6.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:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-latin-ext-700-normal-DSjWcyFb.woff2) format("woff2"),url(/assets/onest-latin-ext-700-normal-CIZyApB7.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:Onest;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/onest-latin-700-normal-DMkYZIUB.woff2) format("woff2"),url(/assets/onest-latin-700-normal-HOulLaZS.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-cyrillic-ext-400-normal-BHxv52bw.woff2) format("woff2"),url(/assets/roboto-mono-cyrillic-ext-400-normal-W26xs1TL.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-cyrillic-400-normal-C-_K-ZCn.woff2) format("woff2"),url(/assets/roboto-mono-cyrillic-400-normal-B3hIXASd.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-greek-400-normal-CH_u3Aru.woff2) format("woff2"),url(/assets/roboto-mono-greek-400-normal-P8xe1gs1.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-vietnamese-400-normal-yYTFiTTs.woff2) format("woff2"),url(/assets/roboto-mono-vietnamese-400-normal-CzWHQABp.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-ext-400-normal-DLAV9S_w.woff2) format("woff2"),url(/assets/roboto-mono-latin-ext-400-normal-BwLXVYNz.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-mono-latin-400-normal-GekRknry.woff2) format("woff2"),url(/assets/roboto-mono-latin-400-normal-DBZPkcnn.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-mono-cyrillic-ext-500-normal-DC57U9n8.woff2) format("woff2"),url(/assets/roboto-mono-cyrillic-ext-500-normal-6xdwlG7p.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-mono-cyrillic-500-normal-DGZ7-lUP.woff2) format("woff2"),url(/assets/roboto-mono-cyrillic-500-normal-NpUJFYX7.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-mono-greek-500-normal-DpRFkptA.woff2) format("woff2"),url(/assets/roboto-mono-greek-500-normal-C2M8jX6G.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-mono-vietnamese-500-normal-Cq-quQMu.woff2) format("woff2"),url(/assets/roboto-mono-vietnamese-500-normal-IxzxMIj7.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-mono-latin-ext-500-normal-Db3ge6Oe.woff2) format("woff2"),url(/assets/roboto-mono-latin-ext-500-normal-B1IjfbhL.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-mono-latin-500-normal-pxIOXZmA.woff2) format("woff2"),url(/assets/roboto-mono-latin-500-normal-D6j6AMzd.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{color-scheme:light dark;--md-primary: #4298ff;--md-primary-dark: #2668d9;--md-primary-ink: #1d5ecf;--md-primary-variant: #193d91;--md-primary-50: #e8f1ff;--md-primary-100: #c6dcff;--md-secondary: #f0700f;--md-secondary-variant: #b45309;--md-secondary-50: #fff1e6;--md-background: #fafafa;--md-surface: #ffffff;--md-error: #b00020;--md-error-50: #fdecee;--md-success: #0a7d33;--md-success-50: #e3f3e8;--md-gold: #b7791f;--md-gold-50: #fff4d6;--md-on-surface-high: rgba(0, 0, 0, .87);--md-on-surface-medium: rgba(0, 0, 0, .6);--md-on-surface-disabled: rgba(0, 0, 0, .38);--md-divider: rgba(0, 0, 0, .12);--md-divider-soft: rgba(0, 0, 0, .06);--md-on-primary: #ffffff;--md-snackbar: #323232;--elev-1: 0 1px 1px rgba(0,0,0,.14), 0 2px 1px -1px rgba(0,0,0,.12), 0 1px 3px rgba(0,0,0,.2);--elev-2: 0 2px 2px rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12), 0 1px 5px rgba(0,0,0,.2);--elev-4: 0 4px 5px rgba(0,0,0,.14), 0 1px 10px rgba(0,0,0,.12), 0 2px 4px -1px rgba(0,0,0,.2);--elev-8: 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12), 0 5px 5px -3px rgba(0,0,0,.2);--elev-16: 0 16px 24px 2px rgba(0,0,0,.14), 0 6px 30px 5px rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2);--elev-24: 0 24px 38px 3px rgba(0,0,0,.14), 0 9px 46px 8px rgba(0,0,0,.12), 0 11px 15px -7px rgba(0,0,0,.2);--surface: var(--md-background);--surface-2: var(--md-primary-50);--card: var(--md-surface);--line: var(--md-divider);--line-soft: var(--md-divider-soft);--text-1: var(--md-on-surface-high);--text-2: var(--md-on-surface-medium);--text-3: var(--md-on-surface-medium);--text-disabled: var(--md-on-surface-disabled);--accent: var(--md-primary);--accent-strong: var(--md-primary-dark);--accent-ink: var(--md-primary-ink);--accent-soft: rgba(66, 152, 255, .1);--pending-mask: color-mix(in srgb, var(--md-surface) 60%, transparent);--brand-navy: var(--md-primary-variant);--orange: var(--md-secondary);--orange-soft: var(--md-secondary-50);--warn-ink: var(--md-secondary-variant);--danger: var(--md-error);--danger-soft: var(--md-error-50);--ok: var(--md-success);--ok-soft: var(--md-success-50);--bar-bg: var(--md-primary-variant);--bar-ink: #ffffff;--bar-muted: rgba(255, 255, 255, .74);--shadow: var(--elev-1);--radius: 14px;--widget-pad-top: 4px;--field-h: 40px;--heat-1: #d32f2f;--heat-2: #f57c00;--heat-3: #ffa000;--heat-4: #7cb342;--heat-5: #388e3c;--series-1: #1976d2;--series-2: #f57c00;--series-3: #388e3c;--series-4: #ffa000;--series-5: #7b1fa2;--series-6: #0097a7;--series-7: #512da8;--series-8: #d32f2f;--series-9: #c2185b;--series-total: rgba(0, 0, 0, .38);--code-keyword: #7b1fa2;--code-string: #2e7d32;--code-number: #1565c0;--code-type: #006064;--code-atom: #ad1457}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--md-primary: #90c2ff;--md-primary-dark: #b3d4ff;--md-primary-ink: #90c2ff;--md-primary-variant: #0b1d4d;--md-primary-50: #1d2633;--md-primary-100: #28364d;--md-secondary: #ffb74d;--md-secondary-variant: #ffb74d;--md-secondary-50: rgba(255, 183, 77, .14);--md-background: #121212;--md-surface: #1e1e1e;--md-error: #ef9a9a;--md-error-50: rgba(239, 154, 154, .16);--md-success: #81c784;--md-success-50: rgba(129, 199, 132, .16);--md-gold: #ffd54f;--md-gold-50: rgba(255, 213, 79, .14);--md-on-surface-high: rgba(255, 255, 255, .87);--md-on-surface-medium: rgba(255, 255, 255, .6);--md-on-surface-disabled: rgba(255, 255, 255, .38);--md-divider: rgba(255, 255, 255, .12);--md-divider-soft: rgba(255, 255, 255, .06);--md-on-primary: #121212;--accent-soft: rgba(144, 194, 255, .12);--bar-bg: #1b2440;--series-1: #64b5f6;--series-2: #ffb74d;--series-3: #81c784;--series-4: #ffd54f;--series-5: #ba68c8;--series-6: #4dd0e1;--series-7: #9575cd;--series-8: #e57373;--series-9: #f06292;--series-total: rgba(255, 255, 255, .38);--code-keyword: #ce93d8;--code-string: #a5d6a7;--code-number: #90caf9;--code-type: #80deea;--code-atom: #f48fb1}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface);color:var(--text-1);font:400 14px/1.5 Onest,Segoe UI,system-ui,-apple-system,sans-serif;letter-spacing:0;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}h1{font-size:24px;font-weight:400;line-height:1.25}h2{font-size:20px;font-weight:500;line-height:1.25;letter-spacing:.0075em}h3{font-size:16px;font-weight:500;line-height:1.3;letter-spacing:.009em}h4{font-size:14px;font-weight:500;line-height:1.4;letter-spacing:.007em}input,select{font:inherit;color:var(--text-1);background:var(--card)}button,a,summary,input,select{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .2s ease,transform .16s ease,filter .16s ease}summary{cursor:pointer}.topbar{display:flex;align-items:center;gap:16px;min-height:56px;padding:8px 24px;background:var(--bar-bg);color:var(--bar-ink);position:sticky;top:0;z-index:20}.brand-logo{height:28px;display:block}.app-name{display:flex;flex-direction:column;line-height:1.15;font-size:16px;font-weight:500;color:var(--bar-ink);flex:0 0 auto;white-space:nowrap}.app-version{font-size:12px;font-weight:400;opacity:.7}.topbar .spacer{flex:1}.topbar a{color:var(--bar-muted);text-decoration:none;font-size:14px;font-weight:500;padding:0 12px;min-height:36px;display:inline-flex;align-items:center;border-radius:999px;white-space:nowrap}.topbar a:hover{color:var(--bar-ink);background:#ffffff14}.topbar a.active{color:var(--bar-ink);background:#ffffff29}.topbar .whoami{color:var(--bar-muted);font-size:14px}.topbar .btn{background:transparent;color:var(--bar-muted);border-color:#ffffff2e}.topbar .btn:hover{color:var(--bar-ink);border-color:#fff6}.page{padding:18px 24px 56px;width:100%;max-width:1480px;margin:0 auto}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 16px;border:1px solid var(--line);background:var(--card);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;letter-spacing:.01em;color:var(--md-primary-ink)}.btn:hover{background:var(--accent-soft)}.btn:active{background:#4298ff2e}.btn:disabled{color:var(--text-disabled);background:var(--card);cursor:default}.btn.primary{background:var(--md-primary);border-color:var(--md-primary);color:var(--md-on-primary)}.btn.primary:hover{background:var(--md-primary-dark);border-color:var(--md-primary-dark)}.btn.primary:active{background:var(--md-primary-dark);filter:brightness(.94)}.btn.primary:disabled{background:#0000001f;border-color:transparent;color:var(--text-disabled);box-shadow:none;filter:none}.btn.danger-ghost{color:var(--danger)}.btn.danger-ghost:hover{background:var(--danger-soft);border-color:var(--danger)}:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 1px var(--md-primary-ink),0 0 0 4px var(--accent-soft)}input:hover,select:hover{border-color:var(--text-2)}input:focus,select:focus,textarea:focus{border-color:var(--md-primary-ink);outline:none}.field{display:flex;flex-direction:column;gap:4px}.field span{font-size:12px;color:var(--text-2);letter-spacing:.03em;font-weight:500}.field input,.field select{border:1px solid var(--line);border-radius:8px;padding:0 12px;min-width:0;min-height:36px}.filterbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:12px 0 16px}.filterbar .field{min-width:120px}.react-grid-item.react-grid-placeholder{background:var(--accent-soft);border-radius:var(--radius)}.widget{height:100%;display:flex;flex-direction:column;background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-1);overflow:hidden;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.widget:hover{box-shadow:var(--elev-2)}.widget-head{display:flex;align-items:center;gap:8px;padding:16px 16px 8px}.widget-title{font-size:20px;font-weight:500;margin:0;letter-spacing:.0075em;line-height:1.2}.widget-sub{font-size:12px;color:var(--text-2);letter-spacing:.033em}.widget-body{flex:1;overflow:auto;padding:var(--widget-pad-top) 16px 14px}.widget-sticky{position:sticky;top:calc(-1 * var(--widget-pad-top));z-index:3;background:var(--card)}.widget-body table.data th{top:calc(-1 * var(--widget-pad-top))}.widget-head .tools{margin-left:auto;display:flex;gap:4px}.widget-head .tools .btn{padding:2px 9px;font-size:14px}.drag-handle{cursor:grab;color:var(--text-3);-webkit-user-select:none;user-select:none}.edit-hint{font-size:14px;color:var(--text-3);margin:4px 0 8px}.hbar-row{display:grid;grid-template-columns:minmax(150px,38%) 1fr;gap:10px;align-items:center;padding:3.5px 0}.hbar-label{font-size:14px;color:var(--text-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;word-break:break-word}.hbar-track{display:flex;align-items:center;gap:8px;min-width:0}.hbar{height:16px;max-height:24px;background:var(--accent);border-radius:0 4px 4px 0;min-width:2px;flex:none;transition:width .25s ease}@media(prefers-reduced-motion:reduce){.hbar{transition:none}}.hbar-value{font-size:14px;color:var(--text-1);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.hbar-extra{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-weight:500;padding:8px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1;line-height:1.5}table.data td{padding:8px;border-bottom:1px solid var(--line-soft)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data tbody tr:hover td{background:var(--accent-soft)}table.data tr:last-child td{border-bottom:none}table.data a{color:var(--accent-ink);text-decoration:none;font-weight:500}table.data a:hover{text-decoration:underline}.kpi{display:flex;flex-direction:column;justify-content:center;height:100%;gap:3px}.kpi .kpi-value{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}.kpi .kpi-label{font-size:14px;color:var(--text-2);display:flex;align-items:center;gap:7px}.kpi .kpi-label:before{content:"";width:14px;height:3px;border-radius:2px;background:var(--accent)}.points-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.point-tile{background:var(--surface-2);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0;border:1px solid transparent;cursor:pointer;text-align:left;font:inherit}.point-tile:hover{border-color:var(--accent);box-shadow:var(--elev-2)}.point-tile:active{box-shadow:var(--elev-4)}.point-tile.open{border-color:var(--accent);background:var(--accent-soft)}.point-leads{margin-top:12px;border-top:2px solid var(--accent-soft);padding-top:10px;animation:fade-slide .22s ease both}@keyframes fade-slide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.point-leads-list{display:flex;flex-direction:column}.point-lead{display:flex;align-items:baseline;gap:10px;padding:5px 8px;border-radius:8px;border-bottom:1px solid var(--line-soft);transition:background-color .14s ease}.point-lead:last-child{border-bottom:none}.point-lead:hover{background:var(--accent-soft)}.point-lead-name{font-size:14px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.point-lead-links{margin-left:auto;display:flex;gap:12px;white-space:nowrap}.point-lead-links a{color:var(--accent-ink);text-decoration:none;font-size:14px;font-weight:500}.point-lead-links a:hover{text-decoration:underline}.point-tile-label{font-size:12px;color:var(--text-3);font-weight:500;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}.point-tile-value{font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.point-tile-sub{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.hint{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--line);color:var(--text-3);font-size:12px;font-style:normal;cursor:help;flex:none}.hint:hover{color:var(--accent-ink);border-color:var(--accent-ink)}.unit-switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.unit-switch button{border:none;background:transparent;padding:0 12px;min-height:32px;font-size:14px;font-weight:500;cursor:pointer;color:var(--text-2);white-space:nowrap}.unit-switch button.active{background:var(--md-primary);color:var(--md-on-primary)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--text-2);margin:2px 0 10px}.legend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}.group-row{display:grid;grid-template-columns:minmax(120px,34%) 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-soft)}.group-row:last-child{border-bottom:none}.cmp-row{display:grid;grid-template-columns:minmax(120px,30%) 1fr auto;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line-soft)}.cmp-row:last-child{border-bottom:none}.cmp-track{position:relative;min-width:0}.cmp-baseline{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line-soft)}.cmp-total{position:absolute;left:0;top:50%;transform:translateY(-50%);height:14px;min-width:0;border-radius:0 4px 4px 0;background:color-mix(in srgb,var(--series-total) 38%,transparent)}.cmp-dot{position:absolute;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--card)}.cmp-nums{display:flex;gap:12px;align-items:baseline;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.cmp-num{color:var(--text-2);display:inline-flex;align-items:center;gap:4px;min-width:34px;justify-content:flex-end}.cmp-num.total{color:var(--text-1);font-weight:500}.cmp-num .dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dropdown{position:relative}.dropdown summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none}.dropdown summary::-webkit-details-marker{display:none}.dropdown-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px;min-width:240px;max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:2px}.dropdown-item{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px 6px;border-radius:6px;cursor:pointer}.dropdown-item:hover{background:var(--accent-soft)}.cmp-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:10px}.cmp-controls .field input,.cmp-controls .field select{padding:4px 8px;font-size:14px}table.data.trend td{min-width:52px}.empty,.error-box{padding:20px 0;color:var(--text-2);font-size:14px}.error-box{color:var(--danger)}.skeleton{border-radius:8px;background:var(--surface-2);height:14px;margin:8px 0;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--surface)}.login-card{width:min(360px,100%);background:var(--card);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--elev-8)}.login-card h1{font-size:24px;font-weight:400;margin:0 0 8px;display:flex;align-items:center;gap:8px}.login-card h1:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.panel{background:var(--card);border-radius:var(--radius);padding:24px;margin-bottom:16px;box-shadow:var(--elev-1)}.panel h2{font-size:20px;font-weight:500;margin:0 0 16px}.ai-text{white-space:pre-wrap;font-size:14px;line-height:1.62;overflow:auto;padding-right:4px}code{font-family:Roboto Mono,ui-monospace,SFMono-Regular,monospace;font-size:12px;background:var(--surface-2);padding:.1em .35em;border-radius:4px}.lead-facts{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px}.notes-list{display:flex;flex-direction:column;gap:8px}.note-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.note-card.pinned{border-color:var(--accent);background:var(--accent-soft)}.note-head{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}.note-type{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.pin-badge{font-size:12px;font-weight:500;color:var(--accent-ink)}.note-body{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.panel.insight{border-left:3px solid var(--accent)}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border-radius:999px;padding:3px 10px;font-size:14px;color:var(--text-2)}.chip b{color:var(--text-1);font-variant-numeric:tabular-nums}.link-btn{border:none;background:none;padding:0;cursor:pointer;color:var(--md-primary-ink);font-size:inherit;font-weight:500;text-decoration:none}.link-btn:hover{text-decoration:underline}.score-method{background:var(--surface-2);border-radius:10px;padding:10px 14px;font-size:14px;color:var(--text-2);margin-bottom:10px}.score-method li{margin:2px 0}.score-row{border-bottom:1px solid var(--line-soft)}.score-row:last-child{border-bottom:none}.score-head{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;padding:8px 2px;cursor:pointer;text-align:left}.score-head:hover{background:var(--accent-soft);border-radius:8px}.score-num{font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;min-width:40px}.score-name{font-size:14px;font-weight:500;flex:0 0 200px;min-width:0;overflow:hidden;text-overflow:ellipsis}.score-track{position:relative;flex:1;height:10px;border-radius:5px;background:var(--surface-2);overflow:hidden;min-width:60px}.score-fill{position:absolute;left:0;top:0;bottom:0;border-radius:5px}.score-goal{position:absolute;left:80%;top:0;bottom:0;width:2px;background:var(--text-3);opacity:.6}.score-detail{padding:2px 2px 12px 52px}.score-comps{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:8px}.score-comp{display:flex;align-items:baseline;gap:6px;font-size:14px;color:var(--text-2)}.score-comp b{font-variant-numeric:tabular-nums}.score-insights{margin:0;padding-left:18px;font-size:14px}.score-insights li{margin:3px 0}.cat-details summary{list-style:none;cursor:pointer}.cat-details summary::-webkit-details-marker{display:none}.cat-details summary:hover{background:var(--accent-soft);border-radius:6px}.cat-expl{padding:4px 8px 8px;font-size:14px;color:var(--text-2)}.cat-expl p{margin:0 0 6px}.widget-picker{min-width:340px;max-width:420px;max-height:380px;left:0;right:auto}.picker-item{display:flex;flex-direction:column;gap:2px;text-align:left;border:none;background:none;padding:8px 10px;border-radius:8px;cursor:pointer}.picker-item:hover{background:var(--accent-soft)}.picker-head{display:flex;align-items:center;gap:8px;font-size:14px}.picker-badge{font-size:12px;font-weight:500;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:1px 8px}.picker-hint{font-size:12px;color:var(--text-3);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stack{display:flex;flex-direction:column;gap:12px}.stack .widget{min-height:120px;max-height:70vh}.tablewrap{overflow-x:auto}@media(max-width:760px){.topbar{padding:8px 8px 8px 16px;gap:8px}.brand-logo{height:24px}.page{padding:12px 12px 40px}.filterbar{gap:8px;padding:10px 0 12px}.filterbar .field{min-width:calc(50% - 8px);flex:1}.filterbar .field input,.filterbar .field select{width:100%}.lead-facts{gap:12px}.fields-grid{grid-template-columns:1fr}.hbar-row{grid-template-columns:minmax(110px,42%) 1fr;gap:6px}.hbar-track{flex-wrap:wrap;row-gap:2px}.hbar-track .hbar{flex:1 1 100%}.cmp-row{grid-template-columns:minmax(90px,34%) 1fr}.cmp-nums{display:none}.score-detail{padding-left:8px}.score-name{min-width:0}.widget-picker{min-width:260px;max-width:88vw}.kpi .kpi-value{font-size:24px}table.data{font-size:14px}.panel{padding:14px}}.dropdown-menu{animation:fade-slide .18s ease both}.cat-expl,.score-detail{animation:fade-slide .2s ease both}.dropdown-item{transition:background-color .14s ease,transform .14s ease}.chip{border:1px solid transparent;transition:border-color .16s ease,transform .16s ease,box-shadow .2s ease}.chip:hover{border-color:var(--line);background:var(--accent-soft)}.hbar-row{border-radius:6px;transition:background-color .14s ease}.hbar-row:hover{background:var(--accent-soft)}.hbar-row:hover .hbar{filter:brightness(1.08)}table.data tbody td{transition:background-color .12s ease}table.data a{position:relative}table.data a:hover{text-decoration:none;color:var(--accent)}.unit-switch button{transition:background-color .16s ease,color .16s ease}.unit-switch button:hover:not(.active){background:var(--accent-soft);color:var(--accent-ink)}.score-head{border-radius:8px;transition:background-color .16s ease,transform .16s ease}.score-goal{background:var(--orange);opacity:.85}.pin-badge{color:var(--orange)}.hint{transition:color .16s ease,border-color .16s ease,transform .16s ease}.link-btn{transition:color .14s ease}.link-btn:hover{color:var(--accent)}.note-card{transition:border-color .18s ease,box-shadow .2s ease}.note-card:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}.login-card{animation:page-in .4s ease both}.kpi .kpi-value{transition:transform .2s ease}.cmp-dot{transition:transform .15s ease}.cmp-row{transition:background-color .14s ease;border-radius:6px}.cmp-row:hover{background:var(--accent-soft)}.cat-details summary{transition:background-color .14s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.btn:hover,.topbar a:hover,.point-tile:hover,.picker-item:hover,.score-head:hover,.chip:hover,.dropdown-item:hover{transform:none}}a.point-lead-name{color:var(--accent-ink);text-decoration:none}a.point-lead-name:hover{color:var(--accent);text-decoration:underline}.point-lead-blocker{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.note-attach-img{display:block;max-width:280px;max-height:210px;border-radius:10px;border:1px solid var(--line);object-fit:cover;margin-bottom:6px;transition:transform .18s ease,box-shadow .2s ease}.note-attach-img:hover{box-shadow:var(--elev-4)}.note-attach-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.note-attach-link{color:var(--accent-ink);text-decoration:none;font-size:14px;font-weight:500}.note-attach-link:hover{color:var(--accent);text-decoration:underline}.pace-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}.pace-dot.ok{background:var(--ok)}.pace-dot.warn{background:var(--orange)}.pace-dot.late{background:var(--danger)}.pace-text.ok{color:var(--ok)}.pace-text.warn{color:var(--warn-ink)}.pace-text.late{color:var(--danger)}.pace-row.warn td:first-child{box-shadow:inset 3px 0 0 var(--orange)}.pace-row.late td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.kpi b.late{color:var(--danger)}.kpi-sub-of{font-size:16px;font-weight:500;color:var(--text-3)}.prog-group{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:8px 0}.prog-lead{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:6px}.prog-lead a{color:var(--accent-ink);font-weight:700;text-decoration:none}.prog-lead a:hover{text-decoration:underline}.next-step{font-size:14px;font-weight:500;color:var(--warn-ink);background:var(--orange-soft);border-radius:999px;padding:2px 10px}.next-step.overdue{color:var(--danger);background:var(--danger-soft)}.prog-task{font-size:14px;padding:2px 0}.prog-task .ok{color:var(--ok);font-weight:500}.prog-amo-block{margin-top:6px;border-top:1px dashed var(--line);padding-top:6px}.prog-amo{font-size:14px;padding:1px 0;overflow-wrap:anywhere}.prog-done{display:flex;flex-direction:column;gap:2px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:500;letter-spacing:.03em;font-variant-numeric:tabular-nums;margin-left:6px;white-space:nowrap}.pill.ok{color:var(--ok);background:var(--ok-soft)}.pill.warn{color:var(--warn-ink);background:var(--orange-soft)}.pill.danger{color:var(--danger);background:var(--danger-soft)}.pill.muted{color:var(--text-2);background:var(--surface-2)}.bullet{position:relative;display:block;height:6px;margin-top:5px;background:var(--surface-2);border-radius:3px;overflow:visible;min-width:90px}.bullet-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px}.bullet-tick{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text-2);border-radius:1px}.kpi-delta{font-size:16px;font-weight:700;margin-left:10px;vertical-align:4px}.kpi-delta.ok{color:var(--ok)}.kpi-delta.danger{color:var(--danger)}.kpi-delta.muted{color:var(--text-3)}.stuck-summary{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;font-size:14px;padding:4px 0 10px}.stuck-summary b{font-variant-numeric:tabular-nums}.gauges{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:flex-start;justify-content:center;padding:6px 0}.gauge{text-align:center}.gauge-arc{transition:stroke-dasharray .6s ease}.gauge-value{font-size:24px;font-weight:700;fill:var(--text-1)}.gauge-expected{font-size:12px;fill:var(--text-2)}.gauge-label{font-size:14px;color:var(--text-2);margin:2px auto 0;max-width:190px;line-height:1.3;text-wrap:balance}.gauge-note{display:block;color:var(--text-3)}.gauge-foot{flex-basis:100%;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bullet{max-width:150px}.trend{font-size:12px;font-weight:700;margin-left:6px;white-space:nowrap;font-variant-numeric:tabular-nums}.trend.ok{color:var(--ok)}.trend.danger{color:var(--danger)}.trend.muted{color:var(--text-3)}.gauge-verdict{flex-basis:100%;text-align:center}.gauge-verdict .pill{margin-left:0;font-size:14px;padding:3px 12px}.score-role{display:block;font-size:12px;font-weight:500;color:var(--text-3);line-height:1.3}.sql-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}@media(max-width:900px){.sql-layout{grid-template-columns:1fr}}.sql-editor{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.sql-editor .cm-editor{outline:none}.sql-result td{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sql-schema .widget-body{max-height:78vh;overflow-y:auto}.sql-table{border-bottom:1px solid var(--line);padding:4px 0}.sql-table>summary{cursor:pointer;font-weight:500;padding:4px 0}.sql-table>summary code{font-size:14px}.sql-table-desc{margin:2px 0 6px}.sql-cols{display:flex;flex-direction:column;gap:2px;padding:0 0 8px}.sql-col{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:baseline;text-align:left;border:0;background:none;padding:5px 6px;border-radius:6px;cursor:pointer;font:inherit;color:var(--text-1)}.sql-col:hover{background:var(--surface-2)}.sql-col code{font-size:14px}.sql-col-type{font-size:12px;color:var(--text-3);white-space:nowrap}.sql-col-desc{font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.head-spacer{flex:1}.method-btn{width:28px;height:28px;border-radius:50%;border:0;background:transparent;color:var(--text-2);cursor:pointer;font-style:italic;font-family:Georgia,serif;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background-color .16s ease,color .16s ease,border-color .16s ease;flex:0 0 auto}.method-btn:hover{background:var(--accent-soft);color:var(--md-primary-ink)}.method-btn:active{background:#193d9129}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000052;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .18s ease}.modal{background:var(--card);border-radius:var(--radius);max-width:760px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--elev-24);animation:rise-in .2s cubic-bezier(0,0,.2,1)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:20px;font-weight:500}.modal-body{padding:16px 24px 20px;overflow-y:auto;white-space:pre-wrap;font-size:16px;line-height:1.5;letter-spacing:.03em;color:var(--text-1)}.modal-head{align-items:flex-start}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:8px 16px;border-top:1px solid var(--line)}.modal.whatsnew .modal-body{white-space:normal}.release-list{margin:4px 0 14px;padding-left:20px}.release-list li{margin-bottom:6px}.release-list.fixes li::marker{color:var(--ok)}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}}.page.crm{max-width:none;width:100%}.crm-board{display:flex;gap:10px;overflow-x:auto;padding-bottom:14px;align-items:stretch;min-height:calc(100vh - 175px)}.crm-col{flex:0 0 255px;background:var(--surface-2);border-radius:12px;padding:0 8px 8px;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 185px);overflow-y:auto}.crm-col.drag-over{outline:2px dashed var(--accent);outline-offset:-2px}.crm-col.escalation{background:var(--orange-soft)}.crm-col-head{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;font-weight:700;padding:8px 4px 6px;position:sticky;top:0;background:var(--surface-2);z-index:2;border-radius:12px 12px 0 0}.crm-col.escalation .crm-col-head{background:var(--orange-soft)}.crm-card{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--card);border:0;border-radius:10px;box-shadow:var(--elev-1);padding:8px 12px;cursor:grab;font:inherit;color:var(--text-1);transition:box-shadow .16s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.crm-card:active{cursor:grabbing}.crm-card:hover{box-shadow:var(--elev-4)}.crm-card:active{box-shadow:var(--elev-8)}.crm-card-name{font-size:14px;font-weight:500;line-height:1.3}.crm-card-row{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:12px}.crm-chip{display:inline-flex;font-size:12px;font-weight:500;letter-spacing:.03em;border-radius:999px;padding:2px 8px;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.crm-chip.danger{background:var(--danger-soft);color:var(--danger)}.crm-chip.warn{background:var(--orange-soft);color:var(--warn-ink)}.crm-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#00000052;display:flex;justify-content:flex-end;animation:fade-in .18s ease}.crm-panel{width:min(75%,1500px);max-width:96%;height:100%;background:var(--surface);box-shadow:var(--elev-16);display:flex;flex-direction:column;animation:slide-in .25s cubic-bezier(0,0,.2,1)}.crm-panel.narrow{width:min(640px,96%)}@media(max-width:900px){.crm-panel,.crm-panel.narrow{width:100%;max-width:100%}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.city-hours{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:4px;max-width:420px}.city-hours-day span{white-space:nowrap}.city-hours-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 2px;border-radius:6px;background:var(--surface-2);font-size:12px;line-height:1.25;font-variant-numeric:tabular-nums;border:1px solid transparent}.city-hours-day b{font-weight:500;color:var(--text-2)}.city-hours-day.off{background:var(--md-error-50);color:var(--md-error)}.city-hours-day.off b{color:var(--md-error)}.city-hours-day.today{border-color:var(--md-primary-ink)}.city-rating{display:inline-flex;align-items:center;gap:6px}.city-stars{position:relative;display:inline-block;color:var(--line);font-size:16px;letter-spacing:1px;line-height:1}.city-stars:before{content:"★★★★★";position:absolute;inset:0 auto 0 0;width:var(--fill);overflow:hidden;white-space:nowrap;color:var(--md-gold)}.city-poi-links{margin-top:16px}.city-poi-links ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.city-poi-links a{display:inline-flex;align-items:center;min-height:32px;color:var(--md-primary-ink);overflow-wrap:anywhere}@keyframes slide-in{0%{transform:translate(30px);opacity:0}}.crm-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:16px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;background:var(--surface)}.crm-panel-body{flex:1 1 auto;min-height:0;padding:16px 24px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.crm-stageline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.crm-h{margin:16px 0 4px;font-size:14px;font-weight:500;letter-spacing:.007em;color:var(--md-primary-ink)}.crm-header-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.crm-panel-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:22px;align-items:start}.crm-col-main,.crm-col-side{display:flex;flex-direction:column;gap:8px;min-width:0}.crm-col-side{border-left:1px solid var(--line-soft);padding-left:20px}@media(max-width:1200px){.crm-panel-cols{grid-template-columns:1fr}.crm-col-side{border-left:0;padding-left:0;border-top:1px solid var(--line-soft);padding-top:10px}}.crm-hfield{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-2)}.crm-hfield input,.crm-hfield select{font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1)}.crm-src{color:var(--accent);cursor:help}.crm-chips{display:flex;flex-wrap:wrap;gap:6px}.crm-task{display:flex;gap:8px;align-items:center;font-size:14px}.crm-overdue{color:var(--danger);font-weight:500}.crm-newtask{display:flex;flex-direction:column;gap:6px}.crm-newtask-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.crm-newtask input,.crm-newtask select{font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-1);min-width:0;max-width:100%}.crm-newtask>input{width:100%;box-sizing:border-box}.crm-newnote{display:flex;gap:8px;align-items:flex-start}.crm-newnote textarea{flex:1;font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-1);resize:vertical}.crm-activity{border-top:1px solid var(--line-soft);padding:6px 0;display:flex;flex-direction:column;gap:2px}.crm-activity-meta{font-size:12px;color:var(--text-3)}.crm-note-body{white-space:pre-wrap;font-size:14px}.crm-badges{display:inline-flex;gap:3px;margin-left:6px;vertical-align:1px}.crm-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:500;line-height:1;flex:0 0 auto}.crm-badge.sprint{background:var(--accent-soft);color:var(--md-primary-ink)}.crm-badge.stuck{background:var(--orange-soft);color:var(--warn-ink)}.crm-badge.overdue{background:var(--danger-soft);color:var(--danger)}.crm-legend{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--text-3);margin-left:auto}.crm-moverow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.crm-moverow select,.crm-moverow input{font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-1);max-width:100%}.crm-ownerrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.crm-ownerrow select{font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-1)}.crm-insight p{margin:2px 0 6px;font-size:14px}.uni-brief-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.uni-brief-facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0 0 8px;font-size:14px}.uni-brief-facts dt{color:var(--text-2)}.uni-brief-facts dd{margin:0;overflow-wrap:anywhere}.laundry-dorms{margin:4px 0 8px;padding-left:20px;font-size:14px}.laundry-dorms li{margin:2px 0}.laundry-by-dorm{display:flex;flex-direction:column;gap:4px}.crm-jira-row{font-size:14px;padding:3px 0;border-top:1px solid var(--line-soft)}.crm-jira-row.done{color:var(--text-2)}.crm-jira-row b{color:var(--accent-ink, var(--accent))}.crm-note-body p{margin:2px 0}.crm-note-body ul{margin:4px 0;padding-left:18px}.crm-note-body code{background:var(--surface-2);border-radius:4px;padding:0 4px;font-size:14px}.crm-dorm{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px}.crm-dorm-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:4px}.crm-inline-num{width:72px;font:inherit;min-height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1)}.crm-chip.tag{background:var(--accent-soft);color:var(--md-primary-ink)}.crm-jira-row.level-1{padding-left:18px}.crm-jira-row.level-2{padding-left:36px}.crm-jira-row.level-3{padding-left:54px}.crm-jira-type{display:inline-block;width:14px;color:var(--text-3)}.crm-jira-row a{text-decoration:none}.crm-jira-row a:hover b{text-decoration:underline}.crm-move-switch button{border:none;font:inherit;font-size:14px;font-weight:500;min-height:36px;padding:0 16px;cursor:pointer;transition:filter .16s ease}.crm-move-switch button:hover{filter:brightness(.95)}.crm-move-switch .crm-move-back{background:var(--danger-soft);color:var(--danger)}.crm-move-switch .crm-move-fwd{background:var(--ok-soft);color:var(--ok)}.crm-move-switch button:disabled{opacity:.5;cursor:default}input,select,textarea,button,option{font-family:inherit}.crm-search{font:inherit;min-height:36px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text-1);min-width:220px}.crm-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--md-snackbar);color:#ffffffde;border:0;border-radius:4px;padding:14px 16px;z-index:1100;display:flex;gap:12px;align-items:center;box-shadow:var(--elev-8);animation:rise-in .2s cubic-bezier(0,0,.2,1);font-size:14px;max-width:90vw}.crm-col.drop-warn{outline:2px dashed var(--orange);outline-offset:-2px;opacity:.75}.crm-col-empty{border:1.5px dashed var(--line);border-radius:10px;padding:18px 10px;text-align:center;font-size:14px;color:var(--text-3)}.crm-saved{color:var(--ok);font-size:12px;margin-left:6px}.crm-field-err{color:var(--danger);font-size:12px}.crm-hfield input[aria-invalid=true]{border-color:var(--danger)}.crm-h.danger{color:var(--danger)}.crm-tasksview{max-width:860px}.crm-tasksview .crm-task{padding:4px 0;border-top:1px solid var(--line-soft);flex-wrap:wrap}.gear{font-size:20px;text-decoration:none;opacity:.85;padding:2px 6px;border-radius:8px;transition:opacity .16s ease,background-color .16s ease}.gear:hover{opacity:1;background:#ffffff24}.crm-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}.crm-dict-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:5px 0;border-top:1px solid var(--line-soft);font-size:14px}.crm-dict-row.inactive>span:first-child{color:var(--text-3);text-decoration:line-through}.crm-dict-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.crm-dict-add input[type=text],.crm-dict-add input:not([type]){flex:1;min-width:160px;font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1)}.db-stats{display:flex;flex-wrap:wrap;gap:8px 24px;padding:4px 0 10px;font-size:14px}.db-stats b{font-variant-numeric:tabular-nums}.db-stats em{font-style:normal;color:var(--warn-ink)}.db-table td{padding-top:6px;padding-bottom:6px}.db-name{text-align:left;font-weight:500}.db-cell{display:inline-flex;align-items:center;gap:4px}.db-cell input{font:inherit;font-size:14px;min-height:32px;padding:0 8px;width:130px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-1)}.db-cell input:hover{border-color:var(--line);background:var(--surface)}.db-cell input:focus{border-color:var(--accent);background:var(--card)}.db-cell input.err{border-color:var(--danger)}.db-select{font:inherit;font-size:14px;min-height:32px;padding:0 6px;border:1px solid var(--line-soft);border-radius:8px;background:transparent;color:var(--text-1)}.db-select:hover,.db-select:focus{border-color:var(--line);background:var(--surface)}.db-preset{border-radius:999px;font-size:14px}.db-preset.active{background:var(--md-primary);color:var(--md-on-primary);border-color:var(--md-primary)}.db-pager{display:flex;gap:12px;align-items:center;justify-content:center;padding:12px 0}.db-create{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;background:var(--card);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--elev-1)}.db-create input{font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1);min-width:140px}.db-tristate{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);font:inherit;font-size:14px;font-weight:700;cursor:pointer;line-height:1;background:var(--card);color:var(--text-2);padding:0}.db-tristate.yes{background:var(--ok-soft);color:var(--ok);border-color:transparent}.db-tristate.no{background:var(--danger-soft);color:var(--danger);border-color:transparent}.db-utils{white-space:nowrap}.db-utils .db-tristate{margin-right:3px}.db-tristate-row{display:flex;flex-wrap:wrap;gap:8px 18px}.db-tristate-item{display:inline-flex;gap:6px;align-items:center;font-size:14px}.db-status.suitable{color:var(--ok);font-weight:700}.db-status.unsuitable{color:var(--danger);font-weight:700}.db-status.inspected{color:var(--accent);font-weight:700}.db-status.active{color:var(--brand-navy);font-weight:700}.prog-attach-img{max-width:180px;max-height:120px;border-radius:8px;border:1px solid var(--line);display:block;margin:2px 0}.norms-grid{display:grid;grid-template-columns:1fr 90px 110px;gap:8px 12px;align-items:center}.norms-grid .norms-name{font-size:14px}.norms-grid input{font:inherit;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1);width:100%;box-sizing:border-box;text-align:right}.img-btn{border:0;background:none;padding:0;cursor:zoom-in;display:block}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0c142ad1;display:flex;align-items:center;justify-content:center;padding:32px;animation:fade-in .16s ease}.lightbox-figure{margin:0;display:flex;flex-direction:column;gap:8px;align-items:center;max-width:100%;max-height:100%}.lightbox-img{max-width:min(1100px,92vw);max-height:82vh;border-radius:10px;box-shadow:0 24px 64px #00000073;background:#fff}.lightbox-figure figcaption{display:flex;gap:14px;align-items:center;color:#fff;font-size:14px}.lightbox-tools{position:fixed;top:18px;right:22px;display:flex;gap:8px}.lightbox-btn{width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;background:#ffffff29;color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;text-decoration:none}.lightbox-btn:hover{background:#ffffff47;color:#fff}.note-attach{display:flex;flex-direction:column;gap:6px}.note-attach.compact{gap:4px}.note-attach-img{max-width:320px;max-height:220px;border-radius:8px;display:block}.note-attach.compact .note-attach-img{max-width:220px;max-height:150px}.audio-player{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.audio-player audio{height:32px;max-width:min(320px,100%)}.call-line{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.note-link{color:var(--accent-ink);overflow-wrap:anywhere}.prog-sticky{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px;padding:6px 0 8px;border-bottom:1px solid var(--line-soft)}.kpi-hint{font-size:12px;color:var(--text-3);line-height:1.4;margin-top:4px;display:block}.prog-rings{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 26px;padding:6px 0 12px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}.prog-rings .gauge-value{font-size:20px}.prog-rings .gauge-expected{font-size:11px}.prog-rings-legend{display:flex;flex-direction:column;gap:6px;margin-left:auto;align-items:flex-start}.prog-rings-legend span{display:inline-flex;align-items:center;gap:6px}.ring-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.ring-dot.solid{background:var(--accent)}.ring-dot.pale{background:color-mix(in srgb,var(--accent) 28%,transparent)}.db-drill{font:inherit;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--line);border-radius:999px;min-height:28px;padding:0 12px;background:var(--card);color:var(--md-primary-ink);white-space:nowrap;transition:border-color .16s ease,background-color .16s ease}.db-drill:hover{border-color:var(--accent);background:var(--accent-soft)}.db-drill.ok{color:var(--ok)}.db-drill.danger{color:var(--danger)}.db-drill.tag{color:var(--md-primary-ink)}.db-add{font-size:14px;min-height:28px;padding:0 10px}.db-focus{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;background:var(--accent-soft);color:var(--md-primary-ink);border-radius:999px;min-height:32px;padding:0 4px 0 12px}.db-focus-clear{border:0;background:#0000000f;color:inherit;cursor:pointer;width:24px;height:24px;border-radius:50%;font-size:12px;line-height:1}.db-focus-clear:hover{background:#0000001f}.db-tablewrap{background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-1);overflow:auto;max-height:calc(100vh - 260px)}.db-tablewrap table.data{background:var(--card);table-layout:fixed}.db-tablewrap thead th{position:sticky;top:0;z-index:2;background:var(--card);border-bottom:1px solid var(--line);padding-right:10px}.db-tablewrap tbody tr{background:var(--card)}.db-tablewrap tbody tr:hover{background:var(--accent-soft)}.db-tablewrap tbody td{border-bottom:1px solid var(--line-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-th{cursor:default;-webkit-user-select:none;user-select:none}.db-th.sortable{cursor:pointer}.db-th.sortable:hover{color:var(--accent)}.db-col-resizer{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none}.db-col-resizer:hover,body.col-resizing .db-col-resizer{background:var(--accent);opacity:.35}.db-tablewrap th{position:relative}body.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.db-sentinel{display:flex;justify-content:center;padding:12px 0 4px;min-height:20px}.db-back{border-radius:999px}.access-table th.access-col,.access-table td.access-col{text-align:center;width:92px}.access-table th.access-col{font-weight:500;line-height:1.25}.access-cell{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.access-cell input{width:16px;height:16px;cursor:pointer}.access-dot{position:absolute;top:-3px;right:-6px;width:6px;height:6px;border-radius:50%;background:var(--accent-ink)}.access-table tr.muted-row td{opacity:.55}.refresh-btn{font-size:16px;line-height:1}.refresh-error{color:var(--danger)}.refresh-btn.spinning{animation:spin .8s linear infinite;opacity:.6}@keyframes spin{to{transform:rotate(360deg)}}.is-pending{pointer-events:none;cursor:progress}.is-pending-anchor{position:relative}.is-pending:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;background:var(--pending-mask)}.is-pending:before{content:"";position:absolute;z-index:2;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid var(--md-primary-ink);border-right-color:transparent;border-radius:50%;box-sizing:border-box;animation:spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.refresh-btn.spinning{animation:none}}.field-with-actions{display:inline-flex;align-items:center;gap:6px;width:100%}.field-with-actions>input,.field-with-actions>textarea{flex:1;min-width:0}.cell-actions{display:inline-flex;gap:4px;flex:0 0 auto}.btn-save,.btn-cancel{width:32px;height:32px;padding:0;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;border:1px solid transparent}.btn-save{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.btn-cancel{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.btn-save:hover:not(:disabled){background:var(--ok);color:#fff}.btn-cancel:hover:not(:disabled){background:var(--danger);color:#fff}.btn-save:disabled,.btn-cancel:disabled{opacity:.5;cursor:default}#root{min-height:100vh;display:flex;flex-direction:column}#root>div:not([hidden]){flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.page{flex:1 1 auto}@media(max-width:760px){.btn-save,.btn-cancel{width:40px;height:40px;font-size:18px}}.versions-list{display:flex;flex-direction:column;gap:14px}.versions-list .widget-head{align-items:baseline;gap:10px;flex-wrap:wrap}.release-list.patches li{margin-bottom:10px}.patch-meta{display:inline-block;min-width:108px;color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12px}.analyst{display:flex;flex-direction:column;height:100%;min-height:0;gap:8px}.analyst-log{flex:1 1 auto;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:10px}.analyst-hello{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.analyst-example{font-size:14px;text-align:left}.analyst-msg{max-width:92%}.analyst-msg.user{align-self:flex-end;background:var(--accent-soft);color:var(--text-1);padding:8px 12px;border-radius:12px 12px 2px}.analyst-msg.assistant{align-self:flex-start}.analyst-text{white-space:pre-wrap;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.analyst-steps{margin-top:6px;font-size:12px}.analyst-steps summary{cursor:pointer;color:var(--accent-ink)}.analyst-step{margin:6px 0 10px}.analyst-step pre{margin:4px 0;padding:8px;border-radius:8px;overflow-x:auto;background:var(--surface-2);font-size:12px;white-space:pre}.analyst-form{display:flex;gap:8px;align-items:center}.analyst-form input{flex:1;min-width:0;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.champ-star{color:var(--md-gold);font-size:1.05em;margin-left:4px;line-height:1}.champ-crown{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 6px;text-align:center}.champ-crown-icon{font-size:46px;line-height:1;animation:crown-bounce 2.4s ease-in-out infinite}.champ-crown-label{font-size:12px;color:var(--md-gold);font-weight:500}@keyframes crown-bounce{0%,to{transform:translateY(0) rotate(-4deg)}25%{transform:translateY(-6px) rotate(4deg)}50%{transform:translateY(0) rotate(-2deg)}75%{transform:translateY(-3px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.champ-crown-icon{animation:none}}.score-penalty{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:6px 0 4px;font-size:14px}.score-penalty b{color:var(--danger)}.no-students{color:var(--warn-ink);font-size:12px;white-space:nowrap}.champ-bee{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 6px;text-align:center}.champ-bee-icon{font-size:40px;line-height:1;animation:bee-fly 2.8s ease-in-out infinite}.champ-bee-label{font-size:12px;color:var(--md-gold);font-weight:500}@keyframes bee-fly{0%,to{transform:translate(0) rotate(-6deg)}20%{transform:translate(5px,-6px) rotate(6deg)}45%{transform:translate(-4px,-2px) rotate(-8deg)}70%{transform:translate(4px,-7px) rotate(5deg)}}@media(prefers-reduced-motion:reduce){.champ-bee-icon{animation:none}}.trophies{border-top:1px solid var(--line-soft);padding-top:10px;margin-top:4px}.trophies-title{margin:0 0 6px;font-size:14px;font-weight:500;color:var(--md-primary-ink)}.trophies-row{display:flex;flex-wrap:wrap;gap:14px 18px;align-items:flex-start}.trophy-star{display:flex;flex-direction:column;align-items:center;gap:2px;max-width:150px;text-align:center}.trophy-star-icon{font-size:34px;line-height:1;animation:star-shine 3s ease-in-out infinite}.trophy-star-point{font-size:12px;font-weight:500;color:var(--md-gold)}.trophy-star-lead{font-size:12px;color:var(--text-2);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@keyframes star-shine{0%,to{transform:scale(1) rotate(0);filter:brightness(1)}30%{transform:scale(1.18) rotate(-8deg);filter:brightness(1.25)}60%{transform:scale(1.05) rotate(6deg);filter:brightness(1.1)}}@media(prefers-reduced-motion:reduce){.trophy-star-icon{animation:none}}.boss-driver{font-size:14px;margin:4px 0 8px}.boss-advice{font-size:14px;margin-bottom:2px}.boss-team{margin-top:6px}.sr-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0 10px}.sr-select{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;max-width:100%}.sr-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;margin-bottom:12px}.sr-tile{padding:12px;border-radius:10px;background:var(--surface-2);min-width:0}.sr-tile-label{font-size:12px;color:var(--text-2)}.sr-tile-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.sr-tile-value.ok{color:var(--ok)}.sr-tile-value.warn{color:var(--warn-ink)}.sr-tile-value.danger{color:var(--danger)}.sr-table-wrap{overflow-x:auto;margin-bottom:6px}.sr-table td,.sr-table th{white-space:nowrap}.sr-table tr.sr-sep td{font-size:12px;color:var(--text-3);background:var(--surface-2);white-space:normal}.sr-pill{margin-left:6px;font-size:12px}.sr-score{font-variant-numeric:tabular-nums;white-space:nowrap}.sr-score .kpi-delta{font-size:14px;margin-left:6px;vertical-align:0}.sr-h3{margin:14px 0 6px}.sr-person{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:var(--card)}.sr-person>summary{padding:8px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sr-person>summary .sr-counters{flex:1 1 260px}.sr-person-body{padding:0 12px 10px}.sr-section{margin:6px 0}.sr-section>summary{font-weight:500;padding:4px 0}.sr-lead{margin:4px 0 4px 8px;padding-left:10px;border-left:2px solid var(--line)}.sr-lead>summary{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;padding:3px 0}.sr-lead-name{font-weight:500;color:var(--accent-ink)}.sr-lead-body{padding:4px 0 6px}.sr-goal{font-size:14px;padding:2px 0}.sr-goal-mark{color:var(--ok);font-weight:700}.sr-moves{margin-top:4px}.sr-move{font-size:14px;padding:1px 0}.pace-dot.muted{background:var(--text-3)}.sr .empty{padding:4px 0 8px}@media(max-width:760px){.sr-tiles{grid-template-columns:repeat(2,1fr)}.sr-person>summary .sr-counters{flex-basis:100%}}.dc-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0 6px;font-size:12px}.dc-cat{display:inline-flex;align-items:center;gap:5px;cursor:pointer;color:var(--text-2)}.dc-cat.off{opacity:.5}.dc-cat input{margin:0}.dc-swatch{display:inline-block;width:18px;height:0}.dc-svg{width:100%;height:auto;display:block}.dc-off{fill:var(--surface-2)}.dc-grid{stroke:var(--line-soft);stroke-width:1}.dc-axis{font-size:12px;fill:var(--text-3)}.dc-axis.off{fill:var(--text-3);opacity:.7}.dc-bar{fill:var(--accent);opacity:.55}.dc-bar:hover{opacity:.9}.sr-compare{display:grid;grid-template-columns:minmax(180px,220px) 1fr;gap:10px;align-items:center;margin-bottom:8px}.sr-compare select{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px}.sr-mini{font-size:14px}.sr-mini td,.sr-mini th{padding:6px 8px}.sr-rules{margin:6px 0;padding-left:18px;font-size:14px}.sr-rules li{padding:1px 0}.sr-speed{white-space:nowrap}.sr-speed .f{color:var(--ok);font-weight:500}.sr-speed .s{color:var(--danger);font-weight:500}.sr-move .speed-faster{color:var(--ok)}.sr-move .speed-slower{color:var(--danger)}.sr-move .speed-normal{color:var(--text-3)}.sr-print{margin-left:auto}.pr h1.pr-title{font-size:24px;margin:6px 0 2px}.pr h2{font-size:16px;margin:18px 0 6px}.pr-tools{display:flex;gap:12px;align-items:center;margin-bottom:8px}.pr-table{max-width:900px}.pr-table tr.pr-current td{font-weight:500;background:var(--accent-soft)}.pr-rules{padding-left:18px}.pr-comp{display:inline-block;margin-right:10px}.pr-lead{padding:6px 0 8px;border-bottom:1px solid var(--line-soft);break-inside:avoid}.pr-lead-head{margin-bottom:3px}@media print{.topbar,.sr-noprint,.filters,.page-tools{display:none!important}.page{padding:0;min-height:0}.pr,.pr-table{font-size:12px}a{color:inherit;text-decoration:none}}.point-lead.moved-on .point-lead-name{color:var(--text-2)}.points-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.db-range{display:inline-flex;align-items:center;gap:4px}.db-range input{width:80px;font:inherit;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1)}.db-stage{color:var(--accent-ink);text-decoration:none;font-weight:500}.db-stage:hover{text-decoration:underline}.filterbar select,.filterbar input{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.db-tablewrap thead th{font-size:12px}.db-cell input{border-color:var(--line-soft)}.db-select.dirty{border-color:var(--accent);background:var(--surface)}.db-tristate{color:var(--text-2)}.db-rooms-cell{display:inline-flex;gap:6px;align-items:center}.crm-panel-tools{display:inline-flex;gap:8px;align-items:center}.crm-dorm-tools{margin-left:auto;display:inline-flex;gap:6px}.form-inline{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:4px}.form-inline .btn{min-height:var(--field-h)}.form-inline .form-field{flex:1 1 140px;max-width:220px}.form-inline .form-hint{flex-basis:100%;margin-top:-2px}.db-textarea{font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1);width:100%}.btn-save-wide{background:var(--ok);color:#fff;border-color:var(--ok)}.btn-save-wide:hover:not(:disabled){background:var(--ok);filter:brightness(1.08)}.btn-cancel-wide{color:var(--danger);border-color:var(--danger)}.btn-save-wide:disabled,.btn-cancel-wide:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.db-select.err{border-color:var(--danger)}.panel-title{margin:0;font-size:20px;font-weight:500}.form-section{display:flex;flex-direction:column}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 16px}.form-field{display:flex;flex-direction:column;gap:4px;min-width:0}.form-field.wide{grid-column:1 / -1}.form-label{font-size:12px;font-weight:500;letter-spacing:.03em;color:var(--text-2)}.form-req{color:var(--danger)}.form-field input,.form-field select,.form-field textarea{font:inherit;min-height:var(--field-h);padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1);min-width:0;width:100%}.form-field textarea{padding:8px 12px;resize:vertical;line-height:1.5}.form-field input[aria-invalid=true],.form-field select[aria-invalid=true]{border-color:var(--danger)}.form-footer{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 24px;border-top:1px solid var(--line);background:var(--card)}.form-status{flex:1;font-size:12px;color:var(--text-2)}.form-footer .btn-save-wide,.form-footer .btn-cancel-wide{min-width:120px}.icon-btn{width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--text-2);cursor:pointer;font-size:18px;line-height:1;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--accent-soft);color:var(--text-1)}.icon-btn:active{background:#193d9129}.btn.text{border-color:transparent;background:transparent;padding:0 8px}.btn.text:hover{background:var(--accent-soft)}.btn.text.danger{color:var(--danger)}.btn.text.danger:hover{background:var(--danger-soft)}.btn.danger:not(.text){background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:not(.text):hover{background:var(--danger);filter:brightness(.9)}.modal.modal-sm{max-width:440px}.modal.modal-sm .modal-body{white-space:normal;font-size:14px;color:var(--text-2)}.modal.modal-sm .modal-body:empty{display:none}.modal.methodology .modal-body{font-size:14px}.city-help-btn{width:28px;height:28px;margin-left:auto;align-self:center;color:var(--text-2);font-style:italic;font-family:Georgia,serif;font-weight:700;font-size:16px}.city-help-btn:hover{color:var(--md-primary-ink)}.modal.city-help{max-width:980px}.modal.city-help .modal-body{white-space:normal;font-size:14px;line-height:1.6;letter-spacing:normal}.city-help-body{display:flex;flex-direction:column;gap:8px}.city-help-body p{margin:0}.city-help-toc{display:flex;flex-wrap:wrap;gap:0 4px;padding:8px;margin-bottom:8px;background:var(--surface-2);border-radius:10px}.city-help-toc .btn{min-height:32px;padding:0 8px;font-size:13px}.city-help-h{margin:16px 0 4px;font-size:18px;font-weight:500;color:var(--md-primary-ink);scroll-margin-top:8px}.city-help-body h4{margin:8px 0 0;font-size:14px;font-weight:700}.city-help-f{display:inline;padding:1px 6px;border-radius:4px;background:var(--surface-2);font-family:Roboto Mono,ui-monospace,monospace;font-size:13px;overflow-wrap:anywhere}.city-help-note{padding:8px 12px;border-left:3px solid var(--md-secondary);background:var(--orange-soft);border-radius:0 8px 8px 0}.city-help-steps,.city-help-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.city-help-scroll{overflow-x:auto}.city-help-table{width:100%;border-collapse:collapse;font-size:13px}.city-help-table th{text-align:left;font-weight:500;color:var(--text-2);border-bottom:1px solid var(--line);padding:6px 8px;white-space:nowrap}.city-help-table td{vertical-align:top;border-bottom:1px solid var(--line-soft);padding:6px 8px}.city-help-dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:0}.city-help-dl dt{font-weight:500}.city-help-dl dd{margin:0}@media(max-width:760px){.modal.city-help{max-height:100vh}.city-help-btn{width:40px;height:40px}.city-help-dl{grid-template-columns:1fr}.city-help-dl dd{margin-bottom:8px}.city-help-table{min-width:560px}}.db-uni{display:flex;flex-direction:column;gap:2px;min-width:0}.db-uni-line{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.db-uni-line .db-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.db-uni-meta{font-size:12px;color:var(--text-2);gap:6px}.db-uni-meta>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-fill{flex:0 0 auto;min-width:44px;justify-content:center}.crm-chip.ok{background:var(--ok-soft);color:var(--ok)}.crm-dorm-open{font-weight:500}.topbar-tabs{display:flex;gap:4px;align-items:center;min-width:0;flex:0 1 auto;overflow:hidden}.topbar-burger{display:none;color:var(--bar-ink);margin-left:auto;font-size:24px}.topbar-burger:hover{background:#ffffff1f;color:var(--bar-ink)}.topbar .whoami,.topbar-logout,.topbar .gear{flex:0 0 auto;white-space:nowrap}.topbar .btn.topbar-logout{min-height:36px}.nav-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;background:#00000052;animation:fade-in .2s ease}.nav-drawer{position:absolute;top:0;left:0;bottom:0;width:min(280px,86vw);background:var(--card);box-shadow:var(--elev-16);display:flex;flex-direction:column;padding:0 0 16px;overflow-y:auto;animation:drawer-in .25s cubic-bezier(0,0,.2,1)}@keyframes drawer-in{0%{transform:translate(-100%)}}.nav-drawer-head{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:8px;background:var(--bar-bg);color:var(--bar-ink)}.nav-drawer-item{display:flex;align-items:center;min-height:48px;margin:0 8px;padding:0 16px;border-radius:8px;border:0;background:transparent;text-align:left;font:inherit;font-size:14px;font-weight:500;color:var(--text-1);text-decoration:none;cursor:pointer}.nav-drawer-item:hover{background:var(--accent-soft)}.nav-drawer-item.active{background:var(--md-primary-50);color:var(--md-primary-ink)}.nav-drawer-sep{border:0;border-top:1px solid var(--line);margin:8px 0}.nav-drawer-user{padding:8px 24px 4px;font-size:12px;color:var(--text-2)}@media(max-width:760px){.btn,.crm-search,.unit-switch button,.db-select,.db-cell input,.db-drill,.filterbar select,.filterbar input,.db-range input,.sr-select,.sr-compare select,.form-field input,.form-field select,.crm-hfield input,.crm-newtask input,.crm-newtask select,.crm-moverow select,.crm-moverow input,.analyst-form input{min-height:40px}.db-add{min-height:36px}.method-btn,.db-tristate{width:36px;height:36px}.crm-move-switch button{min-height:44px}}.icon-btn.task-done{width:32px;height:32px;font-size:16px;border:1px solid var(--line);color:var(--ok)}.icon-btn.task-done:hover{background:var(--ok-soft)}.skeleton-block{height:120px}.panel-flush{padding:0;overflow:hidden}.panel-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.empty.flush{padding:0}table.data td.strong{font-weight:500}table.data td.wrap{white-space:normal;overflow-wrap:anywhere}table.data td.field-name{color:var(--text-2);width:40%}.ok-text{color:var(--ok)}.muted-text{color:var(--text-2)}.accent-text{color:var(--md-primary-ink)}.lead-back{padding-bottom:8px}.lead-title-row{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline}.lead-title{margin:0;font-size:24px;font-weight:400}.lead-amo-link,.lead-link{color:var(--md-primary-ink);font-size:14px;font-weight:500;text-decoration:none}.lead-amo-link:hover,.lead-link:hover{text-decoration:underline}.lead-link{margin-right:8px}.lead-tabs{margin-bottom:12px}.lead-plan-text{margin-top:12px}.md-text{font-size:14px;line-height:1.6}.md-text .md-h{color:var(--md-primary-ink);font-size:16px;font-weight:500;margin:16px 0 4px}.md-text .md-h:first-child{margin-top:0}.md-text p{margin:0 0 8px}.md-text ol,.md-text ul{margin:0 0 8px;padding-left:24px}.md-text li{margin:4px 0}.md-text.ai-text{white-space:normal}.lead-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px 32px;margin-top:8px}.lead-sec-h{color:var(--md-primary-ink);font-size:16px;font-weight:500;margin:0 0 8px}.lead-dl{display:grid;grid-template-columns:minmax(96px,max-content) 1fr;gap:6px 16px;margin:0;font-size:14px;line-height:1.5}.lead-dl dt{color:var(--text-2)}.lead-dl dd{margin:0;overflow-wrap:anywhere}.lead-dl-list{margin:0;padding-left:18px}.lead-dl-list li{margin:2px 0}.lead-links{display:flex;flex-wrap:wrap;gap:8px 16px}.lead-db-link{margin-left:auto}select.filter-on,input.filter-on,.field.filter-on select,.field.filter-on input{border-color:var(--md-primary-ink);background-color:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--md-primary-ink)}.field.filter-on>span{color:var(--md-primary-ink)}.filter-clear{white-space:nowrap}.filterbar .field~.filter-clear{align-self:flex-end}.lead-plan-hint{margin:8px 0 0}.lead-summary{margin:0 0 12px;max-width:72ch}.lead-list-row{margin-top:8px}.field.fact{min-width:110px}.field.fact b{font-size:14px;font-weight:500}.note-date{margin-left:auto}.section-title{margin:24px 0 8px}.form-inline{padding:0;align-items:flex-end}.w-220{width:220px}.form-note{font-size:14px;margin-bottom:0;max-width:72ch}.crm-stage-jump{display:none}@media(max-width:760px){.crm-stage-jump{display:block;width:100%;margin:0 0 8px;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);font:inherit}.crm-board{scroll-snap-type:x mandatory;gap:8px}.crm-col{flex:0 0 calc(100% - 24px);scroll-snap-align:start;max-height:calc(100vh - 220px)}}.empty{display:flex;gap:8px;align-items:flex-start}.empty:before{content:"i";flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-style:italic;font-family:Georgia,serif;border:1px solid var(--line);color:var(--text-2)}.empty.flush:before,.crm-col-empty:before{display:none}.table-progress{position:relative;height:2px;overflow:hidden;background:var(--md-primary-50)}.table-progress:after{content:"";position:absolute;top:0;bottom:0;width:40%;background:var(--md-primary-ink);animation:progress-slide 1.1s cubic-bezier(.4,0,.2,1) infinite}@keyframes progress-slide{0%{left:-40%}to{left:100%}}.db-th .sort-icon{color:var(--text-2);margin-left:4px}.db-th.sortable:hover .sort-icon{color:var(--text-2)}.db-skeleton-row td{padding:12px 8px}.found{font-variant-numeric:tabular-nums;transition:opacity .15s ease}.found.pending{opacity:.45}.attach-section{margin-top:16px;padding:8px;margin-inline:-8px;border-radius:8px;border:1px dashed transparent}.attach-section.drag-over{border-color:var(--accent);background:var(--accent-soft)}.attach-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.attach-head .crm-h{margin:0 auto 0 0}.attach-empty{padding:8px 0}.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;margin-top:8px}.attach-thumb{margin:0;display:flex;flex-direction:column;gap:4px;min-width:0}.attach-thumb .img-btn{width:100%;aspect-ratio:4 / 3;border-radius:8px;overflow:hidden;background:var(--surface-2)}.attach-thumb img{width:100%;height:100%;object-fit:cover;display:block}.attach-thumb figcaption{font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;gap:4px;align-items:center}.attach-thumb figcaption .crm-chip{flex:none}.attach-actions{display:flex;align-items:center;justify-content:space-between;gap:4px}.attach-files{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.attach-file{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:40px;border-bottom:1px solid var(--line-soft)}.attach-file-name{flex:1 1 200px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-chip-btn{border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:500}.crm-chip-btn:hover{background:var(--accent-soft);color:var(--md-primary-ink)}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050}.move-menu{position:fixed;z-index:1051;min-width:240px;max-width:min(320px,calc(100vw - 16px));max-height:min(70vh,480px);overflow-y:auto;overflow-x:visible;background:var(--card);border-radius:8px;box-shadow:var(--elev-8);padding:8px 0}.move-menu-title{padding:4px 16px 8px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.move-menu-note{padding:4px 16px}.move-item{position:relative;display:flex;align-items:stretch}.move-item.open,.move-item:hover{background:var(--accent-soft)}.move-btn{flex:1;text-align:left;border:0;background:none;font:inherit;color:var(--text-1);min-height:40px;padding:0 16px;cursor:pointer}.move-btn:disabled{color:var(--text-disabled);cursor:default}.move-item.danger{margin-top:4px;border-top:1px solid var(--line)}.move-item.danger:hover{background:var(--danger-soft)}.move-btn.danger{color:var(--danger)}.move-submenu .move-btn:hover:not(:disabled){background:var(--accent-soft)}.move-sub-toggle{border:0;background:none;width:40px;font-size:20px;color:var(--text-2);cursor:pointer}.move-submenu{position:fixed;z-index:1052;min-width:220px;background:var(--card);border-radius:8px;box-shadow:var(--elev-8);padding:8px 0;display:flex;flex-direction:column}.db-map-wrap{display:flex;flex-direction:column;gap:8px}.db-map{height:calc(100vh - 300px);min-height:420px;border-radius:var(--radius);box-shadow:var(--elev-1);background:var(--surface-2);overflow:hidden}.db-map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;color:var(--text-2)}.db-map-legend-item{display:inline-flex;align-items:center;gap:6px}.db-map-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--card);box-shadow:0 0 0 1px var(--line)}.leaflet-tooltip.uni-tip{font:400 13px/1.45 Onest,sans-serif;color:var(--text-1);background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--elev-8);padding:0;width:min(360px,calc(100vw - 32px));white-space:normal;opacity:1}.leaflet-tooltip.uni-tip:before{border-top-color:var(--card)}.uni-tip-card{padding:10px 14px 8px}.uni-tip-actions{display:flex;justify-content:flex-end;align-items:center;gap:4px;padding:4px 4px 0;margin-bottom:-6px}.uni-tip-close,.uni-tip-btn{border:0;background:transparent;color:var(--text-2);cursor:pointer;font:inherit;border-radius:6px;min-height:32px}.uni-tip-close{width:32px;font-size:20px;line-height:1}.uni-tip-btn{padding:0 8px;font-size:13px;color:var(--accent-ink)}.uni-tip-close:hover,.uni-tip-btn:hover{background:var(--accent-soft);color:var(--text-1)}.leaflet-tooltip.uni-tip.leaflet-interactive{pointer-events:auto}.city-seg-btn{width:40px;height:40px;border-radius:50%;border:2px solid #fff;cursor:pointer;background:var(--md-primary-ink);color:#fff;font-size:24px;line-height:1;box-shadow:var(--elev-4, 0 2px 6px rgba(0,0,0,.25))}.city-seg-btn.remove{background:var(--danger)}.city-seg-btn:hover{filter:brightness(1.1)}.city-area-row{position:relative;display:flex;flex-direction:column}.city-area-name{display:flex;align-items:center;gap:8px}.city-area-badge{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;line-height:1;color:#fff}.city-area-badge.run{background:var(--md-primary-ink);animation:city-spin 1.2s linear infinite}.city-area-badge.stale{background:var(--warn-ink)}.city-area-badge.paused{background:var(--text-2);font-size:9px;letter-spacing:-1px}@keyframes city-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.city-area-badge.run,.city-pane-in,.city-pane-back{animation:none}}.city-area-row .city-area-btn{width:100%;min-width:0}.city-area-row:has(.city-area-menu-btn) .city-area-btn{padding-right:52px}.city-area-row .city-area-menu-btn{position:absolute;top:50%;right:6px;transform:translateY(-50%)}.city-area-row:has(.city-area-rename) .city-area-btn{display:none}.city-area-rename{display:flex;align-items:center;gap:8px;min-height:56px}.city-area-rename input{flex:1;min-width:0;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font:inherit}.city-mark-pin{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:var(--md-primary-ink);text-shadow:0 0 2px #fff,0 0 4px #fff;cursor:pointer}.uni-tip-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;line-height:1.3}.uni-tip-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--text-disabled)}.uni-tip-dot.pin-ours{background:var(--md-primary)}.uni-tip-dot.pin-evaluated{background:var(--md-success)}.uni-tip-dot.pin-students{background:var(--md-secondary)}.uni-tip-dot.pin-no_students{background:var(--md-error)}.uni-tip-sub{font-size:12px;color:var(--text-2);margin:2px 0 8px 18px}.uni-tip-grid{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:0}.uni-tip-grid dt{color:var(--text-2)}.uni-tip-grid dd{margin:0;overflow-wrap:anywhere}.uni-tip-note{margin-top:6px;font-size:12px;color:var(--md-secondary-variant)}.uni-tip-hint{margin-top:8px;padding-top:6px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--text-2)}.city-tip-letter{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--glyph);font-size:12px;font-weight:700;line-height:1}.city-tip-letter.square{border-radius:3px}.city-tip-letter.ink-light{color:#fff}.city-tip-letter.ink-dark{color:#000000de}.leaflet-container{font-family:inherit}.leaflet-control-layers,.leaflet-bar{border-radius:8px;box-shadow:var(--elev-2)!important}.db-map-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.db-map{position:relative;z-index:0}.db-map-wrap{padding-bottom:64px}.db-map-summary-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;padding:10px 24px;font-size:14px;background:var(--card);box-shadow:var(--elev-8);border-top:3px solid var(--md-primary)}.db-map-scope{font-weight:500}.db-map-dot.hollow{background:var(--card);border:2px solid;box-shadow:none}.leaflet-marker-icon.db-map-cluster{display:flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:50%;line-height:1;background:var(--md-primary-50);color:var(--md-primary-ink);font-weight:500;font-size:13px;border:2px solid var(--md-primary);box-shadow:var(--elev-2)}.ai-chip{background:#6a1b9a;color:#fff;font-weight:500}.db-preset.active.ai-preset{background:#6a1b9a;border-color:#6a1b9a}.db-stat-link{font-size:inherit;display:inline-flex;align-items:center;gap:6px}.db-select-cell{width:40px;text-align:center}.db-select-cell input{width:18px;height:18px;margin:0;cursor:pointer}.db-tablewrap tbody tr.selected{background:var(--accent-soft)}.db-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;padding:8px 16px;background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-1);border-left:4px solid var(--md-primary)}.review-banner{margin-bottom:8px;padding:12px 16px;border-radius:8px;background:var(--md-secondary-50);border:1px solid color-mix(in srgb,var(--md-secondary) 40%,transparent)}.review-banner-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.review-diff{margin:0 0 8px;padding-left:18px}.review-diff li{margin:2px 0;overflow-wrap:anywhere;white-space:pre-line}.review-banner-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.import-report{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:12px 0 0}.import-report dt{color:var(--text-2)}.import-report dd{margin:0}.score-warning{margin-bottom:8px;padding:8px 12px;border-radius:8px;font-size:14px;line-height:1.45;background:var(--md-secondary-50);color:var(--text-1);border:1px solid color-mix(in srgb,var(--md-secondary) 45%,transparent)}.mk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}.mk-kpi{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-1)}.mk-kpi b{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.mk-kpi-label{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.mk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.mk-panel{margin:0;min-width:0}.mk-panel.wide{grid-column:1 / -1}.mk-panel-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.mk-panel-head h2{margin:0 auto 0 0}.mk-method-body{margin:0 0 12px;padding:10px 14px;border-radius:8px;background:var(--surface-2);font-size:14px;line-height:1.5}.mk-method-body p{margin:0 0 8px}.mk-unit{margin-bottom:10px}.mk-stack-bar{display:flex;height:28px;border-radius:6px;overflow:hidden;background:var(--surface-2)}.mk-stack-bar>span{display:flex;align-items:center;justify-content:center;min-width:2px;font-size:12px;font-weight:500;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.45)}.mk-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}.mk-legend li{display:inline-flex;align-items:center;gap:6px}.mk-dot{width:12px;height:12px;border-radius:3px;flex:none}.mk-scen{display:flex;flex-direction:column;gap:10px}.mk-scen-row{display:grid;grid-template-columns:96px minmax(120px,1fr) minmax(0,1.4fr);align-items:center;gap:12px}.mk-scen-label{font-weight:500}.mk-scen-track{position:relative;height:18px;background:var(--surface-2);border-radius:4px;overflow:hidden}.mk-scen-fill,.mk-scen-range{position:absolute;top:0;bottom:0;left:0;border-radius:4px}.mk-scen-val{font-size:14px;font-variant-numeric:tabular-nums}.mk-repr{display:flex;flex-wrap:wrap;gap:6px 20px;margin:14px 0 0;font-size:14px;color:var(--text-2)}.mk-calc{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}.mk-calc label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2)}.mk-calc input{width:110px;min-height:var(--field-h);padding:0 10px;font:inherit;font-size:14px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1)}.mk-cover{display:flex;flex-direction:column;gap:8px}.mk-cover-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;align-items:center}.mk-cover-row .mk-stack-bar{height:20px}.mk-free{margin-top:12px;font-size:14px}.mk-line{width:100%;height:auto;display:block}.mk-gridline{stroke:var(--line-soft)}.mk-axis{font-size:12px;fill:var(--text-2)}.mk-regions{max-height:520px;overflow:auto}.mk-regions tbody tr.selected td{background:var(--accent-soft)}.mk-sort{font:inherit;font-size:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit}@media(max-width:760px){.topbar-tabs,.topbar .gear,.topbar .whoami,.topbar-logout{display:none}.topbar-burger{display:inline-flex}.field input,.field select,.btn.db-add{min-height:40px}.move-item{flex-wrap:wrap}.move-submenu{position:static;box-shadow:none;flex-basis:100%;min-width:0;padding:0 0 4px 16px;background:transparent}.attach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.db-map{height:calc(100vh - 240px);min-height:360px}.db-map-summary-bar{padding:8px 16px;gap:4px 12px}.db-map-wrap{padding-bottom:150px}.mk-grid{grid-template-columns:minmax(0,1fr)}.mk-scen-row{grid-template-columns:80px minmax(0,1fr)}.mk-scen-val{grid-column:1 / -1}.mk-cover-row{grid-template-columns:minmax(0,1fr);gap:4px}.mk-calc input{width:96px}}@media(max-width:600px){.lead-sections{grid-template-columns:1fr}.lead-dl{grid-template-columns:1fr;gap:2px}.lead-dl dd{margin-bottom:8px}.lead-db-link{margin-left:0}}.market-view-bar{margin-bottom:8px}.city-areas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.city-area-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text-1);font:inherit;text-align:left;cursor:pointer}.city-area-btn:hover{background:var(--accent-soft)}.city-area-btn.active{border-color:var(--md-primary);background:var(--surface-2)}.city-add{display:flex;flex-direction:column;gap:8px}.city-candidates{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.city-candidates li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px}.city-hint{font-size:12px;color:var(--md-primary-ink)}.city-status{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;margin:0;font-size:14px}.city-status dt{color:var(--text-2)}.city-status dd{margin:0;min-width:0;overflow-wrap:anywhere}.city-running{color:var(--md-primary-ink)}.city-stale{color:var(--md-secondary-variant)}.city-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.city-actions .btn.active{background:var(--md-primary);color:var(--md-on-primary)}.city-map{height:calc(100vh - 220px);min-height:480px;border-radius:var(--radius);box-shadow:var(--shadow);position:relative;z-index:0}.leaflet-marker-icon.city-poi-pin{background:transparent;border:0}.city-poi-pin>span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;box-sizing:border-box;border-radius:50%;border:2px solid var(--glyph);background:var(--glyph);font-size:12px;font-weight:700;line-height:1;box-shadow:var(--elev-1)}.city-poi-pin.ink-light>span{color:#fff}.city-poi-pin.ink-dark>span{color:#000000de}.city-poi-pin.unverified>span{background:color-mix(in srgb,var(--glyph) 25%,var(--card));color:var(--text-1)}.city-poi-pin.closed>span{border-style:dashed;opacity:.45}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .city-poi-pin.verified>span,:root:not([data-theme=light]) .city-cluster-pin>span{color:#121212}}.leaflet-marker-icon.city-cluster-pin{background:transparent;border:0}.city-cluster-pin>span{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;box-sizing:border-box;padding:0 8px;border-radius:12px;border:2px solid var(--card);background:var(--glyph);font-size:12px;font-weight:500;line-height:1;white-space:nowrap;box-shadow:var(--elev-2);cursor:pointer}.city-cluster-pin>span>b{font-weight:700}.city-legend-group{flex:none;display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;background:var(--series-9);color:#fff;font-size:12px;font-weight:700}.city-cluster-pin.ink-light>span{color:#fff}.city-cluster-pin.ink-dark>span{color:#000000de}.leaflet-marker-icon.city-premise-pin{display:flex;align-items:center;justify-content:center;border-radius:3px;background:var(--series-1);color:#fff;font-size:12px;font-weight:700;line-height:1;border:2px solid var(--card);box-shadow:var(--elev-2);box-sizing:border-box}.leaflet-marker-icon.city-premise-pin.status-rejected,.leaflet-marker-icon.city-premise-pin.status-gone{opacity:.4}.leaflet-marker-icon.city-premise-pin.status-fits{background:var(--md-success)}.leaflet-marker-icon.city-premise-pin>span{line-height:1}.leaflet-marker-icon.city-site-pin{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--md-primary-variant);color:#fff;font-weight:500;font-size:13px;border:2px solid var(--card);box-shadow:var(--elev-2)}.leaflet-popup.city-popup .leaflet-popup-content{margin:0;font-size:13px}.leaflet-popup.city-popup .leaflet-popup-content-wrapper{padding:0;border-radius:8px}.city-params .form-field input{max-width:160px}.city-param-row{display:inline-flex;align-items:center;gap:4px}.city-param-reset{min-width:32px;padding:0 6px}.city-formula{margin:0;padding:8px 12px;border-radius:8px;background:var(--surface-2);font-family:Roboto Mono,monospace;font-size:13px;overflow-wrap:anywhere}.city-point-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}@media(max-width:900px){.city-map{height:60vh;min-height:360px}}@media(max-width:760px){.city-status{grid-template-columns:1fr;gap:2px}}.city-poi-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto}.city-poi-btn{display:grid;grid-template-columns:12px 1fr;gap:2px 8px;align-items:center;width:100%;min-height:40px;padding:4px 8px;border:0;border-radius:8px;background:transparent;color:var(--text-1);font:inherit;text-align:left;cursor:pointer}.city-poi-btn:hover{background:var(--accent-soft)}.city-poi-btn .widget-sub{grid-column:2}.city-poi-name{font-size:14px}.city-poi-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--text-disabled);background:var(--text-disabled)}.city-poi-dot.kind-laundry_direct{border-color:var(--md-error);background:var(--md-error)}.city-poi-dot.kind-laundry_indirect{border-color:var(--md-secondary);background:var(--md-secondary)}.city-poi-dot.kind-ours{border-color:var(--md-primary);background:var(--md-primary)}.city-poi-dot.kind-hotel{border-color:var(--series-5);background:var(--series-5)}.city-poi-dot.hollow{background:transparent}@media(max-width:760px){.city-main .data .link-btn{min-height:40px}}.city-search{display:flex;flex-direction:column;gap:6px}.city-search .form-inline .city-search-field{flex:1 1 260px;max-width:520px}.city-search .city-candidates li .link-btn{text-align:left;min-height:32px}.city-reco{border:1px solid var(--line);border-left:4px solid var(--md-primary);border-radius:8px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.city-reco.full{border-left-color:var(--md-secondary)}.city-section{display:flex;flex-direction:column;gap:4px}.city-comp{display:block}.city-market-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.city-format{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;background:var(--surface-2);color:var(--md-primary-ink);white-space:nowrap}.city-format.full{background:var(--orange-soft);color:var(--warn-ink)}.city-object-layers{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.city-candidates li.shown{background:var(--orange-soft);border-radius:8px}.city-candidate-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0;min-height:40px;padding:6px 8px;border:0;background:transparent;color:var(--text-1);font:inherit;text-align:left;cursor:pointer;border-radius:8px}.city-candidate-btn:hover{background:var(--accent-soft)}.city-candidate-type{font-size:13px;color:var(--warn-ink)}.city-reco-alt{border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}@media(max-width:760px){.city-layer-switch button{min-height:40px}}.city-ws{position:relative;height:calc(100vh - 152px);min-height:560px}.city-ws-map{position:relative;height:100%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--surface-2)}.city-ws .city-map{height:100%;min-height:0;border-radius:0;box-shadow:none}.city-ws-panel{position:absolute;top:12px;left:12px;bottom:12px;width:360px;z-index:25;display:flex;flex-direction:column;overflow:hidden;background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-4)}.city-tabs{display:flex;border-bottom:1px solid var(--line);flex:none}.city-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-2);font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:color .16s ease,border-color .16s ease}.city-tabs button:hover{color:var(--md-primary-ink);background:var(--accent-soft)}.city-tabs button.on{color:var(--md-primary-ink);border-bottom-color:var(--md-primary)}.city-tab-body{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:24px;overscroll-behavior:contain}.city-pane{flex:1;min-height:0;display:flex;flex-direction:column}.city-pane-in{animation:city-slide-left .2s cubic-bezier(0,0,.2,1)}.city-pane-back{animation:city-slide-right .2s cubic-bezier(0,0,.2,1)}@keyframes city-slide-left{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}@keyframes city-slide-right{0%{transform:translate(-32px);opacity:0}to{transform:none;opacity:1}}.city-tabs .city-back{flex:none;width:44px;font-size:20px}.city-pick-head{align-items:center}.city-pick-title{flex:1;padding:0 16px;font-size:16px;font-weight:500}.city-pane-title{padding:12px 16px 0;font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-pick-search input{width:100%}.city-block{display:flex;flex-direction:column;gap:8px}.city-block-title{margin:0;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.city-cta{width:100%;min-height:40px}.city-ws-top{position:absolute;top:12px;left:384px;right:56px;z-index:25;display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;pointer-events:none}.city-ws-top>*{pointer-events:auto}.city-ws-top .city-search{background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-4);padding:8px 12px;flex:1 1 320px;max-width:560px}.city-ws-top .city-search .form-inline .city-search-field{max-width:none}.city-job-pill{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border:0;border-radius:999px;background:var(--card);box-shadow:var(--elev-4);color:var(--md-primary-ink);font:inherit;font-size:13px;font-weight:500;cursor:pointer}.city-job-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--md-primary);animation:city-pulse 1.4s ease-in-out infinite}@keyframes city-pulse{0%,to{opacity:1}50%{opacity:.35}}.page.market.city-full{max-width:none;display:flex;flex-direction:column;padding:8px 12px 12px}.page.market.city-full .market-view-bar{flex:none}.city-full .city-ws{flex:1 1 0;height:auto;min-height:480px}.city-full .city-ws-map{position:absolute;top:0;right:0;bottom:0;left:0;height:auto}.city-import-block .modal-body{display:flex;flex-direction:column;gap:12px}.city-import-stage{margin:0;font-size:14px;overflow-wrap:anywhere}.city-import-block .widget-sub{margin:0}.city-import-summary{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:14px}.city-import-problems summary{cursor:pointer;min-height:32px;display:flex;align-items:center;color:var(--md-primary-ink);font-size:14px}.city-import-problems ul{margin:4px 0 0;padding-left:20px;max-height:30vh;overflow-y:auto;font-size:13px;color:var(--text-2)}.city-tabs .city-fold{flex:none;align-self:center;width:40px;height:40px;min-height:40px;margin:0 8px;border:0;border-radius:50%;padding:0}.city-tabs .city-fold:hover{color:var(--md-primary-ink);background:var(--accent-soft)}.city-rail{position:absolute;top:12px;z-index:25;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:0;border-radius:999px;background:var(--card);box-shadow:var(--elev-4);color:var(--md-primary-ink);font:inherit;font-size:14px;font-weight:500;cursor:pointer}.city-rail:hover{background:var(--md-primary-50)}.city-rail.left{left:12px}.city-rail.right{right:12px;top:96px}.city-ws.panel-closed .city-ws-top{left:148px}.city-draw-bar,.city-contour-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-4);padding:8px 12px 8px 16px}.city-draw-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;flex:1 1 320px;max-width:760px}.city-draw-bar>span:first-child{flex:1 1 240px;font-size:14px}.city-contour-card{display:flex;flex-direction:column;gap:8px;flex:1 1 320px;max-width:600px;padding:12px 16px}.city-contour-card header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:14px}.city-contour-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 12px}.city-contour-fields input{width:100%}.city-legend-bar{position:absolute;left:384px;right:12px;bottom:12px;z-index:24;display:flex;flex-direction:column;overflow:hidden;background:var(--card);border-radius:10px;box-shadow:var(--elev-4);font-size:12px}.city-ws.panel-closed .city-legend-bar{left:12px}.city-ws.drawer-open .city-legend-bar{right:calc(min(480px,46%) + 24px)}.city-ws .city-legend-bar.open{left:12px;right:12px;z-index:31}.city-legend-bar{container-type:inline-size}@container (max-width: 720px){.city-legend-bar .city-legend-objects,.city-legend-bar .city-legend-count{display:none}}@container (max-width: 440px){.city-legend-bar .city-legend-scale,.city-legend-bar .city-legend-heat .widget-sub,.city-legend-bar .city-legend-heat .city-stale{display:none}.city-legend-bar .city-legend-row{flex-wrap:nowrap;justify-content:space-between}}.city-legend-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;min-height:48px;padding:8px 12px}.city-legend-heat{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.city-legend-name{font-size:13px}.city-legend-scale{display:flex}.city-legend-step{display:flex;flex-direction:column;gap:2px;min-width:64px}.city-legend-step i{height:10px;opacity:.85}.city-legend-step:first-child i{border-radius:4px 0 0 4px}.city-legend-step:last-child i{border-radius:0 4px 4px 0}.city-legend-step span{padding:0 4px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.city-legend-objects,.city-legend-help-kinds{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px}.city-legend-objects li,.city-legend-help-kinds li{display:inline-flex;align-items:center;gap:6px;color:var(--text-1)}.city-legend-help-kinds{flex-direction:column;gap:6px}.city-legend-help-kinds li{align-items:flex-start}.city-legend-objects i,.city-legend-help-kinds i{flex:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border-radius:50%;border:2px solid var(--glyph);background:var(--glyph);font-style:normal;font-size:12px;font-weight:700;line-height:1}.city-legend-objects i.ink-light,.city-legend-help-kinds i.ink-light{color:#fff}.city-legend-objects i.ink-dark,.city-legend-help-kinds i.ink-dark{color:#000000de}.city-legend-help-kinds i.hollow{background:color-mix(in srgb,var(--glyph) 25%,var(--card));color:var(--text-1)}.city-legend-help-kinds i.closed{background:color-mix(in srgb,var(--glyph) 25%,var(--card));color:var(--text-1);border-style:dashed;opacity:.45}.city-legend-help-kinds i.dot{width:6px;height:6px;border-width:0;margin:6px 6px 0}.city-legend-pin{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--md-primary-variant);color:#fff;font-size:12px;font-weight:500}.city-legend-count{margin-left:auto}.city-legend-help{display:flex;flex-direction:column;max-height:min(50vh,440px);border-bottom:1px solid var(--line)}.city-legend-help header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px 0 16px;font-size:14px}.city-legend-help-body{overflow-y:auto;overscroll-behavior:contain;padding:0 16px 12px;font-size:13px;line-height:1.5;color:var(--text-1)}.city-legend-help-body h4{margin:12px 0 4px;font-size:13px;font-weight:500}.city-legend-help-body p{margin:0}.city-drawer{position:absolute;top:12px;right:12px;bottom:12px;width:min(480px,46%);z-index:30;display:flex;flex-direction:column;overflow:hidden;outline:none;background:var(--card);border-radius:var(--radius);box-shadow:var(--elev-16);animation:city-drawer-in .2s cubic-bezier(0,0,.2,1)}.city-drawer .crm-panel-head{padding:12px 16px}.city-point-head{flex-wrap:wrap;row-gap:4px}.city-point-head .crm-panel-tools,.city-icon-tools{gap:0}.city-point-sub{flex-basis:100%}.city-drawer .crm-panel-body{padding:12px 16px 16px}@keyframes city-drawer-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.city-heat{display:flex;flex-direction:column;gap:4px}.city-heat-card{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;min-height:48px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text-1);font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.city-heat-card:hover{background:var(--accent-soft)}.city-heat-card.on{border-color:var(--md-primary);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--md-primary)}.city-heat-ramp{display:flex;height:28px;border-radius:6px;overflow:hidden}.city-heat-ramp i{flex:1;opacity:.85}.city-heat-ramp.empty{background:repeating-linear-gradient(45deg,var(--line-soft) 0 4px,transparent 4px 8px);border:1px solid var(--line)}.city-heat-text{display:flex;flex-direction:column;gap:2px;min-width:0}.city-heat-text b{font-size:14px;font-weight:500}.city-heat-text span{font-size:12px;color:var(--text-2);line-height:1.35}.city-range{display:flex;flex-direction:column;gap:4px}.city-range input{width:100%;accent-color:var(--md-primary);min-height:32px}.city-objects{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.city-object{display:grid;grid-template-columns:40px 1fr auto 36px;gap:8px;align-items:center;width:100%;min-height:40px;padding:4px 8px;border:0;border-radius:8px;background:transparent;color:var(--text-1);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background-color .16s ease}.city-object:hover{background:var(--accent-soft)}.city-object:not(.on) .city-object-label{color:var(--text-2)}.city-object-glyphs{display:flex;justify-content:center;align-items:center}.city-object-glyphs{gap:2px}.city-object-glyph.dot{width:6px;height:6px;box-shadow:none}.city-object-glyph.square{border-radius:3px}.city-legend-square{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:3px;background:var(--series-1);color:#fff;font-size:12px;font-weight:700;line-height:1}.city-checklist{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 16px}.city-checklist li{display:flex;align-items:baseline;gap:8px;font-size:14px}.city-checklist li>span:first-child{flex:none;width:16px;font-weight:700;text-align:center}.city-checklist li.ok>span:first-child{color:var(--md-success)}.city-checklist li.no>span:first-child{color:var(--md-error)}.city-checklist li.unknown{color:var(--text-2)}.city-nearby{display:flex;flex-direction:column;gap:8px;margin-top:16px}.city-listing-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.city-listing-rows li{display:flex;align-items:center;gap:4px}.city-listing-row{flex:1;min-width:0;display:grid;grid-template-columns:16px 1fr;gap:8px;align-items:center;min-height:40px;padding:4px 8px;border:0;border-radius:8px;background:transparent;color:var(--text-1);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background-color .16s ease}.city-listing-row:hover{background:var(--accent-soft)}.city-premise-mark{width:12px;height:12px;border-radius:3px;background:var(--series-1)}.city-pickup-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--series-9);color:#fff;font-size:12px;font-weight:700;line-height:1}.city-premise-mark.status-fits{background:var(--md-success)}.city-premise-mark.status-rejected,.city-premise-mark.status-gone{opacity:.4}.city-object-glyph{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--glyph);justify-self:center;box-shadow:0 0 0 1px var(--card),0 0 0 2px var(--line);font-size:12px;font-weight:700;line-height:1}.city-object-glyph.ink-light{color:#fff}.city-object-glyph.ink-dark{color:#000000de}.city-object-glyph.pin{width:18px;height:18px;box-shadow:0 0 0 1px var(--card),var(--elev-1)}.city-object:not(.on) .city-object-glyph{opacity:.35}.city-object-count{font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}.city-switch{position:relative;width:32px;height:18px;border-radius:999px;background:var(--md-on-surface-disabled);transition:background-color .16s ease;justify-self:end}.city-switch i{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:var(--elev-1);transition:transform .16s ease}.city-object.on .city-switch{background:var(--md-primary)}.city-object.on .city-switch i{transform:translate(14px)}.city-data{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.city-data-row{display:grid;grid-template-columns:20px 128px 1fr;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:14px}.city-data-row:last-child{border-bottom:0}.city-data-glyph{font-weight:500;text-align:center;color:var(--text-disabled)}.city-data-row.ok .city-data-glyph{color:var(--ok)}.city-data-row.err .city-data-glyph{color:var(--danger)}.city-data-label{color:var(--text-2)}.city-data-value{font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}.city-job{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:10px;font-size:14px}.city-job header{display:flex;align-items:center;gap:8px}.city-job.running{background:var(--surface-2)}.city-job.done{background:var(--ok-soft)}.city-job.error{background:var(--danger-soft)}.city-job-pct{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:500;color:var(--md-primary-ink)}.city-job-stage{font-weight:500}.city-job-hint{margin:0;font-size:12px;color:var(--text-2)}.city-job-bar{position:relative;height:6px;border-radius:999px;background:var(--line);overflow:hidden}.city-job-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--md-primary);transition:width .4s ease}.city-job-bar.indeterminate i{width:30%;animation:city-indeterminate 1.4s ease-in-out infinite}@keyframes city-indeterminate{0%{left:-30%}to{left:100%}}.city-mini-kpis{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px}.city-sites{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.city-site-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;width:100%;min-height:48px;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--text-1);font:inherit;text-align:left;cursor:pointer}.city-site-row:hover{background:var(--accent-soft)}.city-site-rank{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--md-primary-variant);color:#fff;font-size:12px;font-weight:500}.city-site-main{display:flex;flex-direction:column;gap:2px;min-width:0}.city-site-money{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.city-manage summary{cursor:pointer;font-size:14px;font-weight:500;color:var(--md-primary-ink);min-height:32px;display:flex;align-items:center}.city-ws-panel .panel{box-shadow:none;padding:0;background:transparent}.city-ws-panel .city-market-kpis{grid-template-columns:minmax(0,1fr);gap:8px}.city-ws-panel .city-market-kpis .mk-kpi{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px;row-gap:2px;padding:12px 16px}.city-ws-panel .city-market-kpis .mk-kpi b{font-size:20px;white-space:nowrap;text-align:right}.city-ws-panel .city-market-kpis .mk-kpi .widget-sub{grid-column:1 / -1}@media(prefers-reduced-motion:reduce){.city-job-dot,.city-job-bar.indeterminate i,.city-drawer{animation:none}}@media(max-width:1200px){.city-ws-panel{width:320px}.city-ws-top,.city-legend-bar{left:344px}}@media(max-width:900px){.city-ws-top{left:12px;right:56px;top:12px}.city-ws-panel{top:auto;bottom:12px;height:45%;width:auto;right:12px}.city-drawer{width:auto;left:12px}.city-legend-bar{left:12px;bottom:calc(45% + 24px)}.city-ws.panel-closed .city-legend-bar{bottom:12px}.city-ws.drawer-open .city-legend-bar{right:12px}}@media(max-width:760px){.city-ws{height:auto;min-height:0}.city-ws-map{height:auto;overflow:visible;display:flex;flex-direction:column;box-shadow:none;background:transparent}.city-ws .city-map{height:60vh;min-height:360px;border-radius:var(--radius);box-shadow:var(--shadow);order:1}.city-full .city-ws{flex:none}.city-full .city-ws-map{position:relative;inset:auto}.city-legend-bar,.city-ws.panel-closed .city-legend-bar,.city-ws.drawer-open .city-legend-bar{position:static;order:2;margin-top:8px}.city-legend-help-btn,.city-fold,.city-rail,button.city-job-pill{min-height:40px}.city-ws .city-legend-bar .city-legend-scale{display:flex;flex-direction:column;gap:2px}.city-ws .city-legend-bar .city-legend-heat .widget-sub{display:inline}.city-ws .city-legend-bar .city-legend-row{flex-wrap:wrap}.city-legend-step{flex-direction:row;align-items:center;min-width:0}.city-legend-step i,.city-legend-step:first-child i,.city-legend-step:last-child i{width:20px;height:12px;border-radius:3px}.city-rail.left{position:static;order:3;margin-top:12px;align-self:flex-start}.city-rail.right{position:fixed;top:auto;bottom:16px;right:16px;z-index:900}.city-ws-panel{position:static;order:3;height:auto;width:auto;margin-top:12px;overflow:visible}.city-tab-body{overflow:visible}.city-ws-top{left:8px;right:8px;top:8px}.city-drawer{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;border-radius:0;z-index:900}.city-tabs button,.city-object,.city-heat-card,.city-site-row{min-height:48px}.city-data-row{grid-template-columns:20px 1fr}.city-data-value{grid-column:2}}
