.ls-error-wrap{text-align:center;padding:40px}.ls-error-icon{font-size:40px}.ls-error-title{margin-top:12px;color:#ff3b30;font-weight:700}.ls-error-message{margin-top:8px;color:#8e8e93;font-size:14px}#loading{position:fixed;inset:0;z-index:9000;background:linear-gradient(135deg,#d6e8f4,#a8c8de);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .4s}#loading.hidden{opacity:0;pointer-events:none}.loading-ud-logo{width:100px;height:100px;margin-top:10px}.loading-title{font-size:26px;font-weight:800;background:linear-gradient(135deg,#007aff,#5856d6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-sub{font-size:14px;color:var(--text);margin-top:8px}.ls-logo-wrap{position:relative;width:170px;height:170px;margin-bottom:16px;flex-shrink:0}.loading-logo{position:absolute;top:10px;left:10px;width:150px;height:150px;object-fit:contain;border-radius:100px;animation:pulse 1.4s ease-in-out infinite}.ls-ring{position:absolute;inset:0;width:170px;height:170px;transform:rotate(-90deg)}.ls-ring-track{fill:none;stroke:#ffffff59;stroke-width:4}.ls-ring-progress{fill:none;stroke-width:4;stroke-linecap:round;stroke-dasharray:502.65;stroke-dashoffset:502.65;animation:ls-ring-fill 1.8s cubic-bezier(.4,0,.2,1) forwards}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes ls-ring-fill{0%{stroke-dashoffset:502.65}to{stroke-dashoffset:0}}.cm-ok-btn{background:#4a74c4}.cm-ok-btn--danger{background:#b05868}#confirmModal{position:fixed;inset:0;z-index:2000;background:#00000073;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}#confirmModal.active{opacity:1;pointer-events:all}#confirmBox{background:var(--card);border-radius:5px;width:min(320px,88vw);padding:24px 20px 16px;transform:scale(.93);transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 40px #00000038}#confirmModal.active #confirmBox{transform:scale(1)}#confirmTitle{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px;text-align:center}#confirmMsg{font-size:14px;color:var(--text3);text-align:center;line-height:1.5;margin-bottom:20px}#confirmActions{display:flex;gap:10px}#confirmActions button{flex:1;padding:11px;border-radius:5px;border:none;font-size:15px;font-weight:600;font-family:var(--font);cursor:pointer;transition:opacity .15s}#confirmActions button:active{opacity:.75}#confirmCancelBtn{background:#78788024;color:var(--text)}#confirmOkBtn{color:#fff}#clearDbConfirm{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;background:#00000080;opacity:0;pointer-events:none;transition:opacity .22s}#clearDbConfirm.active{opacity:1;pointer-events:all}.cleardb-dialog{background:var(--card);border-radius:5px;width:300px;max-width:calc(100vw - 40px);overflow:hidden;transform:scale(.88);transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg)}#clearDbConfirm.active .cleardb-dialog{transform:scale(1)}.cleardb-header{padding:24px 20px 14px;text-align:center}.cleardb-icon{font-size:44px;line-height:1;margin-bottom:10px}.cleardb-title{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.3px}.cleardb-msg{font-size:14px;color:var(--text3);margin-top:6px;line-height:1.5;padding:0 4px}.cleardb-divider{height:1px;background:var(--border)}.cleardb-actions{display:flex}.cleardb-btn{flex:1;padding:15px 8px;border:none;cursor:pointer;font-size:16px;font-weight:600;font-family:var(--font);background:none;transition:background .15s}.cleardb-btn:active{background:#7878801f}.cleardb-btn-cancel{color:var(--primary);border-right:1px solid var(--border)}.cleardb-btn-confirm{color:var(--danger);font-weight:700}#iosAlert{position:fixed;inset:0;z-index:9999;background:#00000073;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s}#iosAlert.active{opacity:1;pointer-events:all}#iosAlertCard{background:#f2f2f7f7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:5px;width:100%;max-width:320px;overflow:hidden;transform:scale(.88);transition:transform .22s cubic-bezier(.34,1.56,.64,1)}#iosAlert.active #iosAlertCard{transform:scale(1)}#iosAlertTitle{font-size:17px;font-weight:700;color:var(--text);text-align:center;padding:14px 16px 4px}#iosAlertMessage{font-size:13px;color:var(--text3);text-align:center;padding:4px 16px 14px;line-height:1.5}#iosAlertLinkBox{margin:0 16px 14px;padding:10px 12px;background:#007aff14;border-radius:10px;border:1px solid rgba(0,122,255,.2);font-size:11px;color:var(--primary);word-break:break-all;font-family:monospace;text-align:left;line-height:1.5;user-select:all;display:none}#iosAlertBtns{border-top:.5px solid rgba(60,60,67,.2);display:flex;flex-direction:column}.ios-alert-btn{padding:14px 16px;border:none;background:none;font-size:17px;font-family:var(--font);cursor:pointer;color:var(--primary);font-weight:400;border-top:.5px solid rgba(60,60,67,.2);transition:background .12s;width:100%;text-align:center}.ios-alert-btn:first-child{border-top:none}.ios-alert-btn:active{background:#78788026}.ios-alert-btn.bold{font-weight:700}.ios-alert-btn.danger{color:#ff3b30}html.dark-mode #iosAlertCard{background:#2c2c2ef7}html.dark-mode #iosAlertBtns,html.dark-mode .ios-alert-btn{border-top-color:#54545899}html.dark-mode .ios-alert-btn:active{background:#5454584d}:root{--bg:#f2f2f7;--bg2:#f3f4f6;--card:#ffffff;--primary:#007aff;--primary-light:#e8f0fe;--secondary:#5856d6;--danger:#ff3b30;--success:#34c759;--warning:#ff9500;--text:#1c1c1e;--text2:#3a3a3c;--text3:#636366;--text4:#8e8e93;--border:rgba(60,60,67,.12);--shadow:0 2px 20px rgba(0,0,0,.08);--shadow-lg:0 8px 40px rgba(0,0,0,.18);--sidebar-w:340px;--menu-w:280px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--topnav-h:calc(var(--safe-top) + 52px);--ad-banner-h:0px;--font:-apple-system,"SF Pro Display","Helvetica Neue",Arial,sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.row-input-wrap{flex:1;display:flex;align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;min-width:0;gap:6px;transition:border-color .2s}.row-input-wrap:focus-within{border-color:var(--primary)}.row-input-wrap input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-size:15px;color:var(--text);font-family:var(--font)}.row-input-wrap input::placeholder{color:var(--text4)}.row-input-clear{flex-shrink:0;width:16px;height:16px;border-radius:50%;border:none;background:var(--text4);color:#fff;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.7;padding:0}.row-input-clear:hover{opacity:1}#overlay{position:fixed;inset:0;z-index:150;background:#0000;pointer-events:none;transition:background .35s}#overlay.active{background:#00000059;pointer-events:all}#holdRipple{position:fixed;pointer-events:none;z-index:500;width:64px;height:64px;border-radius:50%;border:3px solid var(--primary);transform:translate(-50%,-50%) scale(0);opacity:0;transition:none}#holdRipple.growing{transition:transform .6s cubic-bezier(.2,.8,.3,1),opacity .6s ease;transform:translate(-50%,-50%) scale(1);opacity:1}#holdRipple.fired{transition:transform .18s ease,opacity .18s ease;transform:translate(-50%,-50%) scale(1.35);opacity:0;border-color:var(--success)}.ios-label{font-size:13px;font-weight:600;color:var(--text3);margin-bottom:6px;margin-top:14px;text-transform:uppercase;letter-spacing:.4px;display:block}.ios-input{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);font-size:15px;font-family:var(--font);color:var(--text);background:var(--bg);outline:none;transition:border-color .2s;box-sizing:border-box}.ios-input:focus{border-color:var(--primary)}.ios-textarea{min-height:80px;resize:vertical}.ios-select{width:100%;padding:12px 36px 12px 14px;border-radius:10px;border:1.5px solid var(--border);font-size:15px;font-family:var(--font);color:var(--text);background:var(--bg);outline:none;transition:border-color .2s;-webkit-appearance:none;appearance:none;cursor:pointer;box-sizing:border-box;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.ios-select:focus{border-color:var(--primary)}.ios-search{width:100%;padding:9px 14px 9px 36px;border-radius:10px;background:#7878801f;border:none;font-size:15px;color:var(--text);outline:none;font-family:var(--font)}.ios-search::placeholder{color:var(--text4)}.ios-btn{flex:1;padding:14px 10px;border-radius:5px;border:none;font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:transform .12s,opacity .12s}.ios-btn:active{transform:scale(.96);opacity:.82}.ios-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.ios-btn-primary{background:#4a74c4;color:#fff;box-shadow:0 2px 8px #4a74c438}.ios-btn-secondary{background:#4a74c41a;color:#4a74c4}.ios-btn-danger{background:#b058681a;color:#b05868}.ios-btn-directions{background:#4a9e74;color:#fff;flex:0 0 auto;padding:14px 16px;box-shadow:0 2px 8px #4a9e7438}.star-picker{display:flex;gap:8px;margin-top:4px}.star-btn{font-size:28px;cursor:pointer;transition:transform .15s;background:none;border:none;line-height:1}.star-btn:active{transform:scale(1.3)}.modal-backdrop{position:fixed;top:var(--topnav-h);right:0;bottom:0;left:0;z-index:600;background:#0000;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;transition:background .28s}.modal-backdrop.active{background:#00000080;pointer-events:all}.modal-sheet{background:var(--card);border-radius:5px 5px 0 0;width:100%;max-width:600px;padding:0;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1),visibility 0s .32s;max-height:calc(var(--app-vh, 100dvh) - var(--topnav-h));display:flex;flex-direction:column;overflow:hidden;visibility:hidden}.modal-backdrop.active .modal-sheet{transform:translateY(0);visibility:visible;transition:transform .32s cubic-bezier(.4,0,.2,1),visibility 0s 0s}.modal-sheet-header{flex-shrink:0;padding:10px 20px 0;display:flex;flex-direction:column}.modal-sheet-handle{width:36px;height:4px;border-radius:2px;background:#78788040;margin:10px auto 0}.modal-sheet-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 0 calc(env(safe-area-inset-bottom,0px)+24px);margin:0 10px}.modal-title-row{flex-shrink:0;display:flex;align-items:center;justify-content:flex-start;padding:0 16px;height:48px;min-height:48px;max-height:48px;position:relative;overflow:hidden;box-sizing:border-box}.modal-title-row .modal-title{margin:0;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-back{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:none;background:#78788024;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--text3);flex-shrink:0;line-height:1}.modal-back:active{background:#78788047}@media(hover:hover){.modal-back:hover{transform:translateY(-50%) scale(1.3)}}.modal-backdrop--top{align-items:center;padding-top:16px}.modal-backdrop--top .modal-sheet{border-radius:5px;transform:translateY(-100%);max-height:calc(var(--app-vh, 100dvh) - var(--topnav-h) - 32px)}.modal-backdrop--top.active .modal-sheet{transform:translateY(0)}.modal-backdrop--top-flush{align-items:flex-start;padding-top:15px}.modal-backdrop--top-flush .modal-sheet{border-radius:5px;transform:translateY(-100%);max-height:calc(var(--app-vh, 100dvh) - var(--topnav-h) - 15px)}.modal-backdrop--top-flush.active .modal-sheet{transform:translateY(0)}.modal-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:16px;letter-spacing:-.2px}.modal-actions{display:flex;gap:10px;margin-top:20px;justify-content:center}.modal-sheet .ios-btn,.modal-backdrop .ios-btn{flex:0 0 auto;min-width:150px;border-radius:5px;padding:14px 20px}#profileSheet .modal-actions{justify-content:center}#profileSheet .ios-btn{flex:0 0 auto;min-width:150px;border-radius:5px;padding:14px 20px}.crud-list{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding:8px 10px 10px}.crud-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg);border-radius:12px;border:1px solid var(--border)}.crud-row-info{flex:1;min-width:0}.crud-row-title{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crud-row-sub{font-size:12px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crud-actions{display:flex;gap:6px;flex-shrink:0}.crud-btn{padding:6px 12px;border-radius:5px;border:none;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;transition:opacity .15s}.crud-btn:active{opacity:.7}.crud-btn-edit{background:#4a74c41a;color:#4a74c4}.crud-btn-del{background:#b058681a;color:#b05868}.crud-btn-view{background:#3a9e741a;color:#3a9e74}.crud-empty{text-align:center;padding:24px 0;color:var(--text4);font-size:14px}.crud-plus-btn{width:32px;height:32px;border-radius:50%;border:none;background:#4a74c4;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s;flex-shrink:0}.crud-plus-btn:active{opacity:.7}.menu-section-title{font-size:11px;font-weight:700;color:var(--text4);text-transform:uppercase;letter-spacing:.8px;padding:12px 16px 4px}.format-toggle{display:flex;gap:0;border-radius:2px;overflow:hidden;border:1.5px solid var(--border);margin-top:4px}.format-toggle input[type=radio]{display:none}.format-toggle label{flex:1;text-align:center;padding:9px 0;font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;color:var(--text3);background:var(--bg);transition:background .15s,color .15s;border-right:1px solid var(--border)}.format-toggle label:last-of-type{border-right:none}.format-toggle input[type=radio]:checked+label{background:var(--primary);color:#fff}.file-pick-row{display:flex;align-items:center;gap:10px;margin-top:4px}.file-pick-btn{display:inline-flex;align-items:center;gap:6px;padding:11px 16px;border-radius:5px;border:none;cursor:pointer;background:#007aff1a;color:var(--primary);font-size:14px;font-weight:600;font-family:var(--font);transition:background .15s,transform .12s;white-space:nowrap;flex-shrink:0}.file-pick-btn:active{background:#007aff38;transform:scale(.97)}.file-pick-name{font-size:13px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}#toast{position:fixed;bottom:calc(var(--safe-bottom) + 80px);left:50%;transform:translate(-50%) translateY(20px);background:#000000d1;color:#fff;padding:10px 20px;border-radius:2px;font-size:14px;font-weight:500;z-index:9999;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;white-space:nowrap;max-width:90vw;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}.logo-upload-row{display:flex;align-items:flex-start;gap:14px;margin-top:6px}.logo-upload-row .file-pick-btn{width:100%;justify-content:center}.logo-preview{width:64px;height:64px;border-radius:14px;overflow:hidden;flex-shrink:0;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:26px;border:1.5px solid var(--border)}.logo-preview img{width:100%;height:100%;object-fit:cover}.lang-pill{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:20px;border:1.5px solid var(--border);background:var(--card);font-size:13px;font-weight:600;font-family:var(--font);color:var(--text3);cursor:pointer;transition:all .15s}.lang-pill:active{opacity:.75}.lang-pill.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 10px #007aff4d}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#78788033;border-radius:2px}@media(min-width:600px){.modal-backdrop{align-items:center}.modal-sheet{width:520px;max-width:90vw;border-radius:5px;transform:scale(.95) translateY(20px);margin:auto;max-height:calc(var(--app-vh, 100dvh) - var(--topnav-h) - 40px)}.modal-backdrop.active .modal-sheet{transform:scale(1) translateY(0)}}@media(min-width:768px){:root{--sidebar-w:380px;--menu-w:300px}#topnav{padding-left:20px;padding-right:20px}.modal-sheet{width:540px}}@media(min-width:1024px){:root{--sidebar-w:400px;--menu-w:280px}#gpsBtn{left:24px;bottom:calc(var(--safe-bottom) + 28px)}.nav-title{font-size:18px}.modal-sheet{width:560px;max-width:80vw}}@media(min-width:1280px){:root{--sidebar-w:440px}.modal-sheet{width:600px}#topnav{padding-left:24px;padding-right:24px}}@media(prefers-color-scheme:dark){:root{--bg:#1c1c1e;--bg2:#3a3a3c;--card:#2c2c2e;--text:#fff;--text2:#ebebf5;--text3:#ebebf599;--text4:#ebebf54d;--border:rgba(84,84,88,.6);--primary-light:rgba(0,122,255,.15)}#adminPage-topbar{background:#1c1c1ed9}}html.dark-mode{--bg:#1c1c1e;--bg2:#3a3a3c;--card:#2c2c2e;--text:#ffffff;--text2:#ebebf5;--text3:rgba(235,235,245,.6);--text4:rgba(235,235,245,.3);--border:rgba(84,84,88,.6);--primary-light:rgba(0,122,255,.15)}html.dark-mode #adminPage-topbar{background:#1c1c1ed9}html.light-mode{--bg:#f2f2f7;--bg2:#f3f4f6;--card:#ffffff;--text:#1c1c1e;--text2:#3a3a3c;--text3:#636366;--text4:#8e8e93;--border:rgba(60,60,67,.12);--primary-light:#e8f0fe}html.light-mode #adminPage-topbar{background:#f2f2f7d9}.u-w36{width:36px;flex-shrink:0}.u-op40{opacity:.4}.u-op60{opacity:.6}.u-mb0{margin-bottom:0}.u-mb12{margin-bottom:12px}.u-mb16{margin-bottom:16px}.u-flex1{flex:1}.u-m0{margin:0}.u-hidden{display:none}.u-w100{width:100%}.u-mt4{margin-top:4px}.u-mt8{margin-top:8px}
