@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,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:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,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:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}*{box-sizing:border-box}body,html{width:100%;height:100%;margin:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}body{background:#f4f4f4;color:#202020;font-family:Arial,Helvetica,sans-serif}.app-shell,.loading,main{width:100%;height:100vh}.loading{display:grid;place-items:center}.top-toolbar{position:fixed;z-index:2000;top:12px;right:12px;display:flex;gap:8px}#program-toolbar-slot,#search-toolbar-slot{display:contents}.auth-button,.auth-placeholder,.toolbar-button{position:relative;border:1px solid rgb(0 0 0/14%);background:white;box-shadow:0 4px 14px rgb(0 0 0/18%);font-size:20px;text-decoration:none}.auth-button:hover,.toolbar-button:hover{background:#f5f5f5}.toolbar-count{position:absolute;top:-4px;right:-4px;display:grid;min-width:20px;height:20px;padding:0 5px;place-items:center;border:2px solid white;border-radius:10px;background:#202020;color:white;font-size:11px;font-weight:700}.map,.map-app,.map-section{width:100%;height:100vh}.modal-backdrop{position:fixed;z-index:2800;inset:0;border:0;background:rgb(0 0 0/42%)}.search-dialog{position:fixed;z-index:2900;top:74px;right:12px;width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 90px);padding:18px;overflow-y:auto;border-radius:18px;background:white;box-shadow:0 15px 45px rgb(0 0 0/28%)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.dialog-header h2{margin:0;font-size:20px}.dialog-close{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:50%;background:#eeeeee;color:#202020;font-size:27px;line-height:1}.address-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.address-search-form input{min-width:0;padding:12px 14px;border:1px solid #cccccc;border-radius:10px}.address-search-form>button{padding:0 16px;border:0;border-radius:10px;background:#202020;color:white;font-weight:700}.search-results{display:grid;gap:6px;margin-top:12px}.search-results button{padding:11px 12px;border:1px solid #e1e1e1;border-radius:10px;background:white;text-align:left}.search-results button:hover{background:#f4f4f4}.program-panel{position:fixed;z-index:2900;top:0;right:0;width:min(420px,92vw);height:100vh;padding:18px;overflow-y:auto;background:white;box-shadow:-12px 0 40px rgb(0 0 0/24%);transform:translateX(105%);transition:transform .18s ease}.program-panel-open{transform:translateX(0)}.location-controls{margin-bottom:18px;padding:14px;border-radius:14px;background:#f5f8ff}.location-controls h3{margin:0 0 10px;font-size:16px}.location-controls button{width:100%;margin-top:8px;padding:10px 12px;border:0;border-radius:9px;background:#e7e7e7;font-weight:700}.program-list{display:grid;gap:10px}.program-item{display:flex;overflow:hidden;border:1px solid #dddddd;border-radius:13px;background:white}.current-program-item{border-color:#77aaff;background:#f1f7ff}.program-main-button{display:flex;min-width:0;flex:1 1;align-items:flex-start;gap:12px;padding:13px;border:0;background:transparent;text-align:left}.program-marker{position:relative;width:17px;height:22px;flex:0 0 auto;margin-top:2px;border-radius:10px 10px 10px 0;background:#e53935;transform:rotate(-45deg)}.program-marker:after{position:absolute;top:6px;left:6px;width:5px;height:5px;border-radius:50%;background:white;content:""}.current-program-marker{width:18px;height:18px;margin-top:3px;border:3px solid white;border-radius:50%;background:#1677ff;box-shadow:0 0 0 3px rgb(22 119 255/22%);transform:none}.current-program-marker:after{display:none}.program-content{display:grid;min-width:0;gap:3px}.program-content strong{font-size:15px}.program-content span{font-size:13px;font-weight:700}.program-content small{overflow:hidden;color:#666666;text-overflow:ellipsis;white-space:nowrap}.program-edit-button{min-width:78px;padding:0 10px;border:0;border-left:1px solid #eeeeee;background:#fafafa;font-size:13px}.empty-program{color:#666666;font-size:14px}.point-editor{position:fixed;z-index:3000;top:74px;right:12px;width:min(390px,calc(100vw - 24px));max-height:calc(100vh - 90px);padding:18px;overflow-y:auto;border-radius:18px;background:white;box-shadow:0 15px 45px rgb(0 0 0/28%)}.point-editor h2{margin:0 0 16px;font-size:20px}.point-editor label{display:block;margin-bottom:13px;font-weight:700}.point-editor input,.point-editor textarea{width:100%;margin-top:7px;padding:10px 12px;border:1px solid #cccccc;border-radius:9px;background:white;font-weight:400}.point-editor textarea{resize:vertical}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.editor-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.editor-actions button{padding:10px 13px;border:0;border-radius:9px;font-weight:700}.primary-button{background:#202020;color:white}.primary-button:disabled{opacity:.45}.secondary-button{background:#eeeeee}.danger-button{margin-right:auto;background:#ffe3e3;color:#980000}.form-error,.map-global-error{color:#a00000;font-size:13px}.map-global-error{position:fixed;z-index:3100;top:74px;left:50%;width:min(560px,calc(100vw - 24px));padding:11px 14px;transform:translateX(-50%);border:1px solid #e8aaaa;border-radius:10px;background:#fff0f0;box-shadow:0 8px 24px rgb(0 0 0/15%)}.appointment-pin{position:relative;width:28px;height:36px;border-radius:16px 16px 16px 0;background:#e53935;box-shadow:0 3px 8px rgb(0 0 0/35%);transform:rotate(-45deg)}.appointment-pin span{position:absolute;top:9px;left:9px;width:10px;height:10px;border-radius:50%;background:white}.current-location-pulse{position:relative;display:grid;width:42px;height:42px;place-items:center}.current-location-pulse:before{position:absolute;width:34px;height:34px;border-radius:50%;background:rgb(22 119 255/28%);content:"";animation:location-pulse 1.8s ease-out infinite}.current-location-dot{position:relative;z-index:1;width:22px;height:22px;border:4px solid white;border-radius:50%;background:#1677ff;box-shadow:0 3px 8px rgb(0 0 0/30%)}@keyframes location-pulse{0%{opacity:.9;transform:scale(.65)}to{opacity:0;transform:scale(1.35)}}.point-popup p{margin:7px 0 0}.popup-schedule{font-weight:700}.popup-updated{color:#666666;font-size:12px}.popup-edit-button{margin-top:12px;padding:7px 10px;border:0;border-radius:7px;background:#202020;color:white}.login-page{display:grid;min-height:100vh;padding:20px;place-items:center}.login-card{width:min(420px,100%);padding:28px;border:1px solid #dddddd;border-radius:18px;background:white}.login-card h1{margin:22px 0 8px;font-size:25px}.login-card>p{margin:0 0 22px;color:#666666}.login-card label{display:block;font-weight:700}.login-card input{width:100%;margin-top:8px;padding:12px;border:1px solid #cccccc;border-radius:10px}.login-card form>button{width:100%;margin-top:18px;padding:12px;border:0;border-radius:10px;background:#202020;color:white;font-weight:700}.login-back-link{color:#444444;text-decoration:none}@media (max-width:600px){.top-toolbar{top:8px;right:8px;gap:6px}.auth-button,.auth-placeholder,.toolbar-button{width:42px;height:42px}.search-dialog{top:60px;right:8px;width:calc(100vw - 16px);max-height:calc(100vh - 68px)}.address-search-form{grid-template-columns:1fr}.address-search-form>button{min-height:42px}.program-panel{width:100vw}.point-editor{top:60px;right:8px;width:calc(100vw - 16px);max-height:calc(100vh - 68px)}.time-fields{grid-template-columns:1fr;gap:0}}a,button,input,textarea{appearance:none;-webkit-tap-highlight-color:transparent}button{color:inherit}.top-toolbar{z-index:5000;top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));align-items:center}.auth-button,.auth-placeholder,.toolbar-button{display:grid;width:46px;height:46px;min-width:46px;min-height:46px;padding:0;place-items:center;border-radius:50%;color:#202020;line-height:1}.auth-button svg,.toolbar-button svg{display:block;width:22px;height:22px;margin:0}.toolbar-count{top:-5px;right:-5px}.modal-backdrop{z-index:6000}.program-panel,.search-dialog{z-index:6100}.program-panel{height:100dvh;padding:calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left))}.program-panel .dialog-header{align-items:center}.location-controls button,.program-edit-button,.program-main-button{color:#202020}.program-edit-button{background:#f7f7f7;color:#202020}.location-controls button{background:#e8e8e8;color:#202020}.location-controls .tracking-active{background:#dff7e5;color:#136b2d}.leaflet-bottom,.leaflet-top{z-index:900}.appointment-icon-wrapper,.current-location-icon-wrapper{border:0;background:transparent}.appointment-icon-wrapper svg{display:block;overflow:visible}@media (max-width:600px){.point-editor{top:auto;right:8px;bottom:8px;left:8px;width:auto;max-height:72dvh;padding:14px;border-radius:16px}.point-editor h2{margin-bottom:12px;font-size:18px}.point-editor label{margin-bottom:10px;font-size:14px}.point-editor input,.point-editor textarea{margin-top:5px;padding:9px 10px;font-size:16px}.point-editor textarea{min-height:70px;max-height:120px}.time-fields{grid-template-columns:1fr 1fr;gap:8px}.editor-actions{position:sticky;bottom:-14px;margin:8px -14px -14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #eeeeee;background:white}.editor-actions button{padding:9px 11px;font-size:14px}}.appointment-time-icon-wrapper{border:0;background:transparent}.appointment-time-marker{position:relative;display:grid;min-width:54px;height:30px;padding:0 9px;place-items:center;border:2px solid white;border-radius:9px;background:#e53935;color:white;box-shadow:0 3px 8px rgb(0 0 0/32%);font-size:13px;font-weight:800;line-height:1;white-space:nowrap}.appointment-time-pointer{position:absolute;top:26px;left:50%;width:12px;height:12px;border-right:2px solid white;border-bottom:2px solid white;background:#e53935;transform:translateX(-50%) rotate(45deg)}