.landing{min-height:100%;background:#f4f7fb;color:#102033}.landing-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:12px clamp(16px,5vw,64px);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #e3e9f0}.landing-brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:#102033;text-decoration:none}.landing-brand img{width:34px;height:34px;border-radius:9px}.landing-nav{display:flex;gap:18px;margin-left:auto}.landing-nav a{color:#33475b;text-decoration:none;font-size:14px}.landing-nav a:hover{color:#0b6bcb}.landing-header-actions{display:flex;gap:8px}.landing-header-actions button{padding:9px 14px;font-weight:600}.landing-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding:clamp(32px,6vw,80px) clamp(16px,5vw,64px);background:linear-gradient(180deg,#eaf1fb,#f4f7fb)}.landing-pill{display:inline-block;padding:6px 12px;border-radius:999px;background:#dceafd;color:#0b4da2;font-size:13px;font-weight:600}.landing-hero h1{margin:16px 0 12px;font-size:clamp(30px,4.4vw,52px);line-height:1.1}.landing-hero-text p{margin:0;max-width:560px;color:#47586b;font-size:17px;line-height:1.55}.landing-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.landing-hero-actions button{padding:12px 20px;font-size:15px;font-weight:600}.landing-hero-points{display:flex;gap:18px;flex-wrap:wrap;list-style:none;padding:0;margin:24px 0 0;color:#47586b;font-size:14px}.landing-hero-points li:before{content:"★";color:#f5a623;margin-right:6px}.landing-hero-visual{display:flex;justify-content:center}.landing-phone{position:relative;width:min(320px,82vw);aspect-ratio:9 / 18;border-radius:36px;background:#102033;padding:12px;box-shadow:0 30px 70px #10203359}.landing-phone-bar{position:absolute;top:18px;left:50%;transform:translate(-50%);width:90px;height:6px;border-radius:3px;background:#ffffff59}.landing-phone-map{position:relative;height:100%;border-radius:26px;overflow:hidden;background:radial-gradient(circle at 30% 25%,#dceafd 0%,transparent 40%),radial-gradient(circle at 75% 70%,#d9f2e2 0%,transparent 42%),#eef3f9}.landing-phone-map .landing-route{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.landing-dot{position:absolute;width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px #1020334d}.landing-dot-a{top:22%;left:26%;background:#1565c0}.landing-dot-b{top:52%;left:58%;background:#c62828}.landing-dot-c{bottom:20%;left:40%;background:#2e7d32}.landing-phone-card{position:absolute;left:24px;bottom:24px;display:grid;gap:2px;padding:10px 14px;border-radius:12px;background:#fffffff2;box-shadow:0 8px 20px #10203333;font-size:13px}.landing-phone-card span{color:#6b7683;font-size:12px}.landing-features,.landing-how,.landing-pricing,.landing-faq{padding:clamp(40px,6vw,72px) clamp(16px,5vw,64px)}.landing-features h2,.landing-how h2,.landing-pricing h2,.landing-faq h2,.landing-cta h2{margin:0 0 8px;font-size:clamp(24px,3vw,34px);text-align:center}.landing-section-sub{margin:0 auto 28px;max-width:620px;text-align:center;color:#47586b}.landing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:28px}.landing-feature{padding:22px;border-radius:16px;background:#fff;border:1px solid #e3e9f0;box-shadow:0 6px 20px #1020330d}.landing-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:#e7f0fb;color:#0b6bcb}.landing-feature h3{margin:14px 0 6px;font-size:17px}.landing-feature p{margin:0;color:#47586b;font-size:14px;line-height:1.5}.landing-how{background:#fff}.landing-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:28px}.landing-step{padding:22px;border-radius:16px;background:#f4f7fb}.landing-step-n{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#0b6bcb;color:#fff;font-weight:700}.landing-step h3{margin:14px 0 6px;font-size:17px}.landing-step p{margin:0;color:#47586b;font-size:14px;line-height:1.5}.landing-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;align-items:stretch}.landing-plan{position:relative;display:grid;gap:10px;align-content:start;padding:26px 22px;border-radius:18px;background:#fff;border:1px solid #e3e9f0;box-shadow:0 8px 24px #1020330f}.landing-plan.is-highlighted{border-color:#0b6bcb;box-shadow:0 16px 40px #0b6bcb2e}.landing-plan-tag{position:absolute;top:-12px;left:22px;padding:4px 10px;border-radius:999px;background:#0b6bcb;color:#fff;font-size:12px;font-weight:600}.landing-plan h3{margin:0;font-size:20px}.landing-plan-desc{margin:0;color:#6b7683;font-size:13px;min-height:34px}.landing-plan-price{margin:4px 0;font-size:28px;font-weight:700}.landing-plan-old{margin-left:10px;color:#98a4b1;font-size:16px;font-weight:400;text-decoration:line-through}.landing-plan-perks{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:6px;color:#47586b;font-size:14px}.landing-plan-perks li:before{content:"✓";color:#1b7f3b;margin-right:8px}.landing-plan button{margin-top:auto;padding:11px 16px;font-weight:600}.landing-promos{display:grid;gap:10px;margin-top:26px}.landing-promo{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;border-radius:12px;background:#fff8e1;color:#6d4c41}.landing-promo code{margin-left:auto;padding:4px 10px;border-radius:8px;background:#fff;font-weight:700;color:#0b4da2}.landing-faq-list{max-width:760px;margin:28px auto 0;display:grid;gap:10px}.landing-faq-list details{padding:14px 18px;border-radius:12px;background:#fff;border:1px solid #e3e9f0}.landing-faq-list summary{cursor:pointer;font-weight:600}.landing-faq-list p{margin:10px 0 0;color:#47586b;line-height:1.55}.landing-cta{padding:clamp(40px,6vw,72px) clamp(16px,5vw,64px);text-align:center;background:#102033;color:#fff}.landing-cta p{color:#b8c6d6;margin:0 0 22px}.landing-cta button{padding:13px 26px;font-size:15px;font-weight:600}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px clamp(16px,5vw,64px);background:#fff;border-top:1px solid #e3e9f0}.landing-auth{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:16px}.landing-auth-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#10203380}.landing-auth-panel{position:relative;width:min(420px,100%);max-height:92vh;overflow:auto}.landing-auth-panel .auth{min-height:0;padding:0}.landing-auth-panel .card{max-width:none;position:relative}.auth-back{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:0;border-radius:50%;font-size:18px;line-height:1}@media(max-width:820px){.landing-nav{display:none}.landing-hero{grid-template-columns:1fr;text-align:center}.landing-hero-text p{margin:0 auto}.landing-hero-actions,.landing-hero-points{justify-content:center}.landing-hero-visual{order:-1}}.legal-body{max-width:760px;margin:0 auto;padding:clamp(28px,6vw,56px) clamp(16px,5vw,24px)}.legal-body h1{margin:0 0 6px;font-size:clamp(26px,4vw,36px)}.legal-intro{font-size:17px;color:#47586b}.legal-body section{margin-top:24px}.legal-body section h2{margin:0 0 6px;font-size:18px}.legal-body section p{margin:0;color:#47586b;line-height:1.6}.landing-audience{padding:clamp(40px,6vw,72px) clamp(16px,5vw,64px);background:#fff}.landing-audience h2{margin:0 0 8px;font-size:clamp(24px,3vw,34px);text-align:center}.landing-audience-card{padding:22px;border-radius:16px;background:#f4f7fb}.landing-audience-card h3{margin:0 0 6px;font-size:17px}.landing-audience-card p{margin:0;color:#47586b;font-size:14px;line-height:1.5}.landing-security{padding:clamp(40px,6vw,72px) clamp(16px,5vw,64px)}.landing-security-inner{max-width:760px;margin:0 auto;padding:26px;border-radius:18px;background:#102033;color:#fff}.landing-security-inner h2{margin:0 0 14px;font-size:clamp(22px,3vw,30px)}.landing-security-inner ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.landing-security-inner li{position:relative;padding-left:26px;color:#cdd9e6;line-height:1.55}.landing-security-inner li:before{content:"✓";position:absolute;left:0;color:#4c9be8;font-weight:700}.landing-security-inner .meta{margin-top:16px}.landing-security-inner a{color:#7db8ef}.landing-footer-links{display:flex;gap:16px}.landing-footer-links a{color:#33475b;font-size:14px;text-decoration:none}.landing-footer-links a:hover{color:#0b6bcb}.landing-mobile-cta{display:none}@media(max-width:820px){.landing-mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:30;display:block;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#fffffff5;border-top:1px solid #e3e9f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.landing-mobile-cta button{width:100%;padding:13px;font-size:15px;font-weight:600}}.shell{height:100%;display:flex;flex-direction:column}.toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-left:calc(16px + env(safe-area-inset-left,0px));padding-right:calc(16px + env(safe-area-inset-right,0px));background:#fff;border-bottom:1px solid #d7e0ea}.toolbar h1,.card h1,.card h2,.card h3{margin:0 0 8px;font-size:18px}.meta{margin:4px 0 0;color:#4d6275;font-size:13px}.actions,.row,.map-actions{display:flex;gap:8px;flex-wrap:wrap}.menu-toggle,.bell-float{position:fixed;z-index:70;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border-radius:50%;background:#fff;color:#102033;box-shadow:0 2px 10px #10203340}.menu-toggle{top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px))}.bell-float{top:calc(12px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px))}.map-float-badge,.map-rail-badge{position:absolute;top:-4px;right:-4px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border-radius:50%;background:#d32f2f;color:#fff;font-size:10px;font-weight:700;line-height:1;text-align:center;z-index:1}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:90;display:flex;flex-direction:column;width:min(300px,84vw);background:#fff;box-shadow:4px 0 24px #10203340;overflow:visible;transform:translate(-105%);transition:transform .2s ease}.sidebar-scroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:4px;padding:16px;padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));overflow-y:auto}.sidebar.is-open{transform:translate(0)}.sidebar-close{position:absolute;top:calc(22px + env(safe-area-inset-top,0px));right:-13px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;background:#eceff3;color:#102033;box-shadow:0 2px 8px #10203340}.sidebar-brand h1{margin:0;font-size:20px}.sidebar-nav{display:grid;gap:4px;margin-top:12px}.sidebar-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:12px 14px;border-radius:10px;background:transparent;color:#102033;font-size:15px;font-weight:600;text-align:left}.sidebar-item:hover{background:#f0f4f9}.sidebar-item.is-active{background:#e7f0fb;color:#0b6bcb}.sidebar-sep{height:1px;margin:8px 4px;background:#e3e9f0}.sidebar-group-title{margin:4px 4px 2px;color:#6b7683;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sidebar-source{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:2px 4px}.sidebar-source-btn{padding:10px 12px;border:1px solid #dbe3ec;border-radius:10px;background:#fff;color:#102033;font-size:14px;font-weight:600;cursor:pointer}.sidebar-source-btn:hover{background:#f0f4f9}.sidebar-source-btn.is-active{border-color:#0b6bcb;background:#e7f0fb;color:#0b6bcb}.sidebar-badge{min-width:20px;padding:1px 7px;border-radius:10px;background:#d32f2f;color:#fff;font-size:12px;text-align:center}.toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:50%;background:#eceff3;color:#102033}.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d32f2f;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.notifications-page{padding:12px 16px;overflow-y:auto}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.notif-head-actions{display:flex;gap:8px}.notif-h2{display:flex;align-items:center;gap:8px;margin:16px 0 8px;font-size:18px}.notif-h2-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#1565c0;color:#fff;font-size:12px;font-weight:700;line-height:1;vertical-align:middle;margin-left:8px}.notif-h2-badge.is-zero{background:#e3e9f0;color:#6b7683}.notif-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.notif-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid #e3e9f0;border-radius:12px;background:#fff}.notif-item.is-unread{border-color:#bcd4ef;background:#f4f9ff}.notif-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#eef3f9;color:#33475b}.notif-item.kind-motion .notif-icon{background:#fdecea;color:#c62828}.notif-item.kind-device .notif-icon{background:#e8f0fe;color:#1565c0}.notif-item.kind-promo .notif-icon{background:#fff4e5;color:#ef6c00}.notif-main{display:grid;gap:4px;min-width:0}.notif-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.notif-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.notif-time{flex:0 0 auto;color:#6b7683;font-size:12px;white-space:nowrap}.notif-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#33475b;font-size:13px;font-weight:600}.notif-source{flex:0 0 auto;color:#6b7683;font-size:12px;white-space:nowrap}.map-float,.panel-close,.panel-handle{display:none}button{border:0;background:#1565c0;color:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}button.secondary{background:#eceff3;color:#102033}button.danger{background:#fdecec;color:#b3261e}button:disabled{opacity:.6;cursor:default}.map-wrap,.page{flex:1 1 auto;min-height:0}.map-wrap{display:flex;flex-direction:column}.map-body{flex:1 1 auto;min-height:0;position:relative;display:block}.map-chat{display:none}.map-actions{padding:8px 60px;padding-left:calc(60px + env(safe-area-inset-left,0px));padding-right:calc(60px + env(safe-area-inset-right,0px));align-items:center}.pwa-install-banner{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;justify-content:space-between;width:fit-content;max-width:min(560px,calc(100vw - 32px));margin:8px auto 0;padding:10px 16px;border:1px solid #d7e0ea;border-radius:14px;box-shadow:0 6px 18px #1020331f;background:#eef6ff;color:#0f3d6e}.pwa-install-copy{display:grid;gap:2px;min-width:0;flex:1 1 180px}.pwa-install-copy strong{font-size:14px}.pwa-install-copy span{font-size:12px;color:#4d6275}.pwa-install-actions{display:flex;gap:8px;flex:0 0 auto}.toast-stack{position:fixed;top:calc(60px + env(safe-area-inset-top,0px));left:50%;right:auto;bottom:auto;transform:translate(-50%);z-index:120;display:flex;flex-direction:column;align-items:stretch;gap:8px;width:min(440px,calc(100vw - 24px));pointer-events:none}.toast-item.is-chat{padding:12px 14px;border-radius:12px;font-size:17px;line-height:1.4;box-shadow:0 10px 30px #10203359}.toast-item.is-chat .toast-body{color:#fff;font-weight:600}.toast-item.is-chat .toast-close{color:#ffffffd9}.toast-item.is-chat .toast-close:hover{color:#fff}.toast-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;background:#102033;color:#fff;box-shadow:0 8px 24px #10203347;font-size:13px;line-height:1.35;pointer-events:auto;animation:toast-in .18s ease-out}.toast-item span,.toast-body{flex:1 1 auto}.toast-body{margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.toast-item.is-chat .toast-body:hover{text-decoration:underline}.toast-close{flex:0 0 auto;margin:-4px -4px 0 0;padding:0 6px;min-width:0;border:0;background:transparent;color:#c9d5e2;font-size:18px;line-height:1.1;cursor:pointer}.toast-close:hover{color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}button.secondary.is-motion-active{background:#fff4df;border-color:#e0b35a;color:#6a4708}.motion-log-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.motion-log-head h2{margin:0}.log-event.is-motion{background:#fff4df}.map-actions .map-option{display:inline-flex;align-items:center;gap:6px;margin:0;color:#102033;font-size:13px;cursor:pointer}.map-actions .map-option input{margin:0}.map-actions select{min-width:118px;padding:8px 10px}.map-stage-wrap{position:relative;min-height:0;height:100%}.map-top-left{position:absolute;z-index:2;top:calc(12px + calc(53px * 1.2) + var(--ctrl-gap, 10px));right:calc(var(--ctrl-size, 53px) + 24px);display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(320px,50vw);pointer-events:none}.map-top-left>*{pointer-events:auto}.map-route-legend{display:grid;gap:4px;margin:0;padding:8px 10px;border-radius:8px;background:#fffc;box-shadow:0 4px 12px #1020331f;color:#102033;font-size:13px;pointer-events:none}.map-location-warn{margin:0;padding:6px 10px;border-radius:8px;background:#fde7e7;color:#7a1c1c;font-size:13px;pointer-events:none}.participant-kind.is-warn{color:#c62828}.map-measure{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:#fffc;box-shadow:0 4px 12px #1020331f;color:#102033;font-size:13px;white-space:nowrap}.map-stage,.map{position:relative;min-height:0;height:100%;width:100%}.map.maplibregl-map,.map .maplibregl-canvas-container,.map .maplibregl-canvas{height:100%;width:100%}.map-empty{position:absolute;z-index:2;inset:auto 16px 16px;margin:0;padding:10px 12px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #1020331f;color:#4d6275;font-size:13px;pointer-events:none}.maplibregl-popup-content{border-radius:8px;box-shadow:0 4px 12px #00000026}.maplibregl-ctrl-group{touch-action:manipulation;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px #10203340;background:transparent}.maplibregl-ctrl-group button{width:var(--ctrl-size);height:var(--ctrl-size);min-width:var(--ctrl-size);min-height:var(--ctrl-size);background-color:#fffc}.map .maplibregl-ctrl-top-right{--nav-h: calc(var(--ctrl-size) * 3);--stack-bottom: calc( 12px + var(--ctrl-size) * 1.2 + var(--ctrl-size) * 3 + var(--ctrl-gap) * 4 );top:max(calc(50% - var(--nav-h) / 2),calc(var(--stack-bottom) + env(safe-area-inset-top,0px)));right:calc(var(--ctrl-center) - var(--ctrl-size) / 2 + env(safe-area-inset-right,0px))}.map .maplibregl-ctrl-top-right .maplibregl-ctrl{margin:0;float:none}@media(max-width:800px)and (max-height:520px){.map-float{left:calc(12px + env(safe-area-inset-left,0px));top:12px;bottom:auto;transform:none;flex-direction:column}.map .maplibregl-ctrl-top-right{top:50%;bottom:auto;right:auto;left:calc(84px + env(safe-area-inset-left,0px));transform:translateY(-50%)}}.map-chat{min-height:0;flex-direction:column;overflow:hidden;background:#fff;border-right:1px solid #d7e0ea;padding:12px}.map-chat.is-open{display:flex}.map-chat .chat-panel{flex:1 1 auto;min-height:0;max-height:none;height:100%;border:0;border-radius:0;padding:0;background:transparent}.map-rail,.map-float{display:none}@media(min-width:801px){:root{--map-rail-gap: 118px}.map-rail{position:absolute;top:12px;left:12px;z-index:30;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:20px;background:#0d47a1cc;box-shadow:0 10px 26px #10203359}.map-rail-btn{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:4px;width:78px;padding:12px 8px;border-radius:14px;background:transparent;color:#fff;font-size:13px;font-weight:600;line-height:1.1}.map-rail-btn:hover{background:#ffffff24;color:#fff}.map-rail-btn.is-active{background:#fff;color:#0b6bcb}.map-chat{display:flex;position:fixed;z-index:60;top:12px;bottom:12px;left:var(--map-rail-gap);right:auto;width:min(420px,calc(92vw - var(--map-rail-gap)));max-height:none;height:auto;border:3px solid #1565c0;border-radius:0 18px 18px 0;background:#fff;box-shadow:0 14px 40px #10203352;overflow:visible;--sheet-tab-top: var(--rail-chat-center, 104px);transform:translate(calc(-100% - var(--map-rail-gap)));opacity:0;transition:transform .24s ease-out,opacity .24s ease-out;pointer-events:none}.map-chat.is-open{transform:translate(0);opacity:1;pointer-events:auto}.map-chat.is-open:before,.participants-sheet.is-open:before,.shell[data-view=map] .sidebar.is-open:before{content:"";position:absolute;top:var(--sheet-tab-top);left:-12px;width:12px;height:22px;background:#1565c0;border-radius:0;clip-path:polygon(100% 0,0 50%,100% 100%);transform:translateY(-50%);box-shadow:none;z-index:1}.map-chat.is-open:after,.participants-sheet.is-open:after,.shell[data-view=map] .sidebar.is-open:after{content:"";position:absolute;top:var(--sheet-tab-top);left:-9px;width:11px;height:16px;background:#fff;border-radius:0;clip-path:polygon(100% 0,0 50%,100% 100%);transform:translateY(-50%);box-shadow:none;z-index:2}.participants-sheet{--sheet-tab-top: var(--rail-family-center, 172px)}.map-menu-sheet{--sheet-tab-top: var(--rail-menu-center, 36px)}.panel-handle{display:none}.panel-close{position:absolute;top:10px;right:10px;z-index:4;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:50%;background:#eceff3;color:#102033;font-size:20px;line-height:1}}.map-log{min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#fff;border-left:1px solid #d7e0ea;padding:12px 12px 16px;gap:10px}.map-log-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.map-log-toolbar .meta,.map-log-toolbar .map-stale{margin:0;flex:1 1 auto}.map-log-filters{display:flex;flex-direction:column;gap:8px}.map-log-filters select{width:100%}.child-route-table-wrap{display:flex;flex-direction:column;gap:6px}.child-route-table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.3}.child-route-table th,.child-route-table td{padding:5px 4px;text-align:left;border-bottom:1px solid #e6edf4;vertical-align:middle}.child-route-table th{color:#5b6b7c;font-weight:600;white-space:nowrap}.child-route-table tbody tr{cursor:pointer}.child-route-table tbody tr:hover{background:#f3f7fb}.child-route-table tbody tr.is-selected{background:#e8f1fb}.child-route-table td:nth-child(2),.child-route-table td:nth-child(3),.child-route-table td:nth-child(4),.child-route-table th:nth-child(2),.child-route-table th:nth-child(3),.child-route-table th:nth-child(4){text-align:center;width:1%}.child-route-swatch{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.child-route-color{width:28px;height:22px;padding:0;border:1px solid #c5d0db;border-radius:4px;background:transparent;cursor:pointer}.child-route-all{align-self:flex-start;padding:4px 10px;font-size:12px}.map-measure-bar{position:absolute;left:12px;bottom:12px;z-index:2;display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fffffff0;border:1px solid #c5d0db;border-radius:8px;box-shadow:0 2px 8px #1018281f;font-size:13px}.map-stage.is-measuring .map{cursor:crosshair}.chat-panel{display:flex;flex-direction:column;gap:8px;min-height:0}.chat-head{display:flex;flex-direction:column;align-items:stretch;gap:8px}.chat-head h2{margin:0}.chat-head-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chat-tabs{position:relative;display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;padding:2px;border-radius:8px;background:#e8eef5}.chat-tab{display:inline-flex;align-items:center;gap:2px;border-radius:6px;background:transparent;color:#334e68}.chat-tab.is-active{background:#fff;color:#102a43}.chat-tab-label{padding:6px 10px;border:0;border-radius:6px;background:transparent;color:inherit;font-size:inherit;font-weight:inherit;white-space:nowrap;cursor:pointer}.chat-tab.is-active .chat-tab-label{font-weight:600}.chat-tab-badge{margin:0 6px 0 2px;padding:0 5px;border-radius:9px;background:#d32f2f;color:#fff;font-size:10px;font-weight:600;line-height:16px}.chat-thread{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:12px}.chat-bubble{display:grid;gap:2px;max-width:92%;padding:8px 10px;border-radius:10px}.chat-bubble.is-parent{align-self:flex-end;background:#dbeafe}.chat-bubble.is-child{align-self:flex-start;background:#fff;border:1px solid #e2e8f0}.chat-meta{color:#4d6275;font-size:11px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.chat-ticks{margin:0;padding:0 4px;border:0;border-radius:4px;background:transparent;cursor:pointer;font-size:12px;letter-spacing:-1px;line-height:1}.chat-ticks.is-saved,.chat-ticks.is-sent,.chat-ticks.is-partial{color:#64748b}.chat-ticks.is-read{color:#2563eb}.chat-receipt-summary{margin:4px 0 0;padding:0;border:0;background:transparent;color:#64748b;font-size:11px;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.chat-receipts{list-style:none;margin:6px 0 0;padding:6px 8px;border-radius:8px;background:#ffffffb3;display:grid;gap:4px}.chat-receipts li{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#334e68}.chat-receipts li strong{font-weight:600}.chat-text{white-space:pre-wrap;word-break:break-word;font-size:14px}.chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.chat-compose .chat-send{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:50%;background:#1565c0;color:#fff}.chat-compose .chat-send:disabled{background:#c3ccd8;color:#fff}.chat-hint{margin:0}.map-log h2{margin:0 0 8px;font-size:14px}.map-log-col{flex:1 1 auto;min-width:0;min-height:0;overflow:auto}.map-stale{color:#8a1f1f}.map-log ol{list-style:none;margin:0;padding:0}.log-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:start;margin-bottom:8px}.log-item{display:grid;gap:2px;width:100%;margin:0;padding:8px 10px;border:0;border-radius:8px;background:#f4f7fb;color:inherit;text-align:left;cursor:pointer}.log-event{display:grid;gap:2px;margin-bottom:8px;padding:8px 10px;border-radius:8px;background:#fff8e1}.log-event.is-wake{background:#e8f5e9}.log-time,.log-name{color:#4d6275;font-size:12px}.log-coords{font-family:ui-monospace,Consolas,monospace;font-size:12px}@media(max-width:800px){.view-tabs{display:none}.bottom-nav{display:flex;border-top:1px solid #d7e0ea;background:#fff;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-btn{flex:1 1 0;min-height:48px;padding:8px 4px;border-radius:0;background:transparent;color:#4d6275;font-size:12px;font-weight:600}.bottom-nav-btn.is-active{color:#1565c0}.map-wrap{position:relative;overflow:hidden}.pwa-install-banner{display:none}.map-body{display:block;position:relative;height:100%}.map-stage-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.map-chat,.map-log{--sheet-gap: calc(80px + env(safe-area-inset-bottom, 0px)) ;position:fixed;z-index:60;top:auto;right:0;bottom:var(--sheet-gap);left:0;display:flex;height:calc(78vh - var(--sheet-gap));max-height:calc(78vh - var(--sheet-gap));border:0;border-radius:14px;box-shadow:0 8px 28px #1020334d;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));overflow-y:auto;transform:translateY(calc(100% + var(--sheet-gap)));opacity:0;transition:transform .24s ease-out,opacity .24s ease-out;pointer-events:none}.map-chat.is-open,.map-log.is-open{transform:translateY(0);opacity:1;pointer-events:auto}.panel-handle{position:sticky;top:0;z-index:3;display:flex;flex:0 0 auto;align-items:center;justify-content:center;height:26px;margin:-6px 0 2px;background:#fff;touch-action:none;cursor:grab}.panel-handle:before{content:"";width:44px;height:4px;border-radius:2px;background:#c7d0da}.panel-handle:active{cursor:grabbing}.panel-close{position:absolute;top:8px;right:10px;z-index:4;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:50%;background:#eceff3;color:#102033;font-size:20px;line-height:1}.map-log-rail{display:none}.map-float{position:absolute;left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:30;display:flex;gap:4px;padding:6px;border-radius:18px;background:#0d47a1cc;box-shadow:0 8px 22px #10203359}.map-float-btn{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:6px 8px;border-radius:12px;background:transparent;color:#fff;font-size:11px;font-weight:600;line-height:1.1}.map-float-btn:hover{background:#ffffff24;color:#fff}.map-float-btn.is-active{background:#fff;color:#0b6bcb}.map-actions .map-refresh,.map-actions .map-participants{display:none}.map-actions{position:absolute;top:8px;right:0;left:0;z-index:30;gap:8px;padding:6px 60px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.map-actions::-webkit-scrollbar{display:none}.map-actions>*{flex:0 0 auto}.map-actions button{min-height:40px;box-shadow:0 2px 8px #10203333}.map-actions button,.map-actions select,.map-actions .map-option{font-size:13px}.toolbar{gap:10px}.toolbar h1{font-size:16px}}.kid-marker{width:52px;height:62px}.place-marker{display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}.place-marker-label{padding:1px 5px;border-radius:6px;background:#ffffffe0;box-shadow:0 1px 2px #10203338;color:#102033;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}.place-marker-dot{box-sizing:border-box;width:12px;height:12px;margin-bottom:-6px;border:2px solid #ffffff;border-radius:50%;background:#455a64;box-shadow:0 1px 2px #10203347}.self-marker{width:18px;height:18px;pointer-events:none}.self-marker-dot{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box;border:2px solid #ffffff;border-radius:50%;background:#1a73e8;box-shadow:0 1px 3px #10203366}.self-marker-pulse{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;background:#1a73e840;animation:self-marker-pulse 2s ease-out infinite}@keyframes self-marker-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.8);opacity:0}}@media(prefers-reduced-motion:reduce){.self-marker-pulse{animation:none}}.kid-marker-inner{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(var(--fan-x, 0),var(--fan-y, 0));transition:transform .16s ease-out}.kid-marker-pin{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto;color:#fff;font-size:22px;font-weight:700;line-height:1;text-transform:uppercase;transform:rotate(var(--fan-rot, 0deg));transition:transform .16s ease-out;filter:drop-shadow(0 2px 4px rgba(16,32,51,.35))}.kid-marker-pin:before,.kid-marker-pin:after{content:"";position:absolute;clip-path:polygon(50% 0%,72% 20%,98% 35%,85% 61%,79% 90%,50% 87%,21% 90%,15% 61%,2% 35%,28% 20%)}.kid-marker-pin:before{top:-3px;right:-3px;bottom:-3px;left:-3px;background:#fff}.kid-marker-pin:after{top:0;right:0;bottom:0;left:0;background:var(--marker-color, #1565c0)}.kid-marker-initial{position:relative;z-index:1}.kid-marker-stem{position:absolute;left:26px;top:26px;z-index:0;width:16px;height:var(--stem-len, 0px);transform-origin:50% 0;transform:translate(-50%) rotate(var(--stem-angle, 0deg));opacity:0;filter:drop-shadow(0 1px 2px rgba(16,32,51,.3));transition:height .16s ease-out,transform .16s ease-out,opacity .12s linear}.kid-marker-stem:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;clip-path:polygon(0 0,100% 0,50% 100%)}.kid-marker-dot{position:absolute;top:100%;left:50%;z-index:3;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:var(--marker-color, #1565c0);box-shadow:0 1px 3px #10203366;transform:translate(-50%,-50%)}.kid-marker-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;pointer-events:none}.kid-marker.is-moving .kid-marker-ring:before,.kid-marker.is-moving .kid-marker-ring:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid var(--marker-color, #1565c0);border-radius:50%;pointer-events:none;animation:marker-pin-wave 1.5s ease-out infinite}.kid-marker.is-moving .kid-marker-ring:after{animation-delay:.9s}@keyframes marker-pin-wave{0%{transform:scale(1);opacity:.8}to{transform:scale(2.4);opacity:0}}.kid-marker.is-moving .kid-marker-dot:before,.kid-marker.is-moving .kid-marker-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid var(--marker-color, #1565c0);border-radius:50%;pointer-events:none;animation:marker-wave 1.5s ease-out infinite}.kid-marker.is-moving .kid-marker-dot:after{animation-delay:.9s}@keyframes marker-wave{0%{transform:scale(1);opacity:.85}to{transform:scale(4.5);opacity:0}}.kid-marker-label{position:absolute;bottom:calc(100% + 4px);left:50%;z-index:1;max-width:220px;overflow:hidden;padding:3px 10px;border-radius:8px;background:#fff;box-shadow:0 1px 4px #10203333;color:#102033;font-size:16px;font-weight:600;line-height:1.3;text-overflow:ellipsis;transform:translate(calc(-50% + var(--label-dx, 0px)));white-space:nowrap}.kid-marker.is-plain .kid-marker-label{display:none}.kid-marker.is-adult .kid-marker-pin{width:46px;height:46px;filter:drop-shadow(0 0 4px rgba(124,58,237,.55)) drop-shadow(0 2px 4px rgba(16,32,51,.35))}.kid-marker.is-adult .kid-marker-label{border-left:3px solid #7c3aed}.error{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:8px 16px;background:#fff3f3;color:#8a1f1f;padding:8px 12px;border-radius:8px}.error span{min-width:0}.promo{padding:8px 16px;background:#fff8e1;color:#6d4c41}.auth{min-height:100%;display:grid;place-items:center;padding:24px}.card,.page{background:#fff;padding:16px}.page{overflow:auto;padding-top:64px}.card{border-radius:12px;max-width:420px;display:grid;gap:10px}.page .card{margin-bottom:12px}label{display:grid;gap:4px;font-size:13px}input,select{border:1px solid #d7e0ea;border-radius:8px;padding:8px 10px;font:inherit}.form-error{color:#8a1f1f}.code{font-size:32px;letter-spacing:4px;font-weight:700;margin:8px 0}.list{list-style:none;padding:0;margin:16px 0}.list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.list-actions{display:flex;flex-wrap:wrap;gap:8px}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}.row{margin:12px 0}:root{--ctrl-size: 53px;--ctrl-center: 41px;--ctrl-gap: 10px}.route-float,.layers-float,.sound-float,.ruler-float,.bell-float,.focus-float,.gear-float{display:inline-flex;align-items:center;justify-content:center;width:var(--ctrl-size);height:var(--ctrl-size);padding:0;border-radius:50%;background:#fffc;color:#102033;box-shadow:0 2px 10px #10203340}.focus-float{position:absolute;top:calc(100% + var(--ctrl-gap));right:0}.sound-float{position:fixed;z-index:70;--ctrl-size: calc(53px * 1.2);top:calc(12px + env(safe-area-inset-top,0px));right:calc(var(--ctrl-center) - var(--ctrl-size) / 2 + env(safe-area-inset-right,0px))}.bell-float{position:fixed;z-index:70;top:calc(12px + calc(53px * 1.2) + var(--ctrl-gap) + env(safe-area-inset-top,0px));right:calc(var(--ctrl-center) - var(--ctrl-size) / 2 + env(safe-area-inset-right,0px))}.side-tools{position:fixed;z-index:70;top:calc(12px + calc(53px * 1.2) + var(--ctrl-gap) + var(--ctrl-size) + var(--ctrl-gap) + env(safe-area-inset-top,0px));right:calc(var(--ctrl-center) - var(--ctrl-size) / 2 + env(safe-area-inset-right,0px))}.side-tools-extra{position:absolute;top:0;right:calc(100% + var(--ctrl-gap));display:flex;gap:var(--ctrl-gap);transform:translate(calc(100% + var(--ctrl-size) + var(--ctrl-gap) * 2 + 4px));opacity:0;pointer-events:none;transition:transform .22s ease-out,opacity .22s ease-out}.side-tools.is-open .side-tools-extra{transform:translate(0);opacity:1;pointer-events:auto}.route-float.is-active,.layers-float.is-active,.sound-float.is-active,.ruler-float.is-active,.bell-float.is-active,.gear-float.is-active{background:#0d47a1cc;color:#fff}.route-pop-backdrop,.layers-pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:79;background:transparent}.pop-title{margin:0;padding-right:40px;font-size:20px;font-weight:700;color:#102033}.pop-close{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:50%;background:#eceff3;color:#102033;font-size:22px;line-height:1}.route-pop{position:fixed;top:calc(116px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:80;display:flex;flex-direction:column;gap:10px;width:min(330px,calc(100vw - 24px));padding:14px;border-radius:12px;background:#fff;box-shadow:0 12px 32px #10203352}.layers-pop{position:fixed;top:calc(168px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:80;display:flex;flex-direction:column;gap:10px;width:min(280px,calc(100vw - 24px));padding:14px;border-radius:12px;background:#fff;box-shadow:0 12px 32px #10203352}.layers-option{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:500}.layers-sep{height:1px;background:#e3e9f0}.layers-group-title{margin:0;color:#6b7683;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.layers-sources{display:grid;grid-template-columns:1fr 1fr;gap:6px}.layers-source{padding:9px 10px;border:1px solid #dbe3ec;border-radius:10px;background:#fff;color:#102033;font-size:14px;font-weight:600;cursor:pointer}.layers-source.is-active{border-color:#0b6bcb;background:#e7f0fb;color:#0b6bcb}.route-pop-head{display:flex;flex-direction:column;gap:8px}.route-pop-head select{width:100%}.route-pop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}.route-pop-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:6px 4px;font-size:14px}.route-pop-check{display:inline-flex;align-items:center}.route-pop-name{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-pop-row label{display:inline-flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap}.participants-sheet{position:fixed;z-index:96;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:12px;width:min(520px,calc(100vw - 32px));max-height:min(80vh,640px);padding:20px;border-radius:14px;background:#fff;box-shadow:0 16px 48px #10203359;overflow:hidden}.participants-close{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;background:#eceff3;color:#102033;font-size:22px;line-height:1}.participants-title{margin:0;font-size:24px}.brand-title{display:flex;align-items:center;gap:10px}.brand-logo{flex:none;width:48px;height:48px;border-radius:13px}.map-float-btn>svg,.map-float-btn>img,.map-rail-btn>svg,.map-rail-btn>img{height:30px}.participants-list{list-style:none;margin:0;padding:0;display:flex;flex:1 1 auto;min-height:0;flex-direction:column;gap:10px;overflow-y:auto}.participant-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;background:#f4f7fb}.participant-color{flex:0 0 auto;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}.participant-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}.participant-name-input{width:100%;padding:8px 10px;border:1px solid #d7e0ea;border-radius:8px;font-size:18px;font-weight:600}.participant-name-text{font-size:18px;font-weight:600}.participant-kind{color:#6b7683;font-size:14px}.log-page{display:flex;flex-direction:column;gap:12px}.log-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.log-head h2{margin:0}.log-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.log-controls select{min-width:180px}.log-col{min-width:0}.log-col ol{list-style:none;margin:0;padding:0}.log-item.is-static{cursor:default}@media(max-width:800px){.participants-sheet{--sheet-gap: calc(80px + env(safe-area-inset-bottom, 0px)) ;top:auto;left:0;right:0;bottom:var(--sheet-gap);width:auto;height:calc(78vh - var(--sheet-gap));max-height:calc(78vh - var(--sheet-gap));border-radius:14px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));overflow-y:auto;transform:translateY(calc(100% + var(--sheet-gap)));opacity:0;transition:transform .24s ease-out,opacity .24s ease-out;pointer-events:none}.participants-sheet.is-open{transform:translateY(0);opacity:1;pointer-events:auto}.participants-close{top:10px;right:10px}}@media(max-width:800px){.sidebar-admin{display:none}}.billing-page{display:flex;flex-direction:column;gap:16px;max-width:960px}.billing-title{margin:0;font-size:24px}.billing-current{display:flex;flex-direction:column;gap:10px;padding:18px 20px;border-radius:14px;background:linear-gradient(135deg,#1565c0,#0b4f9e);color:#fff;box-shadow:0 12px 30px #1565c04d}.billing-current-head{display:flex;align-items:center;gap:10px}.billing-current-head h3{margin:0;font-size:22px}.billing-badge{padding:3px 10px;border-radius:999px;background:#fff3;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.billing-current .meta{margin:0;color:#d7e7f8}.billing-perks{list-style:none;margin:0;padding:0;display:grid;gap:6px}.billing-perks li{position:relative;padding-left:18px;font-size:14px;color:#33475b}.billing-perks li:before{content:"";position:absolute;left:2px;top:7px;width:7px;height:7px;border-radius:50%;background:#1565c0}.billing-current .billing-perks li{color:#eaf2fc}.billing-current .billing-perks li:before{background:#9ec5f0}.billing-redeem{display:grid;gap:10px;padding:16px;border-radius:14px;background:#fff;border:1px solid #e2e8f0}.billing-redeem h3{margin:0;font-size:16px}.billing-redeem-row{display:flex;gap:8px}.billing-redeem-row input{flex:1 1 auto}.billing-promos{display:grid;gap:8px}.billing-promo{padding:12px 14px;border-radius:12px;background:#fff8e1;border:1px solid #f2e2b6}.billing-promo-code{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:999px;background:#fff;font-family:ui-monospace,Consolas,monospace;font-weight:700}.billing-subtitle{margin:4px 0 0;font-size:18px}.billing-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.billing-plan{position:relative;display:grid;gap:8px;padding:18px;border-radius:14px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 4px 14px #1020330f}.billing-plan.is-current{border-color:#1565c0;box-shadow:0 8px 24px #1565c02e}.billing-plan h3{margin:0;font-size:18px}.billing-plan-tag{position:absolute;top:12px;right:12px;padding:2px 8px;border-radius:999px;background:#e7f0fb;color:#0b6bcb;font-size:11px;font-weight:700}.billing-price{margin:0;display:flex;align-items:baseline;gap:8px;font-size:22px;font-weight:700;color:#102033}.billing-old{font-size:14px;font-weight:500;color:#8a97a6;text-decoration:line-through}.participants-code{display:grid;gap:2px;padding:12px 14px;border-radius:12px;background:#eef5fd;border:1px solid #cfe1f6;justify-items:start}.participants-code .code{margin:0}.participants-add{display:flex;gap:8px}.participants-add input{flex:1 1 auto}.participant-gear,.participant-focus{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid #dbe3ec;border-radius:50%;background:#fff;color:#33475b;cursor:pointer}.participant-gear:hover,.participant-focus:hover{background:#eef3f9}.participant-gear.is-active{border-color:#1565c0;background:#1565c0;color:#fff}.places-panel{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid #e3e9f0;border-radius:12px;background:#f7fafd}.places-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.places-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.places-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.places-list .place-kind{color:#6b7683;font-size:12px;text-transform:uppercase}.places-list .place-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.places-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.places-add button{grid-column:1 / -1}.participant-menu{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:6px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;box-shadow:0 6px 16px #1020331f}.participant-menu button{padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#102033;font-size:14px;text-align:left;cursor:pointer}.participant-menu button:hover{background:#f0f4f9}.participant-menu button.danger{color:#b3261e}.participant-menu button.danger:hover{background:#fdecec}.participant-rename{display:flex;gap:6px}.participant-rename input{flex:1 1 auto;padding:8px 10px;border:1px solid #d7e0ea;border-radius:8px;font-size:17px;font-weight:600}.participant-rename button{padding:8px 14px}.participants-limit{margin:0;text-align:center}@media(max-width:800px){.map-top-left{max-width:min(280px,60vw)}}.notif-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.notif-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#eceff3;color:#102033;font-size:20px;line-height:1;cursor:pointer}.notif-close:hover{background:#dfe5ec}.participants-sheet .notif-list{flex:1 1 auto;min-height:0;overflow-y:auto}@media(min-width:801px){.participants-sheet,.shell[data-view=map] .sidebar{position:fixed;z-index:96;top:12px;bottom:12px;left:var(--map-rail-gap);right:auto;display:flex;flex-direction:column;width:min(420px,calc(92vw - var(--map-rail-gap)));max-height:none;height:auto;padding:20px;border:3px solid #1565c0;border-radius:0 18px 18px 0;background:#fff;box-shadow:0 14px 40px #10203352;overflow:visible;transform:translate(calc(-100% - var(--map-rail-gap)));opacity:0;transition:transform .24s ease-out,opacity .24s ease-out;pointer-events:none}.participants-sheet.is-open,.shell[data-view=map] .sidebar.is-open{transform:translate(0);opacity:1;pointer-events:auto}.shell[data-view=map] .sidebar{--sheet-tab-top: 28px;padding:16px}.shell[data-view=map] .sidebar .sidebar-scroll{overflow-y:auto}.shell[data-view=map] .sidebar-close{top:12px;right:12px}.participants-sheet[data-sheet=notifications]{left:auto;right:calc(var(--ctrl-center) + var(--ctrl-size) / 2 + var(--ctrl-gap) + env(safe-area-inset-right,0px));border-radius:18px 0 0 18px;transform:translate(calc(100% + 24px));--sheet-tab-top: calc( var(--ctrl-size) * 1.2 + var(--ctrl-gap) + var(--ctrl-size) / 2 - 3px )}.participants-sheet[data-sheet=notifications].is-open{transform:translate(0)}.participants-sheet[data-sheet=notifications].is-open:before{left:auto;right:-12px;top:var(--sheet-tab-top);width:12px;height:22px;background:#1565c0;border-radius:0;clip-path:polygon(0 0,100% 50%,0 100%);transform:translateY(-50%);box-shadow:none;z-index:1}.participants-sheet[data-sheet=notifications].is-open:after{left:auto;right:-9px;top:var(--sheet-tab-top);width:11px;height:16px;background:#fff;border-radius:0;clip-path:polygon(0 0,100% 50%,0 100%);transform:translateY(-50%);box-shadow:none;z-index:2}}@media(max-width:800px){.shell[data-view=map] .sidebar{--sheet-gap: calc(80px + env(safe-area-inset-bottom, 0px)) ;top:auto;right:0;bottom:var(--sheet-gap);left:0;width:auto;max-height:calc(78vh - var(--sheet-gap));border-radius:14px;box-shadow:0 8px 28px #1020334d;transform:translateY(calc(100% + var(--sheet-gap)));transition:transform .24s ease-out;overflow:hidden}.shell[data-view=map] .sidebar.is-open{transform:translateY(0)}.shell[data-view=map] .sidebar-close{top:10px;right:10px}}@media(max-width:800px)and (max-height:520px){:root{--left-rail-w: 100px;--left-rail-h: 232px;--left-rail-left: calc(12px + env(safe-area-inset-left, 0px)) }.map-float{left:var(--left-rail-left);right:auto;top:12px;bottom:auto;width:var(--left-rail-w);transform:none;flex-direction:column;overflow:hidden}.map-float-btn{width:100%;min-width:0;padding:8px 4px;font-size:10px;white-space:nowrap}.map .maplibregl-ctrl-top-right{top:calc(12px + var(--left-rail-h) / 2 + env(safe-area-inset-top,0px));bottom:auto;right:auto;left:calc(var(--left-rail-left) + var(--left-rail-w) + 12px);transform:translateY(-50%)}.map-chat,.participants-sheet{top:12px;bottom:12px;left:calc(var(--left-rail-left) + var(--left-rail-w) + 12px);right:auto;width:min(360px,calc(100vw - var(--left-rail-w) - 40px));height:auto;max-height:none;border-radius:0 16px 16px 0;padding-bottom:16px;transform:translate(calc(-100% - var(--left-rail-w) - 40px));opacity:0;transition:transform .24s ease-out,opacity .24s ease-out;pointer-events:none;overflow-y:auto}.map-chat.is-open,.participants-sheet.is-open{transform:translate(0);opacity:1;pointer-events:auto}}@media(max-width:800px)and (max-height:440px){.map .maplibregl-ctrl-top-right{top:50%;bottom:auto;right:auto;left:calc(var(--left-rail-left) + var(--left-rail-w) + 12px);transform:translateY(-50%)}}@media(max-width:800px){.route-pop,.layers-pop{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 32px));max-height:min(80vh,640px);overflow-y:auto;z-index:80}.route-pop-backdrop,.layers-pop-backdrop{background:#10203359;z-index:79}}@media(max-width:800px)and (min-height:521px){.map-chat,.participants-sheet,.shell[data-view=map] .sidebar{left:12px;right:12px;width:auto}.map .maplibregl-ctrl-top-right{top:auto;bottom:calc(90px + env(safe-area-inset-bottom,0px));right:calc(12px + env(safe-area-inset-right,0px))}}@media(max-width:800px){.map-chat,.shell[data-view=map] .sidebar{z-index:96}}@media(max-width:800px){.map-wrap.has-sheet .sound-float,.map-wrap.has-sheet .bell-float,.map-wrap.has-sheet .side-tools,.map-wrap.has-sheet .focus-float,.map-wrap.has-sheet .maplibregl-ctrl-top-right,.map-wrap.has-sheet .maplibregl-ctrl-bottom-right,.map-wrap.has-sheet .maplibregl-ctrl-top-left,.map-wrap.has-sheet .maplibregl-ctrl-bottom-left{display:none}}:root{--adm-bg: #f4f7fb;--adm-surface: #ffffff;--adm-surface-2: #f7f9fc;--adm-border: #e3e9f0;--adm-border-strong: #cfdae5;--adm-text: #102033;--adm-text-muted: #47586b;--adm-text-faint: #94a3b8;--adm-accent: #0b6bcb;--adm-accent-weak: #dceafd;--adm-accent-ink: #0b4da2;--adm-accent-hi: #1779de;--adm-ok: #1b7f3b;--adm-ok-weak: #e6f6ec;--adm-warn: #a05a00;--adm-warn-weak: #fff4e2;--adm-err: #b3261e;--adm-err-weak: #fdecea;--adm-radius: 14px;--adm-radius-sm: 10px;--adm-radius-xs: 8px;--adm-shadow: 0 1px 2px rgba(16, 32, 51, .04), 0 8px 24px rgba(16, 32, 51, .05);--adm-shadow-sm: 0 1px 3px rgba(16, 32, 51, .08);--adm-space: 16px;--adm-font: "Segoe UI", system-ui, -apple-system, sans-serif}:root[data-admin-theme=dark]{color-scheme:dark;--adm-bg: #0d141c;--adm-surface: #16202b;--adm-surface-2: #1c2733;--adm-border: #26313e;--adm-border-strong: #33414f;--adm-text: #e6edf5;--adm-text-muted: #93a3b6;--adm-text-faint: #6b7c8f;--adm-accent: #4c9be8;--adm-accent-weak: #1b2f45;--adm-accent-ink: #a7cdf5;--adm-ok: #56c479;--adm-ok-weak: #16301f;--adm-warn: #e2a94b;--adm-warn-weak: #33270f;--adm-err: #f08a80;--adm-err-weak: #341b19;--adm-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .35);--adm-shadow-sm: 0 1px 3px rgba(0, 0, 0, .4)}.admin-app,.admin-login{font-family:var(--adm-font);background:var(--adm-bg);color:var(--adm-text)}.admin-app{display:flex;align-items:stretch;min-height:100dvh}.admin-sidebar{position:sticky;top:0;align-self:flex-start;display:flex;flex-direction:column;gap:14px;width:236px;flex:0 0 auto;min-height:100dvh;padding:14px 12px;background:var(--adm-surface);border-right:1px solid var(--adm-border)}.admin-brand{display:flex;align-items:center;gap:10px;padding:4px 6px}.admin-brand>div{display:grid;line-height:1.2}.admin-brand .meta{font-size:12px}.admin-brand-logo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;border-radius:11px}.admin-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.admin-login{align-items:center;justify-content:center;min-height:100dvh;padding:24px}.admin-login-card{display:grid;gap:12px;width:min(380px,100%);padding:28px 24px;border-radius:var(--adm-radius);background:var(--adm-surface);border:1px solid var(--adm-border);box-shadow:var(--adm-shadow)}.admin-login-card h1{margin:0;font-size:20px;text-align:center}.admin-login-logo{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 auto;border-radius:12px;background:var(--adm-accent-weak);color:var(--adm-accent)}.admin-error{margin:0;color:var(--adm-err);font-size:13px}.admin-sidebar{background:var(--adm-surface);border-right:1px solid var(--adm-border)}.admin-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;background:#ffffffe0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--adm-border)}:root[data-admin-theme=dark] .admin-topbar{background:#16202be0}.admin-user{display:flex;align-items:center;gap:10px;font-size:13px;min-width:0}.admin-user .meta{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;border-radius:999px;background:var(--adm-accent-weak);color:var(--adm-accent-ink);font-weight:700;font-size:14px}.admin-sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:8px 4px 0}.admin-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--adm-radius-xs);cursor:pointer}.admin-logout{flex:1;justify-content:center}.admin-brand strong{color:var(--adm-text)}.admin-brand .meta,.admin-breadcrumbs,.admin-breadcrumbs .sep{color:var(--adm-text-muted)}.admin-breadcrumbs strong{color:var(--adm-text)}.admin-breadcrumbs a{color:var(--adm-text-muted);text-decoration:none;cursor:pointer}.admin-breadcrumbs a:hover{color:var(--adm-accent)}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-tab{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border:0;border-radius:var(--adm-radius-sm);background:transparent;box-shadow:none;color:var(--adm-text-muted);font-weight:600;font-size:14px;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.admin-tab:hover{background:var(--adm-surface-2);color:var(--adm-text);filter:none;transform:none}.admin-tab.is-active{background:var(--adm-accent-weak);color:var(--adm-accent-ink)}.admin-tab.is-active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:3px;background:var(--adm-accent)}.admin-tab-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--adm-border);color:var(--adm-text);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.admin-brand-logo{background:var(--adm-accent-weak);color:var(--adm-accent)}.admin-theme-toggle{background:var(--adm-surface-2);color:var(--adm-text-muted);border:1px solid var(--adm-border)}.admin-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.admin-main{flex:1 1 auto;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:24px 32px 48px}@media(min-width:1800px){.admin-main{max-width:1680px}}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}.section-head h2{margin:0;font-size:20px;letter-spacing:-.01em;color:var(--adm-text)}.section-head p{margin:3px 0 0;color:var(--adm-text-muted);font-size:13px}.section-actions{display:flex;gap:8px;flex-wrap:wrap}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.kpi-card{position:relative;display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:var(--adm-radius);background:var(--adm-surface);border:1px solid var(--adm-border);box-shadow:var(--adm-shadow-sm)}.kpi-icon{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--adm-accent-weak);color:var(--adm-accent)}.kpi-value{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--adm-text);font-variant-numeric:tabular-nums}.kpi-label{color:var(--adm-text-muted);font-size:12.5px}.kpi-trend{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:12px;font-weight:600}.kpi-trend.up{color:var(--adm-ok)}.kpi-trend.down{color:var(--adm-err)}.kpi-trend.flat{color:var(--adm-text-faint)}.admin-panel{padding:18px;border-radius:var(--adm-radius);background:var(--adm-surface);border:1px solid var(--adm-border);box-shadow:var(--adm-shadow-sm)}.admin-panel+.admin-panel{margin-top:16px}.admin-panel-title{margin:0 0 14px;font-size:15px;font-weight:700;color:var(--adm-text)}.attention-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.attention-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--adm-radius-sm);background:var(--adm-warn-weak);color:var(--adm-warn);font-size:13px}.attention-list li.ok{background:var(--adm-ok-weak);color:var(--adm-ok)}.spark{width:100%;height:64px;display:block}.spark-line{fill:none;stroke:var(--adm-accent);stroke-width:2;vector-effect:non-scaling-stroke}.spark-area{fill:var(--adm-accent);opacity:.1}.spark-labels{display:flex;justify-content:space-between;color:var(--adm-text-faint);font-size:11px;margin-top:4px}.admin-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--adm-radius);overflow:hidden;font-size:13px}.admin-table th,.admin-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--adm-border);vertical-align:middle;color:var(--adm-text)}.admin-table thead th{position:sticky;top:0;z-index:1;background:var(--adm-surface-2);color:var(--adm-text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.admin-table tbody tr:nth-child(2n){background:var(--adm-surface-2)}.admin-table tbody tr:hover{background:var(--adm-accent-weak)}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table code{font-size:12px;color:var(--adm-text-muted)}.admin-table .th-sort{display:inline-flex;align-items:center;gap:4px;background:transparent;color:inherit;padding:0;font:inherit;font-weight:600;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.admin-table .th-sort:hover{color:var(--adm-accent)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;color:var(--adm-text-muted)}.num{font-variant-numeric:tabular-nums}.empty-state{display:grid;place-items:center;gap:6px;padding:40px 20px;text-align:center;color:var(--adm-text-muted)}.empty-state .empty-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--adm-surface-2);color:var(--adm-text-faint);margin-bottom:4px}.empty-state strong{color:var(--adm-text);font-size:14px}.data-table-toolbar button.secondary,.admin-row-actions button,.section-actions button,.admin-panel button{display:inline-flex;align-items:center;gap:6px}.admin-row-actions{display:flex;gap:6px;justify-content:flex-end}.admin-form input,.admin-form select,.admin-form textarea,.data-search input,.admin-grant input,.admin-grant select{font:inherit}.admin-form input:not([type=checkbox]):not([type=radio]),.admin-form select,.admin-grant input,.admin-grant select{height:40px;border:1px solid var(--adm-border-strong);border-radius:var(--adm-radius-xs);background:var(--adm-surface);color:var(--adm-text);padding:0 11px}.admin-form input:focus-visible,.admin-form select:focus-visible,.admin-grant input:focus-visible,.admin-grant select:focus-visible,.data-search:focus-within{outline:2px solid var(--adm-accent);outline-offset:1px}.admin-form-row label{display:inline-flex;flex-direction:column;gap:4px;font-size:12px;color:var(--adm-text-muted)}.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--adm-surface-2);border:1px solid var(--adm-border)}.segmented button{border-radius:999px;padding:6px 12px;background:transparent;color:var(--adm-text-muted);font-size:13px;font-weight:600}.segmented button.is-active{background:var(--adm-surface);color:var(--adm-accent-ink);box-shadow:var(--adm-shadow-sm)}.plan-accordion{border:1px solid var(--adm-border);border-radius:var(--adm-radius);background:var(--adm-surface);box-shadow:var(--adm-shadow-sm);overflow:hidden}.plan-accordion+.plan-accordion{margin-top:10px}.plan-summary{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;background:transparent;border:0;width:100%;text-align:left;color:var(--adm-text)}.plan-summary:hover{background:var(--adm-surface-2)}.plan-summary-name{display:flex;flex-direction:column;gap:2px}.plan-summary-name strong{font-size:15px}.plan-summary-name .mono{font-size:11px}.plan-summary-price{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.plan-body{padding:4px 16px 18px;border-top:1px solid var(--adm-border);background:var(--adm-surface)}.field-group{display:grid;gap:10px;padding:14px 0;border-bottom:1px dashed var(--adm-border)}.field-group:last-child{border-bottom:0}.field-group-title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--adm-text-faint)}.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--adm-text-muted);flex:1 1 140px}.field-row input,.field-row select{width:100%}.audit-action{display:inline-flex;align-items:center;gap:8px;font-weight:600}.audit-details-btn{background:transparent;color:var(--adm-accent);padding:0;font-size:12px;cursor:pointer}.audit-details{margin:6px 0 0;padding:8px 10px;border-radius:var(--adm-radius-xs);background:var(--adm-surface-2);border:1px solid var(--adm-border);font-family:ui-monospace,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;color:var(--adm-text-muted)}.truncate{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}@media(max-width:720px){.admin-app{flex-direction:column}.admin-sidebar{position:static;flex-direction:row;align-items:center;gap:6px;width:100%;max-width:100%;min-width:0;min-height:0;padding:6px 8px;overflow:hidden;border-right:0;border-bottom:1px solid var(--adm-border)}.admin-nav{flex:1 1 auto;min-width:0;flex-direction:row;overflow-x:auto;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-tab{flex:0 0 auto;white-space:nowrap;padding:10px 11px;font-size:13.5px}.admin-brand{display:none}.admin-sidebar-foot{margin-top:0;margin-left:auto;padding:0;flex:0 0 auto}.admin-logout{padding:9px 10px}.admin-main{padding:14px 12px 32px}.section-head h2{font-size:18px}.admin-topbar{padding:10px 12px}.admin-user .meta,.admin-table thead{display:none}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table{border:0;background:transparent}.admin-table tr{margin-bottom:10px;border:1px solid var(--adm-border);border-radius:var(--adm-radius-sm);background:var(--adm-surface);padding:6px 4px;box-shadow:var(--adm-shadow-sm)}.admin-table td{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--adm-border);padding:8px 12px}.admin-table td:last-child{border-bottom:0}.admin-table td:before{content:attr(data-label);color:var(--adm-text-faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}}.admin-two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;margin-top:16px}@media(max-width:900px){.admin-two-col{grid-template-columns:1fr}}.admin-breadcrumbs .crumb-link{background:transparent;border:0;padding:0;color:var(--adm-text-muted);font:inherit;cursor:pointer}.admin-breadcrumbs .crumb-link:hover{color:var(--adm-accent);text-decoration:underline}:where(.admin-app,.admin-login) button{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(180deg,var(--adm-accent-hi),var(--adm-accent));color:#fff;font:inherit;font-weight:600;font-size:13.5px;border-radius:var(--adm-radius-xs);padding:9px 14px;box-shadow:0 1px 2px #0b6bcb4d;transition:filter .12s ease,background .12s ease,transform .12s ease}:where(.admin-app,.admin-login) button:hover{filter:brightness(1.06)}:where(.admin-app,.admin-login) button:active{transform:translateY(1px)}:where(.admin-app,.admin-login) button.secondary{background:var(--adm-surface);color:var(--adm-text);border:1px solid var(--adm-border-strong);box-shadow:none}:where(.admin-app,.admin-login) button.secondary:hover{background:var(--adm-surface-2);filter:none}:where(.admin-app,.admin-login) button.danger{background:var(--adm-err-weak);color:var(--adm-err);border:1px solid transparent;box-shadow:none}:where(.admin-app,.admin-login) button:disabled{opacity:.55;box-shadow:none;filter:none;transform:none;cursor:default}.data-table{margin-top:12px;display:grid;gap:10px}.data-table-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.data-search{display:flex;align-items:center;gap:8px;width:min(320px,100%);height:40px;padding:0 12px;border:1px solid var(--adm-border-strong);border-radius:var(--adm-radius-xs);background:var(--adm-surface);color:var(--adm-text-faint)}.data-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;color:var(--adm-text)}.data-search input:focus-visible{outline:none}.data-table-scroll{overflow-x:auto;border-radius:var(--adm-radius)}.data-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px}.toasts{position:fixed;right:16px;bottom:16px;z-index:80;display:grid;gap:8px;max-width:min(360px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px;border-radius:var(--adm-radius-sm);background:var(--adm-surface);color:var(--adm-text);border:1px solid var(--adm-border);border-left:4px solid var(--adm-ok);box-shadow:var(--adm-shadow);font-size:13px;animation:adm-toast-in .18s ease}.toast-error{border-left-color:var(--adm-err)}.toast-close{margin-left:auto;padding:6px;background:transparent!important;color:var(--adm-text-muted);box-shadow:none;border:0}.toast-close:hover{filter:none;color:var(--adm-text)}@keyframes adm-toast-in{0%{opacity:0;transform:translateY(8px)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:16px;background:#0d141c73}.modal{display:grid;gap:14px;width:min(360px,100%);padding:18px;border-radius:var(--adm-radius);background:var(--adm-surface);border:1px solid var(--adm-border);box-shadow:var(--adm-shadow)}.modal p{margin:0;font-size:14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.skeleton{display:grid;gap:10px;margin-top:12px}.skeleton-row{height:48px;border-radius:var(--adm-radius-sm);background:linear-gradient(90deg,var(--adm-surface-2) 25%,var(--adm-border) 50%,var(--adm-surface-2) 75%);background-size:200% 100%;animation:adm-shimmer 1.2s infinite linear}@keyframes adm-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton-row{animation:none}}.error-state{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:14px 16px;border-radius:var(--adm-radius);background:var(--adm-err-weak);color:var(--adm-err);font-size:14px;border:1px solid transparent}.bar-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.bar-list li{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}.bar-label{grid-column:1 / -1;margin:0;font-size:13px;color:var(--adm-text-muted)}.bar-track{grid-column:1;display:block;height:10px;border-radius:999px;background:var(--adm-surface-2);border:1px solid var(--adm-border);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--adm-accent),var(--adm-accent-hi))}.bar-value{grid-column:2;font-size:13px;font-weight:700}.admin-form{display:grid;gap:12px;align-items:start;padding:18px;border-radius:var(--adm-radius);background:var(--adm-surface);border:1px solid var(--adm-border);box-shadow:var(--adm-shadow-sm)}.admin-form>.admin-panel-title{margin:0}.admin-form-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.admin-form textarea{width:100%;resize:vertical;min-height:72px}.admin-check,.admin-form-row .admin-check{display:inline-flex;align-items:center;gap:6px;flex-direction:row;font-size:13.5px;color:var(--adm-text);cursor:pointer}.admin-check:has(input[type=number]){flex-direction:column;align-items:flex-start}.admin-check input{accent-color:var(--adm-accent)}.admin-device-picker{display:grid;gap:8px;max-height:260px;overflow:auto;padding:10px;border:1px solid var(--adm-border);border-radius:var(--adm-radius-sm);background:var(--adm-surface-2)}.admin-device-picker ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.admin-grant{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-grant input{width:170px}.admin-notes{max-width:280px;white-space:pre-wrap}.admin-upload{display:inline-flex;align-items:center;color:var(--adm-accent);font-size:12.5px;cursor:pointer}.admin-upload input{display:none}:root{font-family:Segoe UI,system-ui,sans-serif;color:#102033;background:#f4f7fb}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}html{height:var(--app-h, 100%)}html{-webkit-text-size-adjust:100%}body{overscroll-behavior:none}@media(display-mode:standalone){body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%}#root{height:100%}}
