@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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:Urbanist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/urbanist-latin-ext-wght-normal-Bdxck5Au.woff2) format("woff2-variations");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:Urbanist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/urbanist-latin-wght-normal-D69JTELx.woff2) format("woff2-variations");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;font-family:Urbanist Variable,Inter Variable,system-ui,sans-serif;background:#fff;color:#1d1d1f;--primary: #a855f7;--primary-hover: #9334e9;--primary-soft: #f0e1fd;--ink: #1d1d1f;--muted: #737373;--muted-strong: #616161;--soft: #f9fafb;--surface: #ffffff;--surface-soft: #f5f5f5;--line: #f0f0f0;--line-strong: #d1d1d1;--success: #15803d;--success-bg: #dcfce7;--warning: #ff8a00;--warning-bg: #fff2d7;--danger: #ff2b27;--white: #ffffff;--shadow: 0 1px 2px rgba(29, 29, 31, .04)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:var(--white);font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input{font:inherit}button{border:0}.auth-shell,.app-shell{min-height:100vh}.auth-shell{display:grid;place-items:center;position:relative;padding:28px}.corner-brand{position:fixed;top:28px;left:32px;display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-size:13px;font-weight:600;line-height:1;z-index:1}.auth-card{width:min(100%,360px);border:0;border-radius:8px;background:transparent;box-shadow:none;padding:0}.brand-row{display:flex;align-items:center;gap:8px;min-width:0}.brand-mark{width:18px;height:18px;flex:0 0 auto}.auth-brand{margin-bottom:22px;text-align:center}.eyebrow{margin:0 0 6px;color:var(--muted);font-size:12px;font-weight:500;line-height:18px;letter-spacing:0}h1,h2,h3,p{margin-top:0}h1,h2{margin-bottom:0;font-size:30px;font-weight:600;line-height:30px;letter-spacing:0}h3{margin-bottom:0;font-size:18px;font-weight:600;line-height:24px;letter-spacing:0}.auth-copy{margin:10px auto 0;max-width:280px;color:var(--muted);font-size:13px;font-weight:400;line-height:18px;text-align:center}.login-form{display:grid;gap:14px}.field{display:grid;gap:6px;color:var(--ink);font-size:13px;font-weight:500;line-height:18px}.input-shell{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:8px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:0 12px;color:var(--muted)}.input-shell:focus-within{border-color:var(--primary);background:var(--white);box-shadow:0 0 0 3px #a855f71f}.input-shell input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px;line-height:20px}.primary-button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:38px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;line-height:18px;letter-spacing:0;transition:transform .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease}.primary-button{width:100%;background:var(--primary);color:var(--white);padding:0 18px}.primary-button:hover:not(:disabled){background:var(--primary-hover)}.secondary-button{border:1px solid var(--line);background:var(--white);color:var(--ink);padding:0 16px}.secondary-button:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-soft)}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.48}.app-shell{width:min(1240px,100%);min-height:100vh;margin:0 auto;padding:26px 28px 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px}.compact-brand{color:var(--ink);font-size:13px;font-weight:600;line-height:1}.user-block{display:flex;align-items:center;gap:10px;min-width:0;color:var(--muted);font-size:13px;font-weight:500}.user-block span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button{width:34px;height:34px;border:1px solid var(--line);background:var(--white);color:var(--muted)}.hero-band{display:grid;grid-template-columns:1fr;align-items:center;justify-items:center;gap:16px;max-width:460px;min-height:330px;margin:52px auto 28px;border:0;border-radius:8px;background:transparent;padding:20px 0;box-shadow:none;text-align:center}.state-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--surface-soft);color:var(--muted)}.state-icon.is-ready{background:var(--primary-soft);color:var(--primary)}.state-icon.is-warning{background:var(--warning-bg);color:var(--warning)}.hero-copy{display:grid;gap:8px}.hero-copy .eyebrow{margin:0;color:var(--muted);font-size:13px;line-height:18px}.hero-copy p:last-child{margin:0;color:var(--muted);font-size:13px;font-weight:400;line-height:18px}.hero-actions{width:min(100%,330px);margin-top:2px}.status-pill{display:inline-flex;align-items:center;gap:8px;min-height:36px;border-radius:8px;background:var(--warning-bg);color:var(--warning);padding:0 12px;font-size:13px;font-weight:500;white-space:nowrap}.status-pill.is-open{background:var(--success-bg);color:var(--success)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(260px,.9fr));gap:12px}.panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:16px;box-shadow:none}.map-panel{margin-bottom:12px;padding:18px}.map-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.map-stat{display:grid;justify-items:end;gap:2px;color:var(--muted);font-size:12px;line-height:16px}.map-stat span{color:var(--ink);font-size:24px;font-weight:600;line-height:24px}.map-stat small{color:var(--muted);font:inherit}.map-canvas{position:relative;min-height:300px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at 18% 20%,rgba(168,85,247,.12),transparent 24%),radial-gradient(circle at 82% 72%,rgba(0,184,217,.1),transparent 28%),var(--white)}.map-svg{display:block;width:100%;height:300px}.google-map-frame{width:100%;height:300px;min-height:300px;background:var(--surface-soft)}.map-empty{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;font-weight:500;pointer-events:none}.map-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:var(--muted);font-size:12px;line-height:16px}.map-legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:999px;background:var(--ink)}.legend-dot.is-user{background:#00b8d9}.legend-dot.is-nearest{background:var(--primary)}.map-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.map-list-item{display:grid;grid-template-columns:8px 1fr;align-items:center;gap:8px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:10px}.map-list-item>span{width:8px;height:8px;border-radius:999px;background:var(--ink)}.map-list-item>span.is-nearest{background:var(--primary)}.map-list-item strong,.map-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-list-item strong{color:var(--ink);font-size:13px;font-weight:600;line-height:18px}.map-list-item small{color:var(--muted);font-size:12px;font-weight:400;line-height:16px}.map-list-empty{grid-column:1 / -1;margin:0;border:1px dashed var(--line-strong);border-radius:8px;color:var(--muted);padding:12px;font-size:13px;line-height:18px;text-align:center}.action-panel{grid-row:auto}.panel-heading{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;min-height:42px;margin-bottom:14px}.panel-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:8px;background:var(--primary-soft);color:var(--primary)}.metric-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.metric-list.compact{grid-template-columns:1fr}.metric-list div{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:10px}.metric-list dt{margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:500;line-height:16px}.metric-list dd{margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:16px;font-weight:600;line-height:20px}.eligibility{display:flex;align-items:center;gap:10px;min-height:40px;margin:12px 0;border:1px solid rgba(255,138,0,.2);border-radius:8px;background:var(--warning-bg);color:var(--warning);padding:0 12px;font-size:13px;font-weight:500}.eligibility.is-ready{border-color:#15803d2e;background:var(--success-bg);color:var(--success)}.button-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.clock-button{min-height:34px;width:100%}.full-width{width:100%;margin-top:16px}.inline-alert{margin:14px 0 0;border-radius:8px;background:#fee;color:var(--danger);padding:10px 12px;font-size:13px;font-weight:500}.system-panel{display:grid;align-content:space-between}.system-copy{margin-bottom:20px;color:var(--muted);font-size:13px;font-weight:400;line-height:18px}.version-copy{margin:0;color:#a3a3a3;font-size:12px;font-weight:500;line-height:16px}@media(max-width:980px){.app-shell{padding:22px 18px 32px}.topbar{align-items:flex-start}.user-block span{display:none}.dashboard-grid,.map-list,.button-row,.metric-list{grid-template-columns:1fr}.hero-band{min-height:300px;margin-top:44px}.action-panel{grid-row:auto}h2{font-size:24px;line-height:28px}.map-panel{padding:16px}.map-canvas,.google-map-frame,.map-svg{height:280px;min-height:280px}}@media(max-width:460px){.auth-shell{padding:18px}.corner-brand{top:22px;left:22px}.auth-card{width:min(100%,312px)}.brand-mark{width:16px;height:16px}h1{font-size:24px;line-height:28px}}
