.login-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:20px;padding-top:max(20px,var(--safe-area-top));padding-bottom:max(20px,var(--safe-area-bottom));padding-left:max(20px,var(--safe-area-left));padding-right:max(20px,var(--safe-area-right))}.login-container{width:100%;max-width:360px;padding:0 16px}.login-header{text-align:center;margin-bottom:40px}.app-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:transparent;margin-bottom:16px}.app-title{font-size:28px;font-weight:700;color:var(--color-text);margin:0 0 4px;letter-spacing:-.5px}.app-subtitle{font-size:14px;color:var(--color-text-tertiary);margin:0;font-weight:400}.login-form{display:flex;flex-direction:column;gap:20px}.error-message{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--color-error-bg);border-radius:12px;color:var(--color-error);font-size:14px;font-weight:500}.error-message svg{flex-shrink:0}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{font-size:14px;font-weight:600;color:var(--color-text-secondary);padding-left:4px}.input-group input{width:100%;padding:16px;border:2px solid var(--color-border-strong);border-radius:14px;font-size:16px;font-family:inherit;color:var(--color-text);background:var(--color-input-bg);transition:border-color .2s,background-color .3s;outline:none}.input-group input:focus{border-color:var(--color-accent)}.input-group input::placeholder{color:var(--color-text-tertiary)}.password-wrapper{position:relative}.password-wrapper input{padding-right:52px}.toggle-password{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);padding:8px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:color .2s}.toggle-password:hover{color:var(--color-text)}.login-button{padding:18px 24px;background:var(--color-icon-bg);color:var(--color-icon-text);border:none;border-radius:14px;font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-height:56px;margin-top:8px}.login-button:hover:not(:disabled){opacity:.85}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:16px}.server-selector-bottom{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.server-label{font-size:12px;color:var(--color-text-tertiary);font-weight:500}.server-buttons{display:flex;justify-content:center;gap:8px}.server-btn{padding:8px 16px;background:var(--color-card);border:none;border-radius:20px;font-size:13px;font-weight:500;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.server-btn:hover{background:var(--color-bg-tertiary)}.server-btn.active{background:var(--color-icon-bg);color:var(--color-icon-text)}.custom-server-field{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px}.custom-server-input{width:100%;max-width:280px;padding:10px 14px;border:1px solid var(--color-border-strong);border-radius:10px;font-size:13px;font-family:inherit;color:var(--color-text);background:var(--color-input-bg);text-align:center;outline:none;transition:border-color .2s,background-color .3s}.custom-server-input:focus{border-color:var(--color-accent)}.custom-server-input::placeholder{color:var(--color-text-tertiary)}.custom-server-input.error{border-color:var(--color-error)}.url-error{display:block;color:var(--color-error);font-size:12px;margin-top:4px;text-align:center}.version{font-size:12px;color:var(--color-text-tertiary);font-weight:500}.saved-accounts{width:100%}.accounts-title{font-size:16px;font-weight:600;color:var(--color-text);margin:0 0 16px;text-align:center}.accounts-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.account-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .15s;text-align:left;font-family:inherit}.account-item:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-border-strong)}.account-item:disabled{opacity:.7;cursor:not-allowed}.account-item.loading{background:var(--color-bg-secondary)}.account-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-accent-light, rgba(0, 122, 255, .1));display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-accent)}.account-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.account-login{font-size:15px;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-expo{font-size:13px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-remove{width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.account-remove:hover{background:var(--color-error-light, rgba(255, 59, 48, .1));color:var(--color-error)}.add-account-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:transparent;border:1px dashed var(--color-border);border-radius:12px;color:var(--color-text-secondary);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s}.add-account-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-light, rgba(0, 122, 255, .05))}.back-to-accounts{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--color-accent);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;padding:8px 0;margin-bottom:16px}.back-to-accounts:hover{text-decoration:underline}.spinner.small{width:18px;height:18px;border-width:2px}@media(max-width:400px){.login-container{padding:0 12px}.app-title{font-size:24px}.input-group input{padding:14px;font-size:16px}.login-button{padding:16px 20px;min-height:52px}}.scanner-settings-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.scanner-mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.scanner-mode-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:var(--color-bg);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s;font-family:inherit;color:var(--color-text-secondary)}.scanner-mode-option.active{border-color:var(--color-accent);background:var(--color-accent-light, rgba(0, 122, 255, .08));color:var(--color-text)}.scanner-mode-option:active{transform:scale(.97)}.scanner-mode-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);transition:all .2s}.scanner-mode-option.active .scanner-mode-icon{background:var(--color-accent);color:#fff}.scanner-mode-label{font-size:14px;font-weight:600}.scanner-mode-desc{font-size:11px;opacity:.7;text-align:center;line-height:1.3}.engine-selector{display:flex;flex-direction:column;gap:6px;padding:10px}.engine-option{display:flex;align-items:center;padding:12px;background:var(--color-bg);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s;font-family:inherit;color:var(--color-text-secondary);text-align:left;width:100%}.engine-option.active{border-color:var(--color-accent);background:var(--color-accent-light, rgba(0, 122, 255, .08));color:var(--color-text)}.engine-option:active{transform:scale(.98)}.engine-option-header{display:flex;align-items:center;gap:12px;width:100%}.engine-option-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.engine-option-text{display:flex;flex-direction:column;gap:2px;min-width:0}.engine-option-label{font-size:14px;font-weight:600}.engine-option-desc{font-size:11px;opacity:.7;line-height:1.3}.engine-option.disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.engine-option.disabled .engine-option-icon{filter:grayscale(.6)}.engine-option-warn{display:flex;align-items:center;gap:6px;width:100%;margin-top:8px;padding:8px 10px;background:#ff95001a;border:1px solid rgba(255,149,0,.25);border-radius:8px;font-size:11px;font-weight:500;color:#ff9500;line-height:1.3;pointer-events:auto}.engine-option-warn svg{flex-shrink:0;color:#ff9500}.suffix-badge{padding:6px 12px;background:var(--color-bg);border-radius:8px;font-size:13px;font-weight:600;color:var(--color-text-secondary);font-family:SF Mono,Menlo,monospace;white-space:nowrap}.settings-select{padding:8px 10px;border:none;border-radius:10px;font-size:14px;font-family:inherit;font-weight:600;background:var(--color-input-bg);color:var(--color-text);cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;min-width:90px;text-align:right}.settings-select:focus{outline:none;box-shadow:0 0 0 2px var(--color-accent)}.toggle-switch{width:50px;height:30px;border-radius:15px;background:var(--color-bg-tertiary);border:none;cursor:pointer;position:relative;transition:background .3s;flex-shrink:0;padding:0}.toggle-switch.active{background:var(--color-accent)}.toggle-knob{width:26px;height:26px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .3s;box-shadow:0 1px 3px #0003}.toggle-switch.active .toggle-knob{transform:translate(20px)}.test-scanner-area{padding:16px;display:flex;flex-direction:column;gap:12px}.test-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border:2px dashed var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text-secondary);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.test-btn:active{transform:scale(.98)}.test-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-light, rgba(0, 122, 255, .05))}.test-pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;border:2px solid var(--color-accent);opacity:0;animation:testPulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes testPulse{0%,to{opacity:0}50%{opacity:.4}}.test-buffer{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--color-bg-tertiary);border-radius:10px;font-family:SF Mono,Menlo,monospace}.test-buffer-label{font-size:12px;font-weight:600;color:var(--color-text-tertiary)}.test-buffer-value{font-size:14px;font-weight:600;color:var(--color-accent);word-break:break-all}.test-result{padding:12px 14px;border-radius:10px;font-size:14px;font-weight:500;line-height:1.4}.test-result.success{background:var(--color-success-bg, rgba(52, 199, 89, .1));color:var(--color-success)}.test-result.warning{background:var(--color-error-bg);color:var(--color-error)}.scanner-info{padding:4px 0}.info-block{display:flex;gap:12px;padding:14px 16px;align-items:flex-start}.info-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.info-icon.usb{background:#5856d6}.info-icon.bluetooth{background:#007aff}.info-icon.setup{background:#8e8e93}.info-text{display:flex;flex-direction:column;gap:4px}.info-text strong{font-size:14px;font-weight:600;color:var(--color-text)}.info-text span{font-size:13px;color:var(--color-text-tertiary);line-height:1.4}@media(max-width:380px){.scanner-mode-option{padding:12px 8px}.scanner-mode-icon{width:44px;height:44px}.scanner-mode-label{font-size:13px}.scanner-mode-desc{font-size:10px}}.bt-printer-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.bt-status-card{margin:0 16px 16px;padding:16px;border-radius:14px;background:var(--color-card);display:flex;align-items:center;gap:14px;animation:bt-sectionIn .3s ease-out both;border:1.5px solid transparent;transition:border-color .4s ease,box-shadow .4s ease}.bt-status-card.status-connected{border-color:#34c75940;box-shadow:0 0 0 1px #34c75914}.bt-status-card.status-scanning{border-color:#007aff33}.bt-status-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .3s}.bt-status-icon.connected{background:#34c75926;color:#34c759}.bt-status-icon.disconnected{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.bt-status-icon.scanning{background:#007aff1f;color:var(--color-accent);animation:bt-pulse 1.5s infinite}@keyframes bt-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}.bt-status-info{flex:1;min-width:0}.bt-status-name{display:block;font-size:16px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bt-status-detail{display:block;font-size:13px;color:var(--color-text-secondary);margin-top:2px}.bt-status-actions{display:flex;gap:8px;flex-shrink:0}.bt-action-btn{padding:8px 16px;border-radius:10px;border:none;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.bt-action-btn.primary{background:var(--color-accent);color:#fff}.bt-action-btn.primary:active{transform:scale(.96);opacity:.85}.bt-action-btn.danger{background:#ff3b301f;color:#ff3b30}.bt-action-btn.danger:active{transform:scale(.96)}.bt-action-btn:disabled{opacity:.5;pointer-events:none}.bt-scan-section{margin:0 16px 16px}.bt-scan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bt-scan-header h3{font-size:14px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.bt-filter-toggle{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:8px 12px;border-radius:10px;background:var(--color-card)}.bt-filter-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none}.bt-filter-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;margin:0}.bt-filter-hint{font-size:11px;color:var(--color-text-secondary);opacity:.7}.bt-scan-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:none;background:var(--color-accent);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.bt-scan-btn:active{transform:scale(.96)}.bt-scan-btn:disabled{opacity:.5;pointer-events:none}.bt-scan-btn .spinner-sm{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.bt-device-list{display:flex;flex-direction:column;gap:0;background:var(--color-card);border-radius:14px;overflow:hidden;animation:bt-fadeIn .2s ease both}.bt-device-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:none;background:transparent;font-family:inherit;cursor:pointer;transition:background .15s;width:100%;text-align:left}.bt-device-item:active{background:var(--color-bg-secondary)}.bt-device-item+.bt-device-item{border-top:1px solid var(--color-border)}.bt-device-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#007aff1a;color:var(--color-accent);flex-shrink:0}.bt-device-info{flex:1;min-width:0}.bt-device-name{display:block;font-size:15px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bt-device-id{display:block;font-size:12px;color:var(--color-text-secondary);margin-top:1px;font-family:SF Mono,Fira Code,monospace}.bt-device-rssi{font-size:12px;color:var(--color-text-secondary);flex-shrink:0}.bt-empty-list{padding:32px 16px;text-align:center;color:var(--color-text-secondary);font-size:14px}.bt-connecting-overlay{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;text-align:center}.bt-connecting-overlay .spinner-lg{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.bt-connecting-text{font-size:14px;color:var(--color-text-secondary)}.bt-printer-settings{margin:0 16px 16px}.bt-printer-settings h3{font-size:14px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.bt-web-notice{margin:0 16px 16px;padding:20px;border-radius:14px;background:#ff95001a;text-align:center}.bt-web-notice-icon{width:56px;height:56px;border-radius:16px;background:#ff950026;color:#e08600;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.bt-web-notice h3{font-size:16px;font-weight:600;color:var(--color-text);margin-bottom:6px}.bt-web-notice p{font-size:14px;color:var(--color-text-secondary);line-height:1.5;margin:0}.bt-web-connect-btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:10px 24px;border-radius:10px;border:none;background:var(--color-accent);color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.bt-web-connect-btn:active{transform:scale(.96)}.bt-test-section{margin:0 16px 20px}.bt-test-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border-radius:12px;border:none;background:var(--color-card);color:var(--color-text);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.bt-test-btn:active{transform:scale(.98)}.bt-test-btn:disabled{opacity:.5;pointer-events:none}.bt-calibrate-btn{margin-top:10px;background:var(--color-card);border:1px solid var(--color-border)}.bt-test-result{margin-top:8px;padding:10px 14px;border-radius:8px;font-size:13px;text-align:center}.bt-test-result.success{background:#34c7591f;color:#28a745}.bt-test-result.error{background:#ff3b301f;color:#ff3b30}.bt-error{margin:0 16px 12px;padding:10px 14px;border-radius:10px;background:#ff3b301a;color:#ff3b30;font-size:13px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:opacity .3s ease,transform .3s ease}.bt-error:active{opacity:.7;transform:scale(.98)}.bt-saved{position:fixed;top:60px;right:16px;padding:6px 14px;border-radius:8px;background:#34c759e6;color:#fff;font-size:13px;font-weight:500;z-index:100;animation:bt-saved-in .3s ease}@keyframes bt-saved-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.bt-mode-tabs{display:flex;gap:2px;background:var(--color-bg-secondary);border-radius:10px;padding:3px;margin-bottom:14px}.bt-mode-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.bt-mode-tab.active{background:var(--color-card);color:var(--color-accent);box-shadow:0 1px 4px #00000014}.bt-mode-tab:active{transform:scale(.97)}.bt-device-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;flex-shrink:0;text-transform:uppercase;letter-spacing:.5px}.bt-device-badge.classic{background:#5856d61f;color:#5856d6}.bt-device-badge.ble{background:#007aff1f;color:var(--color-accent)}.bt-device-badge.usb{background:#34c7591f;color:#34c759}.bt-device-icon.classic{background:#5856d61a;color:#5856d6}.bt-device-icon.ble{background:#007aff1a;color:var(--color-accent)}.bt-device-icon.usb{background:#34c7591a;color:#34c759}.bt-paired-hint{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:10px;padding:0 4px;opacity:.8}.settings-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100px;height:6px;border-radius:3px;background:var(--color-border);outline:none;flex-shrink:0}.settings-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px #0003}.settings-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px #0003}.bt-mode-setting{border-top:1px solid var(--color-border, rgba(128,128,128,.2));margin-top:4px;padding-top:16px!important}.bt-mode-tabs.compact{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid var(--color-accent);flex-shrink:0}.bt-mode-tabs.compact .bt-mode-tab{padding:5px 14px;border:none;background:transparent;color:var(--color-accent);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.bt-mode-tabs.compact .bt-mode-tab.active{background:var(--color-accent);color:#fff}.bt-mode-tabs.compact .bt-mode-tab:first-child{border-right:1px solid var(--color-accent)}.bt-page-enter{animation:bt-pageIn .35s ease-out both}@keyframes bt-pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bt-section-enter{animation:bt-sectionIn .4s ease-out both;animation-delay:var(--delay, 0s)}@keyframes bt-sectionIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.bt-tab-content{animation:bt-tabIn .28s ease-out both}@keyframes bt-tabIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.bt-mode-tabs.bt-fadein{animation:bt-fadeIn .3s ease both}@keyframes bt-fadeIn{0%{opacity:0}to{opacity:1}}.bt-device-item.bt-device-enter{animation:bt-deviceIn .35s ease-out both;animation-delay:calc(var(--i, 0) * 60ms)}@keyframes bt-deviceIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bt-error.bt-error-enter{animation:bt-errorIn .35s ease-out both;cursor:pointer;-webkit-user-select:none;user-select:none}@keyframes bt-errorIn{0%{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.bt-status-card{transition:box-shadow .4s ease,transform .2s ease}.bt-status-icon.connected{animation:bt-connectedPulse 2.5s ease-in-out infinite}@keyframes bt-connectedPulse{0%,to{box-shadow:0 0 #34c75900}50%{box-shadow:0 0 0 6px #34c75926}}.bt-connecting-overlay{animation:bt-fadeIn .3s ease both}.bt-connecting-overlay .spinner-lg{animation:spin .8s linear infinite,bt-scaleIn .3s ease both}@keyframes bt-scaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.bt-empty-list{animation:bt-fadeIn .4s ease both}.bt-test-result{animation:bt-slideDown .3s ease-out both}@keyframes bt-slideDown{0%{opacity:0;transform:translateY(-6px);max-height:0}to{opacity:1;transform:translateY(0);max-height:100px}}.bt-scan-btn{transition:all .2s ease,transform .15s ease}.bt-scan-btn:active{transform:scale(.93)}.bt-device-item{transition:background .18s ease,transform .15s ease}.bt-device-item:active{transform:scale(.98);background:var(--color-bg-secondary)}.bt-calibrate-btn{transition:all .2s ease}.bt-saved{animation:bt-savedIn .35s ease-out both;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}@keyframes bt-savedIn{0%{opacity:0;transform:translateY(-12px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.bt-mode-tab{transition:all .25s ease;position:relative}.bt-mode-tab.active{transition:all .25s ease}.settings-item{transition:background .15s ease}.bt-paired-hint{animation:bt-fadeIn .5s ease both;animation-delay:.1s}.bt-filter-toggle{transition:all .2s ease}.bt-web-notice{animation:bt-sectionIn .4s ease-out both}.bt-section-block{margin-bottom:8px;animation:bt-sectionIn .35s ease-out both;animation-delay:var(--delay, 0s)}.bt-device-item.bt-discovered{border-left:3px solid var(--color-primary, #007AFF)}.bt-device-icon.discovered{background:#007aff1f;color:var(--color-primary, #007AFF)}.bt-device-badge.discovered{background:#007aff1f;color:var(--color-primary, #007AFF);font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600}.bt-connecting-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px 16px;margin:0 0 8px;background:var(--color-bg-secondary, #f5f5f7);border-radius:14px;border:1.5px solid var(--color-primary, #007AFF);box-shadow:0 0 0 3px #007aff14}.bt-connecting-card .spinner-lg{animation:spin .8s linear infinite,bt-scaleIn .3s ease both}.bt-connecting-hint{font-size:11.5px;color:var(--color-text-secondary);text-align:center;opacity:.7}.bt-connecting-cancel{margin-top:4px;padding:6px 20px;border:1.5px solid var(--color-border, #ddd);border-radius:10px;background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.bt-connecting-cancel:active{background:#0000000d;transform:scale(.96)}.bt-show-all-toggle{display:flex;align-items:center;gap:8px;padding:6px 12px 8px;font-size:12.5px;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.bt-show-all-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary, #007AFF);cursor:pointer;margin:0;flex-shrink:0}.bt-show-all-toggle span{line-height:1}.bt-discovery-progress{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 0;font-size:12px;color:var(--color-text-secondary);opacity:.7}.bt-device-item.bt-device-regular{border-left:3px solid #FF9500;opacity:.8}.bt-device-icon.regular{background:#ff95001f;color:#ff9500}.bt-device-badge.regular{background:#ff95001f;color:#ff9500;font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;white-space:nowrap}.bt-regular-warn{color:#ff9500;font-weight:600;font-size:10px}.appearance-page{min-height:100dvh;background:var(--color-bg);color:var(--color-text)}.appearance-preview{display:flex;justify-content:center;padding:12px 0 4px}.preview-phone{width:200px;border-radius:20px;background:var(--color-bg-secondary);border:1.5px solid var(--color-border-strong);overflow:hidden;box-shadow:0 8px 32px var(--color-shadow)}.preview-header{display:flex;align-items:center;gap:8px;padding:10px 14px 8px;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.preview-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent);flex-shrink:0}.preview-title{font-size:11px;font-weight:600;color:var(--color-text);opacity:.8}.preview-body{padding:10px 10px 12px;display:flex;flex-direction:column;gap:7px}.preview-card{display:flex;align-items:center;gap:8px;background:var(--color-bg);border-radius:10px;padding:7px 8px;border:1px solid var(--color-border)}.preview-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}.preview-lines{flex:1;display:flex;flex-direction:column;gap:4px}.preview-line{border-radius:3px;background:var(--color-border-strong);height:6px}.preview-line-name{width:70%}.preview-line-sub{width:45%;opacity:.6}.preview-btn{border-radius:10px;padding:8px 12px;font-size:11px;font-weight:600;color:#fff;text-align:center;margin-top:2px}.theme-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.theme-preset-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 12px;background:transparent;border:none;border-radius:10px;cursor:pointer;color:var(--color-text);transition:background .15s;-webkit-tap-highlight-color:transparent}.theme-preset-btn:active{background:var(--color-bg-tertiary)}.theme-preset-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:2px solid transparent;transition:border-color .2s,background .2s;color:var(--color-text-secondary)}.theme-preset-btn.active .theme-preset-icon{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent)}.theme-preset-label{font-size:11px;font-weight:500;color:var(--color-text-secondary)}.theme-preset-btn.active .theme-preset-label{color:var(--color-accent);font-weight:600}.theme-preset-check{position:absolute;top:8px;right:8px;width:18px;height:18px;border-radius:50%;background:var(--color-accent);display:flex;align-items:center;justify-content:center;color:#fff}.accent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 0}.accent-swatch{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px 8px;background:transparent;border:none;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.accent-swatch:active{background:var(--color-bg-tertiary)}.accent-swatch-dot{width:34px;height:34px;border-radius:50%;background:var(--swatch-color);border:2.5px solid transparent;transition:border-color .18s,transform .15s;position:relative}@media(prefers-color-scheme:dark){.accent-swatch-dot{background:var(--swatch-color-dark)}}[data-theme=dark] .accent-swatch-dot{background:var(--swatch-color-dark)}.accent-swatch.active .accent-swatch-dot{border-color:var(--color-text);transform:scale(1.1)}.accent-check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;margin-top:-14px}.accent-swatch-label{font-size:9.5px;font-weight:500;color:var(--color-text-secondary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.accent-swatch.active .accent-swatch-label{color:var(--color-text);font-weight:600}.bg-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:4px 0}.bg-preset-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;background:transparent;border:none;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.bg-preset-btn:active{background:var(--color-bg-tertiary)}.bg-preset-swatch{position:relative;width:56px;height:40px;border-radius:10px;overflow:hidden;border:2px solid transparent;transition:border-color .18s,transform .15s;box-shadow:0 2px 8px #0000001f}.bg-preset-btn.active .bg-preset-swatch{border-color:var(--color-accent);transform:scale(1.06)}.bg-swatch-main{position:absolute;top:0;right:0;bottom:0;left:0}.bg-swatch-card{position:absolute;top:6px;left:6px;right:6px;height:16px;border-radius:4px;opacity:.9}.bg-swatch-accent{position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:28px;height:6px;border-radius:3px;opacity:.85}.bg-swatch-check{position:absolute;top:4px;right:4px;width:16px;height:16px;border-radius:50%;background:var(--color-accent);display:flex;align-items:center;justify-content:center}.bg-preset-label{font-size:11px;font-weight:500;color:var(--color-text-secondary);text-align:center}.bg-preset-btn.active .bg-preset-label{color:var(--color-accent);font-weight:600}.bg-swatch-dynamic{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#a78bfa,#60a5fa,#34d399)}.bg-preset-dynamic .bg-preset-swatch{background:linear-gradient(135deg,#a78bfa,#60a5fa,#34d399)}.accent-swatch-dynamic .accent-swatch-dot{background:linear-gradient(135deg,#a78bfa,#60a5fa,#34d399);border-color:transparent}[data-theme=dark] .accent-swatch-dynamic .accent-swatch-dot{background:linear-gradient(135deg,#a78bfa,#60a5fa,#34d399)}.security-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.security-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:100}.security-header .header-left{display:flex;align-items:center;gap:10px}.security-header .header-title{font-size:17px;font-weight:700;color:var(--color-text)}.security-page .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:none;border-radius:10px;color:var(--color-text);cursor:pointer;transition:all .2s}.security-page .back-button:hover{background:var(--color-border-strong)}.security-page .back-button:active{transform:scale(.95)}.security-content{flex:1;padding:16px;padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));padding-bottom:max(32px,var(--safe-area-bottom));display:flex;flex-direction:column;gap:24px}.security-page .settings-section{display:flex;flex-direction:column;gap:8px}.security-page .section-title{font-size:13px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;padding-left:4px}.security-page .section-hint{font-size:13px;color:var(--color-text-tertiary);margin:4px 0 0;padding-left:4px}.security-page .settings-card{background:var(--color-card);border-radius:14px;overflow:hidden}.security-page .settings-item{display:flex;align-items:center;gap:12px;padding:14px 16px;min-height:56px}.security-page .settings-item-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.security-page .settings-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.security-page .settings-item-label{font-size:15px;font-weight:600;color:var(--color-text)}.security-page .settings-item-hint{font-size:13px;color:var(--color-text-tertiary)}.security-page .settings-divider{height:1px;background:var(--color-border);margin:0 16px}.security-page .settings-link{width:100%;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background .15s}.security-page .settings-link:hover{background:var(--color-bg-tertiary)}.security-page .settings-link:active{background:var(--color-border)}.toggle-switch{position:relative;display:inline-block;width:51px;height:31px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border-strong);transition:.3s;border-radius:31px}.toggle-slider:before{position:absolute;content:"";height:27px;width:27px;left:2px;bottom:2px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.security-message{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--color-success);animation:fadeInUp .3s ease}.pin-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.pin-modal{background:var(--color-bg);border-radius:20px;padding:24px;width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center;gap:20px;position:relative;animation:slideUp .3s ease}.pin-modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--color-bg-tertiary);border-radius:50%;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.pin-modal-close:hover{background:var(--color-border)}.pin-modal-title{font-size:18px;font-weight:600;color:var(--color-text);margin:0;text-align:center}.pin-modal .pin-dots{display:flex;gap:12px;padding:12px 0}.pin-modal .pin-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--color-border-strong);background:transparent;transition:all .15s ease}.pin-modal .pin-dot.filled{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.1)}.pin-modal .pin-dots.shake{animation:pinShake .5s ease}.pin-modal .pin-dots.shake .pin-dot.filled{background:var(--color-error);border-color:var(--color-error)}@keyframes pinShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-6px)}20%,40%,60%,80%{transform:translate(6px)}}.pin-modal-error{font-size:13px;color:var(--color-error);text-align:center;margin-top:-8px}.pin-modal .pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:240px}.pin-modal .pin-key{aspect-ratio:1;max-height:64px;border:none;border-radius:50%;font-size:24px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.pin-modal .pin-key.digit{background:var(--color-card);color:var(--color-text)}.pin-modal .pin-key.digit:hover{background:var(--color-bg-tertiary)}.pin-modal .pin-key.digit:active{background:var(--color-border);transform:scale(.95)}.pin-modal .pin-key.backspace{background:transparent;color:var(--color-text-secondary)}.pin-modal .pin-key.backspace:hover{background:var(--color-bg-tertiary)}.pin-modal .pin-key.backspace:active{transform:scale(.9)}.pin-modal .pin-key.empty{background:transparent;cursor:default}@media(max-width:380px){.security-header .header-title{font-size:16px}.security-page .settings-item-label{font-size:14px}.pin-modal{padding:20px}.pin-modal .pin-keypad{max-width:220px;gap:8px}.pin-modal .pin-key{max-height:56px;font-size:22px}}.buttons-settings-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);color:var(--color-text)}.buttons-counter{font-size:13px;font-weight:600;color:var(--color-text-secondary);background:var(--color-card);padding:4px 10px;border-radius:12px}.buttons-toggle-item{cursor:pointer;transition:opacity .2s}.buttons-toggle-item.disabled-btn{opacity:.55}.toggle-switch{width:46px;min-width:46px;height:28px;border-radius:14px;background:var(--color-border, #ccc);position:relative;transition:background .25s;cursor:pointer;flex-shrink:0}.toggle-switch.on{background:var(--color-accent)}.toggle-knob{width:22px;height:22px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .25s;box-shadow:0 1px 3px #0003}.toggle-switch.on .toggle-knob{transform:translate(18px)}.buttons-preview{background:var(--color-card);border-radius:14px;padding:16px;border:1px solid var(--color-border)}.buttons-preview .action-buttons-row{display:flex;gap:8px}.buttons-preview .bt-print-btn,.buttons-preview .preview-btn,.buttons-preview .edit-btn,.buttons-preview .print-btn{pointer-events:none;font-size:12px;padding:8px 12px}.no-buttons-hint{text-align:center;color:var(--color-text-secondary);font-size:13px;padding:20px 0;opacity:.6}.bs-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.bs-select-actions{display:flex;gap:6px;flex-shrink:0}.bs-select-btn{padding:4px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-card);color:var(--color-accent, #007AFF);font-size:12px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s}.bs-select-btn:hover{background:var(--color-bg-secondary)}.bs-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;padding:10px;background:var(--color-card);border-radius:14px;border:1px solid var(--color-border)}.bs-status-item{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:9px;border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s,color .15s;min-width:0}.bs-status-item.on{background:color-mix(in srgb,var(--color-accent, #007AFF) 14%,transparent);color:var(--color-text)}.bs-status-check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--color-border, #ccc);background:var(--color-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,border-color .15s}.bs-status-item.on .bs-status-check{background:var(--color-accent, #007AFF);border-color:var(--color-accent, #007AFF)}.bs-status-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.templates-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg, #f5f5f5);color:var(--color-text, #222)}.tpl-expo-id{font-size:11px;color:var(--color-text-secondary, #888);background:var(--color-card, #fff);padding:3px 8px;border-radius:10px;font-family:monospace}.tpl-section{margin:12px 16px;background:var(--color-card, #fff);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px #0000000f}.tpl-section-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;flex-wrap:wrap;gap:8px}.tpl-section-header h3{margin:0;font-size:15px;font-weight:600}.tpl-actions{display:flex;gap:8px;align-items:center}.tpl-btn-sm{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:12px;background:var(--color-accent, #007AFF);color:#fff;border:none;border-radius:8px;cursor:pointer;white-space:nowrap}.tpl-btn-sm:active{opacity:.7}.tpl-btn-sm:disabled{opacity:.4;cursor:default}.tpl-btn-sm.danger{background:#e74c3c}.tpl-btn-sm.use{background:#34c759;font-weight:600}.tpl-active-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;color:#34c759;background:#34c7591f;border:1.5px solid rgba(52,199,89,.4);border-radius:8px;white-space:nowrap;flex-shrink:0}.tpl-file-list{display:flex;flex-direction:column}.tpl-file-item{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:0;background:none;border:none;border-top:1px solid var(--color-border, #eee);text-align:left;cursor:pointer;color:inherit;font-family:inherit;font-size:14px;transition:background .15s}.tpl-file-item:first-child{border-top:none}.tpl-file-item:active{background:var(--color-bg-tertiary, rgba(0,0,0,.04))}.tpl-file-item.active{background:#007aff14}.tpl-file-item:disabled{opacity:.5;cursor:wait}.tpl-file-icon{flex:0 0 28px;color:var(--color-accent, #007AFF)}.tpl-file-info{flex:1;min-width:0}.tpl-file-name{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpl-file-cached{display:block;font-size:11px;color:var(--color-text-secondary, #888);margin-top:2px}.tpl-cached-badge{flex:0 0 auto;color:#4caf50;font-weight:700;font-size:14px}.tpl-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px 16px;font-size:14px;color:var(--color-text-secondary, #888)}.spinner-sm{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.spinner-lg{width:28px;height:28px;border:3px solid var(--color-accent, #007AFF);border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.tpl-empty{padding:32px 16px;text-align:center;color:var(--color-text-secondary, #888);font-size:14px}.tpl-notice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 32px;text-align:center;color:var(--color-text-secondary, #888)}.tpl-notice p{margin:0;font-size:14px}.tpl-tabs{display:flex;border-bottom:1px solid var(--color-border, #eee)}.tpl-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 8px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary, #888);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.tpl-tab.active{color:var(--color-accent, #007AFF);border-bottom-color:var(--color-accent, #007AFF)}.tpl-tab:active{opacity:.7}.tpl-preview-section{padding:16px}.tpl-preview-info{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.tpl-info-item{font-size:12px;color:var(--color-text-secondary, #888);background:var(--color-bg-tertiary, rgba(0,0,0,.04));padding:3px 8px;border-radius:6px}.tpl-scale-controls{display:flex;align-items:center;gap:4px;margin-left:auto}.tpl-scale-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary, rgba(0,0,0,.04));border:1px solid var(--color-border, #ddd);border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;color:inherit}.tpl-scale-btn:active{opacity:.6}.tpl-scale-value{font-size:12px;font-weight:600;min-width:28px;text-align:center}.tpl-preview-container{overflow:auto;-webkit-overflow-scrolling:touch;padding:8px;background:var(--color-bg-tertiary, rgba(0,0,0,.03));border-radius:8px;text-align:center;max-height:70vh}.tpl-fields{margin-top:16px}.tpl-fields h4{margin:0 0 8px;font-size:13px;font-weight:600}.tpl-fields-list{display:flex;flex-wrap:wrap;gap:6px}.tpl-field-badge{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;font-family:monospace;background:var(--color-bg-tertiary, rgba(0,0,0,.05));padding:3px 8px;border-radius:6px}.tpl-field-demo{font-size:10px;color:var(--color-text-secondary, #888);font-family:inherit}.tpl-scripts{margin-top:16px}.tpl-scripts h4{margin:0 0 8px;font-size:13px;font-weight:600}.tpl-code-block{background:#1e1e1e;color:#d4d4d4;padding:12px;border-radius:8px;font-size:11px;font-family:Consolas,Monaco,Courier New,monospace;line-height:1.5;overflow:auto;-webkit-overflow-scrolling:touch;max-height:400px;margin:0;white-space:pre-wrap;word-break:break-word}.tpl-source-section{padding:16px}.tpl-xml-source{max-height:60vh}.tpl-objects-section{padding:12px 16px}.tpl-objects-list{font-size:12px;font-family:monospace}.tpl-object-item{display:flex;align-items:baseline;gap:6px;padding:3px 0;border-bottom:1px solid var(--color-border, #f0f0f0);flex-wrap:wrap}.tpl-obj-prefix{white-space:pre}.tpl-obj-type{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;background:#e8e8e8;color:#555;flex:0 0 auto}.tpl-type-page{background:#e3f2fd;color:#1565c0}.tpl-type-memoview{background:#e8f5e9;color:#2e7d32}.tpl-type-pictureview{background:#fce4ec;color:#c62828}.tpl-type-lineview{background:#f3e5f5;color:#6a1b9a}.tpl-type-shapeview{background:#fff3e0;color:#e65100}.tpl-type-barcodeview{background:#e0f2f1;color:#00695c}.tpl-type-band,.tpl-type-masterdata,.tpl-type-header{background:#ede7f6;color:#4527a0}.tpl-obj-name{font-weight:600;color:var(--color-text, #333)}.tpl-obj-text{color:var(--color-text-secondary, #888);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpl-obj-font{font-size:10px;color:var(--color-text-secondary, #aaa)}.tpl-obj-pos{font-size:10px;color:var(--color-text-secondary, #aaa);margin-left:auto}[data-theme=dark] .tpl-section{background:var(--color-card, #1e1e1e)}[data-theme=dark] .tpl-file-item.active{background:#007aff26}[data-theme=dark] .tpl-code-block{background:#111}[data-theme=dark] .tpl-obj-type{background:#333;color:#bbb}[data-theme=dark] .tpl-type-page{background:#0d3559;color:#64b5f6}[data-theme=dark] .tpl-type-memoview{background:#1b3a1e;color:#81c784}[data-theme=dark] .tpl-type-pictureview{background:#3c1019;color:#ef9a9a}[data-theme=dark] .tpl-type-lineview{background:#2a1440;color:#ce93d8}[data-theme=dark] .tpl-type-shapeview{background:#3e2300;color:#ffb74d}[data-theme=dark] .tpl-type-barcodeview{background:#002d2d;color:#80cbc4}[data-theme=dark] .tpl-type-band,[data-theme=dark] .tpl-type-masterdata,[data-theme=dark] .tpl-type-header{background:#1a0d3a;color:#b39ddb}.te-page{position:fixed;left:0;right:0;bottom:0;top:var(--titlebar-h, 0px);z-index:200;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}.te-hdr{display:flex;align-items:center;gap:10px;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:48px;position:sticky;top:0;z-index:100}.te-hdr-back{width:40px;height:40px;background:var(--color-bg-tertiary);border:none;border-radius:10px;color:var(--color-text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.te-hdr-back:hover{background:var(--color-border-strong)}.te-hdr-back:active{transform:scale(.95)}.te-hdr-title{flex:1;font-size:17px;font-weight:700;color:var(--color-text)}.te-hdr-title-input{flex:1;min-width:0;font-size:17px;font-weight:700;color:var(--color-text);background:transparent;border:none;outline:none;padding:4px 8px;margin:-4px 0;border-radius:8px;transition:background .15s,box-shadow .15s}.te-hdr-title-input:hover{background:var(--color-bg-tertiary)}.te-hdr-title-input:focus{background:var(--color-input-bg);box-shadow:0 0 0 2px var(--color-accent-light)}.te-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.te-hdr-acts{display:flex;gap:8px;flex-shrink:0}.te-hdr-btn{background:none;border:1px solid var(--color-border-strong);border-radius:8px;color:var(--color-text-secondary);padding:6px 10px;display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;transition:background .15s}.te-hdr-btn:active{background:var(--color-bg-tertiary)}.te-hdr-btn-accent{background:var(--color-accent);border:none;color:#fff}.te-hdr-btn-accent:active{opacity:.85}.te-hdr-btn-ok{border-color:#34c759!important}.te-hdr-btn-err{border-color:#ff3b30!important}.te-hdr-btn:disabled{opacity:.5;pointer-events:none}@keyframes te-spin{to{transform:rotate(360deg)}}.te-spin{animation:te-spin .8s linear infinite}.te-toolbar{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0;position:relative;z-index:30}.te-mw{position:relative}.te-pop{position:absolute;top:calc(100% + 6px);right:0;left:auto;min-width:160px;max-width:calc(100vw - 16px);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:10px;box-shadow:0 6px 24px #0000002e;padding:8px;z-index:50;animation:te-pop-in .12s ease-out}@keyframes te-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.te-pop-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-secondary);opacity:.7;margin-bottom:4px;padding:0 2px}.te-pop-row{display:flex;gap:2px;margin-bottom:4px}.te-sel{padding:5px 8px;border-radius:6px;border:1px solid var(--color-border-strong);background:var(--color-input-bg);color:var(--color-text);font-size:13px;min-width:0}.te-sel-full{width:100%}.te-sep{width:1px;height:24px;background:var(--color-border-strong);flex-shrink:0}.te-tbtn{background:var(--color-input-bg);border:1px solid var(--color-border-strong);border-radius:6px;color:var(--color-text-secondary);padding:5px 8px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.te-tbtn:hover{background:var(--color-bg-tertiary)}.te-tbtn:active{transform:scale(.95)}.te-tbtn.on{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.te-tbtn:disabled{opacity:.3;pointer-events:none}.te-tbtn-group{display:inline-flex;gap:0;border-radius:8px;overflow:hidden;border:1px solid var(--color-border-strong)}.te-tbtn-group .te-tbtn{border:none;border-radius:0;border-right:1px solid var(--color-border-strong);min-width:34px;min-height:32px;padding:4px 10px}.te-tbtn-group .te-tbtn:last-child{border-right:none}.te-tbtn-group .te-tbtn.on{background:var(--color-accent);color:#fff}.te-tbtn-lbl{gap:2px}.te-cpick{width:28px;height:28px;border:1px solid var(--color-border-strong);border-radius:6px;padding:2px;cursor:pointer;background:var(--color-input-bg)}.te-pop-row .te-tbtn{border-radius:4px;padding:6px 10px}.te-pop-paper .te-pinp{text-align:center;-moz-appearance:textfield}.te-pop-paper .te-pinp::-webkit-inner-spin-button,.te-pop-paper .te-pinp::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.te-zoom-controls{display:flex;align-items:center;gap:0;border:1px solid var(--color-border-strong);border-radius:8px;overflow:hidden;position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:20;background:var(--color-bg-secondary);box-shadow:0 2px 12px #00000024;pointer-events:auto}.te-zoom-btn{background:var(--color-input-bg);border:none;color:var(--color-text);width:32px;height:30px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.te-zoom-btn:hover{background:var(--color-bg-tertiary)}.te-zoom-btn:active{background:var(--color-accent);color:#fff}.te-zoom-label{background:none;border:none;border-left:1px solid var(--color-border-strong);border-right:1px solid var(--color-border-strong);color:var(--color-text-secondary);font-size:12px;font-weight:600;padding:0 10px;height:30px;display:flex;align-items:center;cursor:pointer;min-width:50px;justify-content:center}.te-zoom-label:hover{color:var(--color-accent)}.te-grid-svg{opacity:1}.te-body{flex:1;display:flex;overflow:hidden;position:relative}.te-side{width:240px;flex-shrink:0;border-right:1px solid var(--color-border-strong);display:flex;flex-direction:column;background:var(--color-bg);overflow:hidden}.te-side-tabs{display:flex;border-bottom:1px solid var(--color-border)}.te-side-tab{flex:1;border:none;background:none;padding:8px 0;font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:.15s}.te-side-tab.on{color:var(--color-accent);border-bottom-color:var(--color-accent)}.te-props{width:260px;flex-shrink:0;border-left:1px solid var(--color-border-strong);background:var(--color-bg);overflow:hidden;display:flex;flex-direction:column}.te-props-empty{width:260px;flex-shrink:0;border-left:1px solid transparent}.te-canvas-wrap{flex:1;overflow:hidden;display:block;padding:0;background:var(--color-bg-tertiary);-webkit-overflow-scrolling:touch;position:relative;touch-action:pan-x pan-y}.te-canvas{position:absolute;left:0;top:0;background:#fff;box-shadow:0 2px 24px #0000001f;border-radius:2px;touch-action:none;will-change:transform}.te-printzone{position:absolute;border:1px dashed var(--color-border-strong);pointer-events:none}.te-obj{cursor:move;border:1px solid rgba(0,0,0,.08);transition:box-shadow .15s,border-color .15s}.te-obj:hover:not(.te-obj-sel){box-shadow:0 0 0 2px var(--color-accent);border-color:transparent}.te-obj-sel{box-shadow:0 0 0 1px var(--color-accent),0 2px 8px #0000001f}.te-obj-locked{cursor:default}.te-rhandle{position:absolute;right:-5px;bottom:-5px;width:16px;height:16px;cursor:nwse-resize;background:var(--color-accent);border-radius:3px;border:2px solid #fff;z-index:100;touch-action:none;box-shadow:0 1px 4px #0003;transition:transform .12s}.te-rhandle:hover{transform:scale(1.25)}.te-zoom-badge{position:sticky;bottom:12px;margin-top:10px;align-self:center;background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);border-radius:20px;padding:6px 18px;font-size:13px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;z-index:10;box-shadow:0 2px 10px #00000026;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .15s,color .15s}.te-zoom-badge:active{background:var(--color-accent);color:#fff}.te-fpanel{padding:6px;overflow-y:auto;flex:1;min-height:0}.te-fitem{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;cursor:pointer;color:var(--color-text);font-size:13px;transition:background .12s}.te-fitem:hover,.te-fitem:active{background:var(--color-accent-light)}.te-ficon{width:24px;text-align:center;flex-shrink:0;color:var(--color-text-secondary);font-weight:700;font-size:12px}.te-fname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.te-fdiv{padding:8px 10px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-secondary);font-weight:600}.te-opanel{padding:6px;overflow-y:auto;flex:1;min-height:0}.te-oitem{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .12s;color:var(--color-text)}.te-oitem:hover,.te-oitem:active{background:var(--color-accent-light)}.te-oitem.on{background:var(--color-accent);color:#fff}.te-oicon{width:22px;text-align:center;flex-shrink:0;font-size:12px;font-weight:700}.te-olabel{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.te-oacts{display:flex;gap:2px;flex-shrink:0}.te-xbtn{background:none;border:none;border-radius:4px;color:inherit;cursor:pointer;padding:2px 5px;font-size:12px;opacity:.6}.te-xbtn:hover{opacity:1;background:#80808026}.te-xbtn-r{color:#ff3b30!important;opacity:.8}.te-empty-sm{padding:24px 12px;text-align:center;color:var(--color-text-secondary);font-size:13px}.te-ppanel{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0}.te-ppanel-hdr{display:flex;align-items:center;gap:8px;padding:10px 12px;font-weight:600;font-size:14px;border-bottom:1px solid var(--color-border);color:var(--color-text);flex-shrink:0}.te-ppanel-hdr span{flex:1}.te-ppanel-body{padding:8px 12px;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.te-delete-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:16px 0 4px;padding:12px 16px;border:none;border-radius:10px;background:#ff3b30;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;flex-shrink:0}.te-delete-btn:active{background:#d32f2f}.te-pgrp{margin-bottom:10px}.te-pgrp-lbl{display:block;font-size:11px;font-weight:600;color:var(--color-text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}.te-prow{display:flex;gap:6px;align-items:center}.te-plbl{font-size:12px;color:var(--color-text-secondary);width:18px;text-align:center}.te-pinp{flex:1;padding:5px 6px;border-radius:6px;border:1px solid var(--color-border-strong);background:var(--color-input-bg);color:var(--color-text);font-size:13px;min-width:0}.te-pinp-full{width:100%;padding:6px 8px;border-radius:6px;border:1px solid var(--color-border-strong);background:var(--color-input-bg);color:var(--color-text);font-size:13px}.te-pinp:focus,.te-pinp-full:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light)}.te-sw{position:relative;display:inline-flex;cursor:pointer}.te-sw input{position:absolute;opacity:0;width:0;height:0}.te-sw-track{width:40px;height:22px;border-radius:11px;background:var(--color-border-strong);transition:background .2s;position:relative}.te-sw-track:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #00000026}.te-sw input:checked+.te-sw-track{background:var(--color-accent)}.te-sw input:checked+.te-sw-track:after{transform:translate(18px)}.te-list-content{flex:1;overflow-y:auto;padding:12px}.te-list-actions{display:flex;gap:8px;margin-bottom:12px}.te-btn{display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-text);font-size:14px;cursor:pointer;font-weight:500;transition:background .15s}.te-btn:active{background:var(--color-bg-secondary)}.te-btn-accent{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.te-btn-accent:active{opacity:.85}.te-tabs{display:flex;gap:0;border:1px solid var(--color-border-strong);border-radius:10px;overflow:hidden;margin-bottom:12px}.te-tab{flex:1;border:none;background:none;padding:9px 0;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,color .15s}.te-tab.on{background:var(--color-accent);color:#fff}.te-badge{background:#ffffff4d;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:700}.te-tab:not(.on) .te-badge{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.te-card-list{display:flex;flex-direction:column;gap:6px}.te-card{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:var(--color-bg-secondary);cursor:pointer;transition:background .15s}.te-card:active{background:var(--color-bg-tertiary)}.te-card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.te-card-icon[data-src=server]{background:#34c7591f;color:#34c759}.te-card-icon[data-src=local]{background:var(--color-accent-light);color:var(--color-accent)}.te-card-body{flex:1;overflow:hidden}.te-card-name{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.te-card-meta{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.te-card-acts{display:flex;gap:4px;flex-shrink:0}.te-card-arrow{flex-shrink:0;color:var(--color-text-secondary)}.te-ibtn{background:none;border:none;color:var(--color-text-secondary);border-radius:8px;padding:6px;cursor:pointer;display:flex;transition:.15s}.te-ibtn:active{background:var(--color-bg-tertiary)}.te-ibtn-danger{color:#ff3b30}.te-ibtn-danger:active{background:#ff3b301a}.te-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--color-text-secondary)}.te-empty p{margin:6px 0}.te-hint{font-size:13px;opacity:.7}.te-msg{display:flex;align-items:center;gap:8px;justify-content:center;padding:12px;border-radius:10px;font-size:14px;background:var(--color-bg-secondary);color:var(--color-text-secondary);margin-bottom:10px}.te-msg-err{background:#ff3b301a;color:#ff3b30}.te-spin{width:18px;height:18px;border:2.5px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:te-rotate .7s linear infinite}@keyframes te-rotate{to{transform:rotate(360deg)}}.te-mbar{display:flex;justify-content:space-around;align-items:center;padding:6px 0 calc(6px + var(--safe-area-bottom));background:var(--color-bg-secondary);border-top:1px solid var(--color-border-strong);flex-shrink:0}.te-mbar-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--color-text-secondary);font-size:10px;padding:4px 12px;border-radius:8px;cursor:pointer;transition:.15s}.te-mbar-btn.on{color:var(--color-accent)}.te-mbar-btn:active{background:var(--color-accent-light)}.te-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000059;display:flex;align-items:flex-end;animation:te-fadein .15s}@keyframes te-fadein{0%{opacity:0}}.te-sheet{width:100%;max-height:none;min-height:220px;background:var(--color-bg);border-radius:16px 16px 0 0;overflow:hidden;display:flex;flex-direction:column;animation:te-slideup .2s ease-out;padding-bottom:var(--safe-area-bottom)}@keyframes te-slideup{0%{transform:translateY(30%);opacity:.5}}.te-sheet-head{position:sticky;top:0;z-index:1;background:var(--color-bg);padding:8px 12px 4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.te-sheet-handle{width:36px;height:5px;border-radius:3px;background:var(--color-border-strong);margin:8px auto;cursor:ns-resize;touch-action:none}.te-sheet-head .te-sheet-handle{margin:0 auto}.te-sheet-close{position:absolute;right:10px;top:6px;width:32px;height:32px;border:none;border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.te-sheet-close:active{transform:scale(.95)}@media(min-width:700px){.te-canvas-wrap{padding:0}.te-canvas{box-shadow:0 4px 32px #00000024}.te-side-tab{padding:10px 0;font-size:14px}.te-ppanel-body{padding:10px 14px}.te-pgrp{margin-bottom:12px}.te-pinp{padding:6px 8px}.te-pinp-full{padding:7px 10px}.te-fitem{padding:8px 12px;border-radius:8px;min-height:36px}.te-fitem:hover{background:var(--color-accent-light)}.te-oitem{padding:7px 12px;min-height:36px}.te-oitem:hover{background:var(--color-accent-light)}.te-toolbar{gap:6px;padding:6px 12px}.te-tbtn{padding:6px 10px;min-height:34px;min-width:34px}.te-zoom-controls{border-radius:10px;box-shadow:0 2px 14px #0000001f;bottom:16px}.te-zoom-btn{width:38px;height:34px;font-size:17px}.te-zoom-label{min-width:60px;height:34px;font-size:13px}}@media(max-width:699px){.te-hdr{padding:12px 14px;padding-top:max(12px,var(--safe-area-top));padding-left:max(14px,var(--safe-area-left));padding-right:max(14px,var(--safe-area-right));min-height:48px}.te-hdr-title{font-size:16px}.te-hdr-btn{padding:6px 8px;font-size:12px}.te-toolbar{gap:3px;padding:4px 6px}.te-sel{padding:4px 6px;font-size:12px}.te-tbtn{padding:5px 7px;font-size:13px;min-height:30px}.te-cpick{width:30px;height:30px}.te-pop{min-width:140px;max-width:calc(100vw - 24px)}.te-zoom-controls{position:fixed;bottom:calc(60px + var(--safe-area-bottom));left:50%;right:auto;transform:translate(-50%);z-index:50;border-radius:12px}.te-zoom-btn{width:40px;height:36px;font-size:18px}.te-zoom-label{font-size:12px;padding:0 10px;height:36px;min-width:54px}.te-canvas-wrap{padding:0}.te-canvas{box-shadow:0 1px 12px #0000001a}.te-rhandle{width:28px;height:28px;right:0;bottom:0;border-radius:6px 0 2px;border-width:2px;background:linear-gradient(135deg,transparent 40%,var(--color-accent) 40%);opacity:.85}.te-list-content{padding:8px}.te-card{padding:10px}.te-card-icon{width:36px;height:36px}.te-mbar{padding:8px 0 calc(8px + var(--safe-area-bottom));gap:4px}.te-mbar-btn{padding:6px 16px;font-size:11px;border-radius:10px;min-height:44px;min-width:60px}.te-mbar-btn svg{width:20px;height:20px}.te-sheet{max-height:none}.te-ppanel-body{padding:10px 14px}.te-pgrp{margin-bottom:12px}.te-pinp,.te-pinp-full{padding:8px 10px;font-size:14px;border-radius:8px}.te-prow{gap:8px}.te-fitem{padding:10px 12px;font-size:14px;min-height:44px}.te-ficon{width:28px;font-size:14px}.te-oitem{padding:9px 12px;font-size:14px;min-height:44px}.te-oicon{width:26px;font-size:14px}.te-xbtn{padding:4px 8px;font-size:14px;min-width:32px;min-height:32px}}@media(max-width:379px){.te-hdr{padding:10px 12px;padding-top:max(10px,var(--safe-area-top));padding-left:max(12px,var(--safe-area-left));padding-right:max(12px,var(--safe-area-right))}.te-toolbar{padding:4px 6px;gap:3px}.te-sel-font{max-width:70px}.te-mbar-btn{padding:5px 10px;min-width:50px}}.offline-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column}.offline-header{display:flex;align-items:center;gap:12px;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));background:var(--color-card);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.offline-header h1{flex:1;font-size:20px;font-weight:700;margin:0}.offline-header .back-btn{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;color:var(--color-text);cursor:pointer;transition:background .15s}.offline-header .back-btn:active{background:var(--color-border)}.network-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;flex-shrink:0}.network-badge.online{background:#34c75926;color:#34c759}.network-badge.offline{background:#ff3b3026;color:#ff3b30}.network-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.offline-message{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;animation:fadeInUp .3s ease}.offline-message.success{color:var(--color-success, #34C759)}.offline-message.error{color:#ff3b30}.offline-content{flex:1;padding:16px;padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));padding-bottom:max(32px,var(--safe-area-bottom));display:flex;flex-direction:column;gap:24px}.offline-page .settings-section{display:flex;flex-direction:column;gap:8px}.offline-page .section-title{font-size:13px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;padding-left:4px}.offline-page .section-hint{font-size:13px;color:var(--color-text-tertiary);margin:4px 0 0;padding-left:4px}.offline-page .section-hint.warning{color:#ff9500}.offline-page .settings-card{background:var(--color-card);border-radius:14px;overflow:hidden}.offline-page .settings-item{display:flex;align-items:center;gap:12px;padding:14px 16px;min-height:56px}.offline-page .settings-item-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.offline-page .settings-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.offline-page .settings-item-label{font-size:15px;font-weight:600;color:var(--color-text)}.offline-page .settings-item-hint{font-size:13px;color:var(--color-text-tertiary)}.offline-page .settings-divider{height:1px;background:var(--color-border);margin:0 16px}.offline-page .toggle-switch{position:relative;display:inline-block;width:51px;height:31px;flex-shrink:0}.offline-page .toggle-switch input{opacity:0;width:0;height:0}.offline-page .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border-strong);transition:.3s;border-radius:31px}.offline-page .toggle-slider:before{position:absolute;content:"";height:27px;width:27px;left:2px;bottom:2px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}.offline-page .toggle-switch input:checked+.toggle-slider{background-color:var(--color-accent)}.offline-page .toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.pool-bar-wrap{flex:1;height:8px;border-radius:4px;background:var(--color-bg-tertiary);overflow:hidden}.pool-bar{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--color-accent),#5856D6);transition:width .5s ease}.action-row{display:flex;gap:8px;flex-wrap:wrap}.offline-btn{padding:8px 16px;border-radius:10px;border:none;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;background:var(--color-bg-tertiary);color:var(--color-text);transition:background .15s,opacity .15s}.offline-btn:active{background:var(--color-border)}.offline-btn:disabled{opacity:.5;cursor:not-allowed}.offline-btn.primary{background:var(--color-accent);color:#fff}.offline-btn.primary:active{opacity:.85}.offline-btn.danger{color:#ff3b30}.log-header{display:flex;align-items:center;justify-content:space-between}.log-clear-btn{background:none;border:none;font-size:13px;font-weight:600;color:var(--color-accent);cursor:pointer;padding:4px 8px;font-family:inherit}.log-list{max-height:300px;overflow-y:auto;-webkit-overflow-scrolling:touch}.log-entry{display:flex;align-items:flex-start;gap:8px;padding:8px 16px;font-size:13px;border-bottom:1px solid var(--color-border)}.log-entry:last-child{border-bottom:none}.log-icon{flex-shrink:0;width:20px;text-align:center}.log-text{flex:1;color:var(--color-text-secondary);word-break:break-word}.log-time{flex-shrink:0;font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.log-entry.log-error .log-text{color:#ff3b30}.log-entry.log-sent .log-text{color:#34c759}.wp-page{display:flex;flex-direction:column;color:var(--color-text);font-family:inherit;padding:0 16px 16px}.wp-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0 12px}.wp-title{font-size:17px;font-weight:600;margin:0}.wp-refresh{display:inline-flex;align-items:center;gap:5px;background:none;border:1px solid var(--color-border, #e0e0e0);color:var(--color-accent, #007AFF);cursor:pointer;padding:5px 12px;border-radius:8px;font-size:12px;font-family:inherit}.wp-refresh:hover{background:var(--color-bg-tertiary)}.wp-refresh:disabled{opacity:.5;cursor:default}.wp-spin{animation:wp-rotate .8s linear infinite}@keyframes wp-rotate{to{transform:rotate(360deg)}}.wp-saved{display:flex;align-items:center;gap:6px;margin:12px 16px 0;padding:8px 14px;border-radius:10px;background:#34c7591f;color:#28a745;font-size:13px;font-weight:500;animation:wp-fadeIn .25s ease}.wp-error{display:flex;align-items:center;gap:8px;margin:12px 16px 0;padding:10px 14px;border-radius:10px;background:#ff3b301a;color:#ff3b30;font-size:13px}.wp-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 16px;color:var(--color-text-secondary);font-size:14px}.wp-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent, #007AFF);border-radius:50%;animation:wp-rotate .7s linear infinite}.wp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--color-text-tertiary);font-size:14px;text-align:center}.wp-empty p{margin:0}.wp-btn{padding:8px 20px;border:none;border-radius:8px;background:var(--color-accent, #007AFF);color:#fff;font-size:13px;font-weight:500;cursor:pointer}.wp-btn:hover{filter:brightness(1.1)}.wp-list{display:flex;flex-direction:column;padding:12px 16px;gap:8px}.wp-list-header{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;padding:0 4px 4px}.wp-printer{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--color-card);border:1.5px solid transparent;cursor:pointer;transition:all .15s ease;text-align:left;font-family:inherit;color:inherit;width:100%}.wp-printer:hover{background:var(--color-bg-secondary)}.wp-printer.selected{border-color:var(--color-accent, #007AFF);background:#007aff0f}.wp-printer-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);color:var(--color-text-secondary);flex-shrink:0}.wp-printer.selected .wp-printer-icon{background:#007aff1f;color:var(--color-accent, #007AFF)}.wp-printer-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.wp-printer-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-sys-default{font-size:10px;font-weight:500;padding:1px 6px;border-radius:4px;background:#007aff1a;color:var(--color-accent, #007AFF);white-space:nowrap}.wp-printer-desc{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-printer-status{font-size:11px;font-weight:500}.wp-printer-status.ready{color:#28a745}.wp-printer-status.paused{color:#e08600}.wp-printer-status.error{color:#ff3b30}.wp-printer-connection{font-size:11px;font-weight:500}.wp-printer-connection.connected{color:#28a745}.wp-printer-connection.disconnected{color:#ff3b30}.wp-printer-connection.unknown{color:var(--color-text-tertiary)}.wp-printer-check{flex-shrink:0;display:flex;align-items:center}.wp-hint{display:flex;align-items:flex-start;gap:8px;margin:8px 16px 20px;padding:10px 14px;border-radius:10px;background:var(--color-bg-secondary);font-size:12px;color:var(--color-text-secondary);line-height:1.4}.wp-hint svg{flex-shrink:0;margin-top:1px}@keyframes wp-fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.wp-autodetect-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 16px 12px;padding:12px 14px;border-radius:12px;background:var(--color-bg-secondary)}.wp-autodetect-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.wp-autodetect-label{font-size:14px;font-weight:500;color:var(--color-text)}.wp-autodetect-hint{font-size:12px;color:var(--color-text-secondary);line-height:1.4}.wp-toggle{position:relative;display:inline-block;width:44px;height:26px;flex-shrink:0}.wp-toggle input{opacity:0;width:0;height:0}.wp-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-border, #ddd);border-radius:13px;cursor:pointer;transition:background .2s}.wp-toggle-slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.wp-toggle input:checked+.wp-toggle-slider{background:var(--color-accent, #007AFF)}.wp-toggle input:checked+.wp-toggle-slider:before{transform:translate(18px)}.wp-engine-section{padding:0 16px;margin-top:8px}.wp-engine-header{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;padding:0 4px 8px}.wp-engine-options{display:flex;flex-direction:column;gap:8px}.wp-engine-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--color-card);border:1.5px solid transparent;cursor:pointer;transition:all .15s ease;text-align:left;font-family:inherit;color:inherit;width:100%}.wp-engine-card:hover{background:var(--color-bg-secondary)}.wp-engine-card.active{border-color:var(--color-accent, #007AFF);background:#007aff0f}.wp-engine-card.disabled{opacity:.5;cursor:not-allowed}.wp-engine-card.disabled:hover{background:var(--color-card)}.wp-engine-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);color:var(--color-text-secondary);flex-shrink:0}.wp-engine-card.active .wp-engine-icon{background:#007aff1f;color:var(--color-accent, #007AFF)}.wp-engine-icon.fr{background:#34c7591a;color:#28a745}.wp-engine-card.active .wp-engine-icon.fr{background:#007aff1f;color:var(--color-accent, #007AFF)}.wp-engine-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.wp-engine-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px}.wp-engine-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.35}.wp-engine-badge{font-size:10px;font-weight:500;padding:1px 6px;border-radius:4px;white-space:nowrap}.wp-engine-badge.ok{background:#34c7591f;color:#28a745}.wp-engine-badge.fail{background:#ff3b301a;color:#ff3b30}.wp-engine-badge.check{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.wp-engine-check{flex-shrink:0;display:flex;align-items:center}.wp-engine-note{display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding:8px 12px;border-radius:8px;background:#ffcc001a;font-size:12px;color:#e08600;line-height:1.35}.wp-engine-note svg{flex-shrink:0;margin-top:1px}.wp-editor-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border, #e5e5e5)}.wp-editor-desc{font-size:12.5px;color:var(--color-text-secondary, #888);margin:4px 0 12px;line-height:1.4}.wp-editor-warn{color:#e08600;font-weight:500}.wp-template-list{display:flex;flex-direction:column;gap:6px}.wp-template-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--color-bg-secondary, #f9f9f9);border:1px solid transparent;transition:background .15s,border-color .15s}.wp-template-item.active{border-color:var(--color-accent, #007AFF);background:#007aff0f}.wp-template-icon{flex-shrink:0;color:var(--color-text-tertiary, #aaa)}.wp-template-item.active .wp-template-icon{color:var(--color-accent, #007AFF)}.wp-template-info{flex:1;min-width:0}.wp-template-name{font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}.wp-template-edit-btn{display:inline-flex;align-items:center;gap:5px;background:var(--color-accent, #007AFF);color:#fff;border:none;padding:6px 14px;border-radius:8px;font-size:12px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:opacity .15s}.wp-template-edit-btn:hover{opacity:.85}.wp-template-edit-btn:disabled{opacity:.5;cursor:default}.wp-spinner-sm{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:wp-rotate .6s linear infinite}.wp-editor-empty{font-size:13px;color:var(--color-text-tertiary, #aaa);padding:16px 0;display:flex;align-items:center;gap:10px}.wp-btn-small{background:none;border:1px solid var(--color-border, #e0e0e0);color:var(--color-accent, #007AFF);cursor:pointer;padding:4px 10px;border-radius:6px;font-size:11px;font-family:inherit}.wp-btn-small:hover{background:var(--color-bg-tertiary)}.wp-template-group{margin-bottom:12px}.wp-template-group-title{font-size:12px;font-weight:600;color:var(--color-text-secondary, #888);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:flex;align-items:center}.wp-template-meta{font-size:11.5px;color:var(--color-text-tertiary, #aaa);line-height:1.3}.wp-template-item{cursor:pointer}.wp-template-item:hover:not(.active){background:var(--color-bg-tertiary, #f0f0f0)}.wp-editor-hint{margin-top:10px;font-size:12px;color:var(--color-text-tertiary, #aaa);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.settings-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:100}.settings-header .header-left{display:flex;align-items:center;gap:10px}.settings-header .header-right{display:flex;align-items:center;gap:8px}.back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:none;border-radius:10px;color:var(--color-text);cursor:pointer;transition:all .2s}.back-button:hover{background:var(--color-border-strong)}.back-button:active{transform:scale(.95)}.settings-header .header-title{font-size:17px;font-weight:700;color:var(--color-text)}.settings-content{flex:1;padding:16px;padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));padding-bottom:max(32px,var(--safe-area-bottom));display:flex;flex-direction:column;gap:24px}.settings-section{display:flex;flex-direction:column;gap:8px}.section-title{font-size:13px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px;padding-left:4px}.section-hint{font-size:13px;color:var(--color-text-tertiary);margin:4px 0 0;padding-left:4px}.settings-card{background:var(--color-card);border-radius:14px;overflow:hidden}.settings-item{display:flex;align-items:center;gap:12px;padding:14px 16px;min-height:56px}.settings-item-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--color-accent);color:#fff}.settings-item-icon.app-icon{background:transparent}.settings-item-icon.theme-icon{background:#8e8e93}.settings-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.settings-item-label{font-size:15px;font-weight:600;color:var(--color-text)}.settings-item-hint{font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-input{width:56px;padding:8px 0;border:none;border-radius:10px;font-size:17px;font-family:inherit;font-weight:600;text-align:center;background:var(--color-input-bg);color:var(--color-text);-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.settings-input::-webkit-outer-spin-button,.settings-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-input:focus{outline:none;box-shadow:0 0 0 2px var(--color-accent)}.settings-input-text{width:90px;font-size:14px;font-weight:500;text-align:left;padding:8px 10px}.settings-divider{height:1px;background:var(--color-border);margin:0 16px}.settings-link{width:100%;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;transition:background .15s}.settings-link:hover{background:var(--color-bg-tertiary)}.settings-link:active{background:var(--color-border)}.settings-link>svg{flex-shrink:0;color:var(--color-text-tertiary)}.theme-toggle{display:flex;background:var(--color-bg);border-radius:8px;padding:2px;gap:2px}.theme-option{padding:6px 12px;border:none;border-radius:6px;font-size:13px;font-weight:500;font-family:inherit;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px}.theme-option.active{background:var(--color-accent);color:#fff}.theme-option svg{width:14px;height:14px}.version-badge{font-size:13px;color:var(--color-text-tertiary);font-weight:500;padding:4px 10px;background:var(--color-bg);border-radius:8px}.saved-message{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--color-success);animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.settings-page .logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:var(--color-error-bg);border:none;border-radius:14px;color:var(--color-error);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.settings-page .logout-btn:hover{opacity:.9}.settings-page .logout-btn:active{transform:scale(.98)}.settings-page .logout-btn svg{flex-shrink:0}@media(max-width:380px){.settings-header .header-title{font-size:16px}.settings-item-label{font-size:14px}.settings-input{width:50px}}@media(min-width:768px){.settings-desktop{display:flex;flex-direction:column;height:calc(100vh - var(--titlebar-h));height:calc(100dvh - var(--titlebar-h));overflow:hidden}.settings-desktop .settings-header{padding:8px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.sd-split{display:flex;flex:1;min-height:0;overflow:hidden}.sd-sidebar{width:260px;min-width:260px;max-width:260px;background:var(--color-bg);border-right:1px solid var(--color-border);overflow-y:auto;overflow-x:hidden;padding:12px 10px;display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch}.sd-sidebar::-webkit-scrollbar{width:6px}.sd-sidebar::-webkit-scrollbar-thumb{background:#0000001a;border-radius:6px}.sd-sidebar-group{display:flex;flex-direction:column;gap:1px}.sd-sidebar-group-title{font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.4px;padding:0 10px 4px;-webkit-user-select:none;user-select:none}.sd-sidebar-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:none;border-radius:8px;background:transparent;color:var(--color-text);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .12s ease;text-align:left;line-height:1.3}.sd-sidebar-item:hover{background:var(--color-bg-tertiary)}.sd-sidebar-item.active{background:var(--color-accent);color:#fff}.sd-sidebar-item.active .sd-sidebar-icon{background:#ffffff40!important}.sd-sidebar-item.active .sd-sidebar-item-label{color:#fff}.sd-sidebar-icon{width:28px;height:28px;min-width:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s ease}.sd-sidebar-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);transition:color .12s ease}.sd-panel{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;background:var(--color-bg);-webkit-overflow-scrolling:touch}.sd-panel>.settings-page,.sd-panel>.scanner-settings,.sd-panel>.bluetooth-printer-page,.sd-panel>.appearance-page,.sd-panel>.security-settings,.sd-panel>.buttons-settings-page,.sd-panel>.offline-settings-page,.sd-panel>.templates-page,.sd-panel>[class*=page],.sd-panel>[class*=Page],.sd-panel>[class*=settings]{min-height:auto!important;height:auto}.sd-panel>.te-page:not(.te-editor){position:relative!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;z-index:auto!important;flex:1;min-height:0!important;height:100%!important}.sd-panel .settings-header,.sd-panel .security-header,.sd-panel .offline-header{display:none!important}.sd-panel>.te-page:not(.te-editor)>.te-hdr{display:none!important}.sd-panel:has(>.te-page.te-editor){overflow:hidden}.sd-panel-inner{padding:24px 32px;max-width:600px}.sd-panel-title{font-size:22px;font-weight:700;color:var(--color-text);margin:0 0 6px}.sd-panel-desc{font-size:14px;color:var(--color-text-tertiary);margin:0 0 20px;line-height:1.5}.sd-logout-section{margin-top:32px;max-width:340px}.sd-logout-section .logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;background:var(--color-error-bg);border:none;border-radius:10px;color:var(--color-error);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.sd-logout-section .logout-btn:hover{opacity:.85}.sd-logout-section .logout-btn:active{transform:scale(.98)}}.autoprint-page{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;display:flex;flex-direction:column;z-index:1000;overflow:hidden}.autoprint-header{position:absolute;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:flex-start;padding:max(16px,var(--safe-area-top)) max(16px,var(--safe-area-right)) 16px max(16px,var(--safe-area-left))}.autoprint-header-right{display:flex;align-items:center;gap:8px}.autoprint-back{width:48px;height:48px;border-radius:50%;background:#fff3;border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.autoprint-back:active{background:#ffffff4d;transform:scale(.95)}.autoprint-badge{width:48px;height:48px;border-radius:50%;background:#007affe6;color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.autoprint-badge svg{stroke:#fff}.autoprint-torch{width:48px;height:48px;border-radius:50%;background:#fff3;border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s}.autoprint-torch:active{transform:scale(.95)}.autoprint-torch.active{background:#ffc107;color:#000}.autoprint-mode-toggle{display:flex;border-radius:12px;overflow:hidden;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.autoprint-mode-btn{display:flex;align-items:center;gap:4px;padding:8px 12px;border:none;background:transparent;color:#fff9;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.autoprint-mode-btn.active{background:#ffffff4d;color:#fff}.autoprint-mode-btn:active{opacity:.7}.autoprint-camera{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.autoprint-scanner{width:100%;height:100%;position:absolute;top:0;left:0}.autoprint-scanner video{width:100%!important;height:100%!important;object-fit:cover!important}.autoprint-scanner>div{border:none!important}#autoprint-scanner img[alt="Info icon"],#autoprint-scanner a,#autoprint-scanner>div:last-child{display:none!important}.autoprint-status{position:absolute;bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:20px;padding-bottom:max(20px,var(--safe-area-bottom));border-radius:24px 24px 0 0;min-height:100px;display:flex;flex-direction:column;gap:12px;z-index:50;transform:translateY(0);opacity:1;transition:transform .4s cubic-bezier(.4,0,.2,1),background-color .4s ease,min-height .35s ease,padding .3s ease,border-radius .3s ease}.autoprint-status.ready{transform:translateY(calc(100% - 60px));min-height:60px;padding:16px 20px;border-radius:16px 16px 0 0}.autoprint-status.searching,.autoprint-status.printing,.autoprint-status.success,.autoprint-status.error,.autoprint-status.reprint,.autoprint-status.qr-register{transform:translateY(0)}.autoprint-status.searching{background:#ffc107f2}.autoprint-status.printing{background:#007afff2}.autoprint-status.success{background:#4caf50f2}.autoprint-status.error{background:#f44336f2}.autoprint-status.reprint{background:#f57c00f2}.autoprint-status.qr-register{background:#5856d6f2}[data-theme=dark] .autoprint-status{background:#1e1e1ef2}[data-theme=dark] .autoprint-status.searching{background:#ffc107eb}[data-theme=dark] .autoprint-status.printing{background:#007affeb}[data-theme=dark] .autoprint-status.success{background:#4caf50eb}[data-theme=dark] .autoprint-status.error{background:#f44336eb}[data-theme=dark] .autoprint-status.reprint{background:#f57c00eb}[data-theme=dark] .autoprint-status.qr-register{background:#5856d6eb}.autoprint-status.printing{animation:printingGlow 1.8s ease-in-out infinite}@keyframes printingGlow{0%,to{background:#007afff2;box-shadow:0 -4px 30px #007aff00}50%{background:#1e90fffa;box-shadow:0 -4px 30px #007aff4d}}.autoprint-status.reprint{animation:reprintPulse 2s ease-in-out infinite}@keyframes reprintPulse{0%,to{background:#f57c00f2}50%{background:#ff9800fa}}.autoprint-status.qr-register{animation:qrRegisterPulse 2s ease-in-out infinite}@keyframes qrRegisterPulse{0%,to{background:#5856d6f2}50%{background:#6e6ce6fa}}.autoprint-user-code{display:inline-flex;align-items:center;gap:4px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:600;color:#00000080;letter-spacing:.5px;margin-top:2px;transition:color .3s ease}.autoprint-user-code svg{flex-shrink:0;opacity:.6}.autoprint-status.success .autoprint-user-code,.autoprint-status.error .autoprint-user-code,.autoprint-status.printing .autoprint-user-code,.autoprint-status.reprint .autoprint-user-code,.autoprint-status.qr-register .autoprint-user-code{color:#ffffffd9}.autoprint-status.success .autoprint-user-code svg,.autoprint-status.error .autoprint-user-code svg,.autoprint-status.printing .autoprint-user-code svg,.autoprint-status.reprint .autoprint-user-code svg,.autoprint-status.qr-register .autoprint-user-code svg{opacity:.8}[data-theme=dark] .autoprint-user-code{color:#ffffff80}.autoprint-status.qr-register .reprint-btn-confirm{color:#5856d6}.autoprint-status.qr-register .reprint-btn-confirm svg{stroke:#5856d6}.autoprint-user{display:flex;align-items:center;gap:12px;padding:12px;background:#0000000d;border-radius:12px;animation:userSlideIn .35s cubic-bezier(.4,0,.2,1) both}@keyframes userSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}[data-theme=dark] .autoprint-user{background:#ffffff1a}.autoprint-status.success .autoprint-user,.autoprint-status.error .autoprint-user,.autoprint-status.printing .autoprint-user,.autoprint-status.reprint .autoprint-user,.autoprint-status.qr-register .autoprint-user{background:#fff3}.autoprint-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#007aff,#5856d6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;flex-shrink:0;animation:avatarPop .3s cubic-bezier(.175,.885,.32,1.275) .1s both}@keyframes avatarPop{0%{transform:scale(0)}to{transform:scale(1)}}.autoprint-user-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.autoprint-user-name{font-size:17px;font-weight:600;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease}[data-theme=dark] .autoprint-user-name{color:#fff}.autoprint-user-company{font-size:14px;color:#0009;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease}[data-theme=dark] .autoprint-user-company{color:#fff9}.autoprint-message{display:flex;align-items:center;justify-content:center;gap:12px;font-size:17px;font-weight:500;color:#000;padding:8px;transition:color .3s ease}.autoprint-status.searching .autoprint-message{color:#000}.autoprint-status.printing .autoprint-message,.autoprint-status.success .autoprint-message,.autoprint-status.error .autoprint-message,.autoprint-status.reprint .autoprint-message,.autoprint-status.qr-register .autoprint-message{color:#fff}.autoprint-status.printing .autoprint-message svg,.autoprint-status.success .autoprint-message svg,.autoprint-status.error .autoprint-message svg,.autoprint-status.reprint .autoprint-message svg,.autoprint-status.qr-register .autoprint-message svg{stroke:#fff}[data-theme=dark] .autoprint-message{color:#fff}.autoprint-status.success .autoprint-message svg{animation:successDraw .5s cubic-bezier(.175,.885,.32,1.275) both}@keyframes successDraw{0%{transform:scale(0) rotate(-45deg);opacity:0}50%{transform:scale(1.2) rotate(0);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.autoprint-status.success:after{content:"";position:absolute;top:50%;left:50%;width:60px;height:60px;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%) scale(0);animation:successFlash .6s ease-out .15s;pointer-events:none}@keyframes successFlash{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(5);opacity:0}}.autoprint-status.error .autoprint-message{animation:errorShake .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes errorShake{0%,to{transform:translate(0)}10%{transform:translate(-6px) rotate(-1deg)}30%{transform:translate(6px) rotate(1deg)}50%{transform:translate(-4px)}70%{transform:translate(4px)}90%{transform:translate(-2px)}}.autoprint-status.success .autoprint-user-name,.autoprint-status.error .autoprint-user-name,.autoprint-status.printing .autoprint-user-name,.autoprint-status.reprint .autoprint-user-name,.autoprint-status.qr-register .autoprint-user-name{color:#fff}.autoprint-status.success .autoprint-user-company,.autoprint-status.error .autoprint-user-company,.autoprint-status.printing .autoprint-user-company,.autoprint-status.reprint .autoprint-user-company,.autoprint-status.qr-register .autoprint-user-company{color:#fffc}.autoprint-spinner{width:24px;height:24px;border:3px solid rgba(0,0,0,.15);border-top-color:#007aff;border-radius:50%;animation:spinnerRotate .7s linear infinite;flex-shrink:0}@keyframes spinnerRotate{to{transform:rotate(360deg)}}.autoprint-status.searching .autoprint-spinner{border-color:#00000026;border-top-color:#000000b3}.autoprint-status.printing .autoprint-spinner{border-color:#ffffff40;border-top-color:#fff;box-shadow:0 0 12px #fff3}[data-theme=dark] .autoprint-spinner{border-color:#ffffff26;border-top-color:#007aff}.autoprint-hid{display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.hid-scanner-fullscreen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;position:relative}.hid-scanner-fullscreen .hid-scanner-icon{color:var(--color-accent);opacity:.7;animation:hidPulseIcon 2s ease-in-out infinite}.hid-scanner-fullscreen .hid-scanner-title{font-size:20px;font-weight:600;color:var(--color-text)}.hid-scanner-fullscreen .hid-scanner-hint{font-size:14px;color:var(--color-text-secondary);text-align:center}.hid-scanner-fullscreen .hid-scanner-pulse{position:absolute;width:120px;height:120px;border-radius:50%;border:2px solid var(--color-accent);opacity:0;animation:hidPulseCircle 2s ease-in-out infinite;pointer-events:none;top:-20px}@keyframes hidPulseCircle{0%,to{opacity:0;transform:scale(1)}50%{opacity:.2;transform:scale(1.5)}}.autoprint-reprint-buttons{display:flex;gap:12px;width:100%;animation:buttonsSlideUp .35s cubic-bezier(.4,0,.2,1) .15s both}@keyframes buttonsSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.reprint-btn-cancel{flex:1;padding:14px;border:2px solid rgba(255,255,255,.4);border-radius:12px;background:transparent;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s,transform .15s}.reprint-btn-cancel:active{background:#ffffff26;transform:scale(.97)}.reprint-btn-confirm{flex:1;padding:14px;border:none;border-radius:12px;background:#fff;color:#f57c00;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,transform .15s;box-shadow:0 2px 12px #00000026}.reprint-btn-confirm svg{stroke:#f57c00}.reprint-btn-confirm:active{background:#ffffffd9;transform:scale(.97)}.ss-trigger{display:flex;align-items:center;width:100%;padding:11px 36px 11px 14px;font-size:16px;font-family:inherit;color:var(--color-text-tertiary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;outline:none;cursor:pointer;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;text-align:left;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;gap:6px;min-height:46px}.ss-trigger.ss-has-value{color:var(--color-text)}.ss-trigger.ss-disabled{opacity:.6;cursor:not-allowed;background:var(--color-bg-tertiary, #f0f0f0)}.ss-trigger:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0066ff1a}.ss-trigger:active:not(.ss-disabled){border-color:var(--color-accent)}.ss-trigger-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.ss-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);flex-shrink:0;pointer-events:none}.ss-clear{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-border);color:var(--color-text-secondary);flex-shrink:0;transition:background .15s;z-index:1;margin-right:18px}.ss-clear:active{background:var(--color-text-tertiary)}.ss-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#00000073;display:flex;align-items:flex-end;justify-content:center;animation:ss-fade-in .2s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes ss-fade-in{0%{opacity:0}to{opacity:1}}.ss-sheet{width:100%;max-width:500px;max-height:75vh;background:var(--color-card, #fff);border-radius:20px 20px 0 0;display:flex;flex-direction:column;animation:ss-slide-up .25s ease-out;box-shadow:0 -4px 30px #00000026;overflow:hidden}@keyframes ss-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.ss-handle-bar{display:flex;justify-content:center;padding:10px 0 6px;flex-shrink:0}.ss-handle{width:36px;height:4px;background:var(--color-border);border-radius:4px}.ss-title{padding:0 14px 6px;font-size:16px;font-weight:600;color:var(--color-text);text-align:center;flex-shrink:0}.ss-search-wrap{position:relative;padding:4px 14px 10px;flex-shrink:0}.ss-search-icon{position:absolute;left:26px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.ss-search{width:100%;padding:10px 38px;font-size:16px;font-family:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;outline:none;box-sizing:border-box;transition:border-color .2s;-webkit-appearance:none}.ss-search:focus{border-color:var(--color-accent)}.ss-search::placeholder{color:var(--color-text-tertiary)}.ss-search-clear{position:absolute;right:26px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:var(--color-border);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer}.ss-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 6px 6px}.ss-option{display:flex;align-items:center;width:100%;padding:13px 14px;font-size:15px;font-family:inherit;color:var(--color-text);background:none;border:none;border-radius:10px;cursor:pointer;text-align:left;transition:background .12s;gap:8px}.ss-option:active{background:var(--color-bg)}.ss-option-active{background:#0066ff14;color:var(--color-accent);font-weight:600}.ss-option-active:active{background:#0066ff24}.ss-option-text{flex:1;min-width:0;line-height:1.35}.ss-check{flex-shrink:0;color:var(--color-accent)}.ss-empty{padding:24px 14px;text-align:center;color:var(--color-text-tertiary);font-size:14px}.ss-recent-header{display:flex;align-items:center;gap:6px;padding:8px 14px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary)}.ss-option-recent{color:var(--color-accent)}.ss-divider{height:1px;background:var(--color-border);margin:4px 14px}.ss-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;padding-bottom:max(10px,var(--safe-area-bottom, 10px));border-top:1px solid var(--color-border);flex-shrink:0}.ss-count{font-size:12px;color:var(--color-text-tertiary)}.ss-close-btn{padding:8px 20px;font-size:14px;font-weight:600;font-family:inherit;color:var(--color-accent);background:#0066ff14;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.ss-close-btn:active{background:#0066ff29}.create-visitor-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.create-visitor-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:100}.create-visitor-header .header-left{display:flex;align-items:center;gap:10px}.create-visitor-header .header-right{display:flex;align-items:center;gap:8px}.create-visitor-header .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:none;border-radius:10px;color:var(--color-text);cursor:pointer;transition:all .2s}.create-visitor-header .back-button:hover{background:var(--color-border-strong)}.create-visitor-header .back-button:active{transform:scale(.95)}.header-title-block{display:flex;flex-direction:column;gap:1px}.create-visitor-header .header-title{font-size:17px;font-weight:700;color:var(--color-text);line-height:1.2}.header-expo-name{font-size:12px;font-weight:500;color:var(--color-text-secondary);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visitor-form{flex:1;padding:16px;padding-bottom:max(32px,var(--safe-area-bottom));overflow-y:auto}.form-section{background:var(--color-card);border-radius:14px;padding:16px;margin-bottom:16px}.form-section h3{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}.form-group{margin-bottom:14px}.form-group:last-child{margin-bottom:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:12px;align-items:start}.form-row:last-child{margin-bottom:0}.form-row .form-group{margin-bottom:0;min-width:0}.form-row .form-group input,.form-row .form-group select,.form-row .form-group .ss-trigger{padding:10px 36px 10px 12px;font-size:16px;min-height:42px}.form-row .form-group label{font-size:12px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ext-input{margin-top:8px;width:100%;padding:9px 12px;font-size:14px;font-family:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;outline:none;box-sizing:border-box;transition:border-color .2s}.ext-input:focus{border-color:var(--color-accent)}.ext-input::placeholder{color:var(--color-text-tertiary)}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px;overflow-wrap:break-word;word-break:break-word;white-space:normal}.form-group input:not([type=checkbox]),.form-group select{width:100%;padding:11px 14px;font-size:16px;font-family:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input:not([type=checkbox]):focus,.form-group select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #0066ff1a}.form-group input::placeholder{color:var(--color-text-tertiary)}.form-group input:disabled,.form-group input.disabled-input,.form-group select:disabled{opacity:.6;cursor:not-allowed;background:var(--color-bg-tertiary, #f0f0f0)}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}.message{padding:14px 16px;border-radius:12px;margin-bottom:16px;font-size:14px}.error-message{background:#f443361a;color:var(--color-error);border:1px solid rgba(244,67,54,.2)}.success-message{background:#4caf501a;color:var(--color-success);border:1px solid rgba(76,175,80,.2);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:20px 16px}.success-icon{width:44px;height:44px;font-size:22px;background:var(--color-success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center}.success-text{font-size:15px;font-weight:600}.result-code{font-size:13px;font-weight:500;color:var(--color-text-secondary);padding:8px 14px;background:var(--color-card);border-radius:8px;font-family:monospace}.print-badge-btn{padding:10px 18px;font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:var(--color-accent);border:none;border-radius:10px;cursor:pointer;transition:all .2s}.print-badge-btn:hover{background:var(--color-accent-hover)}.print-badge-btn:active{transform:scale(.97)}.print-badge-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.submit-buttons{display:flex;flex-direction:column;gap:8px;margin-top:8px}.submit-btn{width:100%;padding:14px 16px;font-size:15px;font-weight:600;font-family:inherit;color:#fff;background:var(--color-accent);border:none;border-radius:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.submit-btn.register-print-btn{background:#34c759;font-size:15px;padding:14px 16px}.submit-btn.register-print-btn:hover{background:#2db84e}.submit-btn.remote-zone-btn{background:var(--color-accent);font-size:13px;padding:12px 16px}.submit-btn.prereg-btn{background:var(--color-text-secondary);font-size:13px;padding:12px 16px}.submit-btn.print-nosave-btn{background:#ff9500;font-size:13px;padding:12px 16px}.submit-btn.print-nosave-btn:hover{background:#e08600}.submit-btn.prereg-btn:hover{background:var(--color-text-tertiary)}.info-message{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#007aff14;color:var(--color-accent);border-radius:10px;font-size:14px}.submit-btn:hover{background:var(--color-accent-hover)}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.submit-zone{font-size:12px;font-weight:500;opacity:.75;background:#fff3;padding:2px 8px;border-radius:6px;margin-left:4px}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.spinner-large{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.loading-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 20px;color:var(--color-text-secondary);font-size:14px}.error-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 20px;color:var(--color-error);font-size:14px;text-align:center}.retry-btn{padding:10px 20px;font-size:14px;font-weight:500;color:var(--color-accent);background:transparent;border:1px solid var(--color-accent);border-radius:8px;cursor:pointer;transition:all .2s}.retry-btn:hover{background:var(--color-accent);color:#fff}.req{color:var(--color-error)}.form-section-divider{margin:20px 0 12px;padding-top:16px;border-top:1px solid var(--color-border)}.form-section-divider h3{font-size:14px;font-weight:600;color:var(--color-text);margin:0}.form-section-divider:first-child{margin-top:0;padding-top:0;border-top:none}.form-section-anket{padding-top:16px}.anket-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;margin:0;background:none;border:none;cursor:pointer;font-family:inherit;color:var(--color-text)}.anket-toggle h3{margin:0;border-bottom:none;padding-bottom:0}.anket-arrow{transition:transform .2s}.anket-arrow.open{transform:rotate(180deg)}.form-section-anket .form-group{margin-bottom:14px}.form-section-anket .form-group:last-child{margin-bottom:0}.form-group-checks>label:first-child{margin-bottom:10px}.checks-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}@media(max-width:500px){.checks-list{grid-template-columns:1fr}}.check-item{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--color-text);cursor:pointer;padding:8px 10px;border-radius:8px;transition:background .15s;user-select:none;-webkit-user-select:none}.check-item:hover{background:var(--color-bg)}.check-item:active{background:var(--color-border)}.check-item input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;margin:0;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer;-moz-appearance:auto;appearance:auto;-webkit-appearance:checkbox;pointer-events:auto}.check-item span{line-height:1.4;pointer-events:none}.other-input{margin-top:8px}@media(min-width:600px){.visitor-form{max-width:620px;margin:0 auto;padding:24px;padding-bottom:max(32px,var(--safe-area-bottom))}}.advanced-search{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.advanced-search-header{display:flex;align-items:center;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:100;gap:12px}.advanced-search-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:none;border-radius:10px;color:var(--color-accent);cursor:pointer;flex-shrink:0;transition:background .2s}.advanced-search-back:hover{background:var(--color-card)}.advanced-search-title{flex:1;font-size:17px;font-weight:700;color:var(--color-text);margin:0}.profile-results-hint{font-size:13px;font-weight:500;color:var(--color-accent);cursor:pointer;padding:6px 10px;border-radius:8px;transition:background .2s;white-space:nowrap}.profile-results-hint:hover{background:var(--color-card)}.advanced-search-clear-all{background:none;border:none;color:var(--color-accent);font-size:14px;font-weight:600;cursor:pointer;padding:8px 12px;border-radius:8px;transition:background .2s;font-family:inherit}.advanced-search-clear-all:hover{background:var(--color-card)}.advanced-search-body{flex:1;padding:16px;padding-bottom:max(16px,var(--safe-area-bottom));display:flex;flex-direction:column;gap:16px;max-width:600px;width:100%;margin:0 auto}.search-templates{display:flex;flex-direction:column;gap:8px}.templates-label{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.templates-list{display:flex;flex-wrap:wrap;gap:8px}.template-chip{padding:7px 14px;border-radius:20px;border:1.5px solid var(--color-border);background:var(--color-card);color:var(--color-text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap}.template-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.template-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.search-fields-list{display:flex;flex-direction:column;gap:12px}.search-field-row{display:flex;align-items:center;gap:12px;background:var(--color-card);border-radius:16px;padding:4px 12px 4px 16px;border:1.5px solid var(--color-border);transition:border-color .2s,box-shadow .2s;animation:fieldSlideIn .3s ease-out both}@keyframes fieldSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.search-field-row:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px #007aff1a}.field-icon{color:var(--color-text-tertiary);display:flex;align-items:center;flex-shrink:0;transition:color .2s}.search-field-row:focus-within .field-icon{color:var(--color-accent)}.field-input-group{flex:1;display:flex;flex-direction:column;padding:8px 0;min-width:0}.field-label{font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.field-input{border:none;background:transparent;color:var(--color-text);font-size:16px;font-family:inherit;padding:0;outline:none;width:100%;line-height:1.4}.field-input::placeholder{color:var(--color-text-tertiary);opacity:.6}.field-remove-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:var(--color-bg-secondary);border-radius:8px;color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:all .2s}.field-remove-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.add-field-wrapper{position:relative}.add-field-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border:2px dashed var(--color-border);border-radius:16px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.add-field-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#007aff0a}.field-picker-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--color-card);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 8px 32px #0000001f;z-index:50;overflow:hidden;animation:dropdownFadeIn .2s ease-out;max-height:300px;overflow-y:auto}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.field-picker-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:none;background:transparent;color:var(--color-text);font-size:15px;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.field-picker-item:not(:last-child){border-bottom:1px solid var(--color-border)}.field-picker-item:hover{background:var(--color-bg-secondary)}.field-picker-icon{color:var(--color-text-tertiary);display:flex;align-items:center}.advanced-search-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;border:none;border-radius:16px;background:var(--color-accent);color:#fff;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s;min-height:56px}.advanced-search-btn:hover:not(:disabled){background:var(--color-accent-hover)}.advanced-search-btn:active:not(:disabled){transform:scale(.98)}.advanced-search-btn:disabled{opacity:.5;cursor:not-allowed}.advanced-search-btn .spinner{width:22px;height:22px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.advanced-search-error{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;background:var(--color-error-bg);color:var(--color-error);font-size:14px;animation:fadeIn .3s ease}.advanced-search-results{display:flex;flex-direction:column;gap:12px;animation:fadeIn .3s ease}.results-count{font-size:13px;color:var(--color-text-tertiary);padding:0 4px}.results-count strong{color:var(--color-text)}.results-cards{display:flex;flex-direction:column;background:var(--color-card);border-radius:16px;overflow:hidden}.result-card-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:transparent;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;font-family:inherit;text-align:left;transition:background .15s}.result-card-item:last-child{border-bottom:none}.result-card-item:hover{background:var(--color-bg-secondary)}.result-card-avatar{width:44px;height:44px;border-radius:12px;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;flex-shrink:0}.result-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.result-card-name{font-size:15px;font-weight:600;color:var(--color-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-card-company{font-size:13px;color:var(--color-text-secondary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.result-card-meta-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.result-card-code{font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:4px}.result-card-visited{width:24px;height:24px;border-radius:50%;background:var(--color-success);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.result-card-arrow{color:var(--color-text-tertiary);flex-shrink:0}.result-card-item.result-card-debt{background:#ff3b300f;border-left:3px solid #FF3B30}.result-card-item.result-card-debt:hover{background:#ff3b301a}.result-card-avatar.debt{background:#ff3b30}.result-card-debt-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#ff3b30;background:#ff3b301f;padding:2px 8px;border-radius:6px;width:fit-content;margin-top:2px}.result-card-status{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px;line-height:1.5;white-space:nowrap}.result-card-status.profile-status{margin-top:4px;font-size:12px;padding:2px 10px;border-radius:6px}@media(max-width:400px){.advanced-search-body{padding:12px;padding-bottom:max(12px,var(--safe-area-bottom))}.search-field-row{padding:4px 8px 4px 12px;gap:8px}.field-input{font-size:16px}.template-chip{padding:6px 12px;font-size:12px}}.barcode-show-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px 20px;margin-top:10px;border:none;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff;font-size:15px;font-weight:600;font-family:inherit;border-radius:14px;cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden;box-shadow:0 4px 15px #0f34604d}.barcode-show-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 50%,transparent 100%);transform:translate(-100%);transition:transform .6s ease}.barcode-show-btn:hover:before,.barcode-show-btn:focus:before{transform:translate(100%)}.barcode-show-btn:active{transform:scale(.97);box-shadow:0 2px 8px #0f346066}.barcode-show-btn svg{opacity:.9}.barcode-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:barcodeFadeIn .3s cubic-bezier(.16,1,.3,1)}@keyframes barcodeFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.barcode-modal{display:flex;flex-direction:column;align-items:center;width:100%;max-width:480px;padding:20px}.barcode-modal-header{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:12px;padding:0 4px}.barcode-modal-title{font-size:18px;font-weight:700;color:#222;letter-spacing:-.3px}.barcode-modal-close{background:#f5f5f5;border:none;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#555;transition:all .2s}.barcode-modal-close:active{background:#e0e0e0;transform:scale(.92)}.barcode-modal-body{display:flex;flex-direction:column;align-items:center;background:#fff;padding:32px 20px 24px;border-radius:20px;width:100%;border:2px solid #f0f0f0;box-shadow:0 8px 40px #0000000f;position:relative}.barcode-modal-body:before{content:"";position:absolute;top:-2px;left:50%;transform:translate(-50%);width:60px;height:4px;background:linear-gradient(90deg,#1a1a2e,#0f3460);border-radius:0 0 4px 4px}.barcode-modal-body svg{max-width:100%;height:auto;filter:contrast(1.1)}.barcode-modal-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#1a1a2e,#0f3460);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;margin-bottom:12px;box-shadow:0 4px 12px #0f346040}.barcode-modal-name{margin:14px 0 2px;font-size:19px;font-weight:700;color:#111;text-align:center;letter-spacing:-.3px}.barcode-modal-company{margin:0 0 4px;font-size:14px;color:#777;text-align:center}.barcode-modal-code-label{margin-top:8px;padding:4px 14px;background:#f5f7fa;border-radius:20px;font-size:12px;font-weight:600;color:#999;letter-spacing:1px;text-transform:uppercase}.barcode-modal-hint{margin-top:28px;font-size:13px;color:#bbb;text-align:center;display:flex;align-items:center;gap:6px}.barcode-modal-hint:before{content:"";display:inline-block;width:6px;height:6px;background:#ddd;border-radius:50%;animation:hintPulse 2s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:.4}50%{opacity:1}}.samoreg-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column}.samoreg-page .settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.samoreg-expo-id{font-size:12px;color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:3px 8px;border-radius:6px}.samoreg-header-pulse{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:samoreg-header-pulse-anim 1.5s ease-in-out infinite;box-shadow:0 0 6px #22c55e80}@keyframes samoreg-header-pulse-anim{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.samoreg-printer-status{display:flex;align-items:center;gap:8px;padding:10px 16px;margin:12px 16px 0;border-radius:10px;font-size:14px;font-weight:500}.samoreg-printer-status.connected{background:#22c55e1f;color:#22c55e;border:1px solid rgba(34,197,94,.25)}.samoreg-printer-status.disconnected{background:#ef44441f;color:#ef4444;border:1px solid rgba(239,68,68,.25)}.samoreg-refresh-btn{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center}.samoreg-refresh-btn:active{background:#ffffff14}.samoreg-section{margin:12px 16px;background:var(--color-bg-secondary);border-radius:12px;overflow:hidden;border:1px solid var(--color-border)}.samoreg-section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;-webkit-user-select:none;user-select:none}.samoreg-section-header h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text)}.samoreg-zones-summary{display:flex;flex-wrap:wrap;gap:4px;padding:0 14px 12px}.samoreg-zone-chip{font-size:11px;background:#6366f126;color:var(--color-accent);padding:2px 7px;border-radius:6px;font-weight:600}.samoreg-zone-selector{padding:0 14px 14px}.samoreg-zone-actions{display:flex;gap:8px;margin-bottom:10px}.samoreg-zone-action{background:var(--color-bg-tertiary);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);padding:5px 12px;border-radius:8px;font-size:12px;cursor:pointer;font-weight:500}.samoreg-zone-action:active{background:var(--color-border-strong)}.samoreg-zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:5px}.samoreg-zone-btn{padding:7px 0;text-align:center;font-size:13px;font-weight:600;border-radius:8px;border:1.5px solid var(--color-border-strong);background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.samoreg-zone-btn.active{background:#6366f133;color:var(--color-accent);border-color:var(--color-accent)}.samoreg-zone-btn:active{transform:scale(.94)}.samoreg-zone-btn:disabled{opacity:.5;pointer-events:none}.samoreg-controls{padding:0 16px;margin-top:4px}.samoreg-start-btn,.samoreg-stop-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease}.samoreg-start-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 4px 14px #22c55e4d}.samoreg-start-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.samoreg-start-btn:active:not(:disabled){transform:scale(.97)}.samoreg-stop-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 14px #ef44444d}.samoreg-stop-btn:active{transform:scale(.97)}.samoreg-stats{display:flex;gap:6px;padding:0 16px;margin-top:12px}.samoreg-stat{flex:1;display:flex;flex-direction:column;align-items:center;background:var(--color-bg-secondary);border-radius:10px;padding:10px 4px;border:1px solid var(--color-border)}.samoreg-stat-value{font-size:18px;font-weight:700;color:var(--color-text)}.samoreg-stat-value.success{color:#22c55e}.samoreg-stat-value.error{color:#ef4444}.samoreg-stat-label{font-size:10px;color:var(--color-text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.samoreg-running-indicator{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:12px 16px 0;background:#6366f114;border-radius:10px;border:1px solid rgba(99,102,241,.2);font-size:13px;color:var(--color-accent);font-weight:500}.samoreg-pulse{width:10px;height:10px;border-radius:50%;background:var(--color-accent);animation:samoreg-pulse-anim 1.5s ease-in-out infinite;flex-shrink:0}@keyframes samoreg-pulse-anim{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.samoreg-log{max-height:250px;overflow-y:auto;padding:0 14px 14px;-webkit-overflow-scrolling:touch}.samoreg-log-entry{display:flex;gap:8px;padding:5px 0;font-size:12px;line-height:1.4;border-bottom:1px solid var(--color-border)}.samoreg-log-entry:last-child{border-bottom:none}.samoreg-log-time{color:var(--color-text-secondary);flex-shrink:0;font-variant-numeric:tabular-nums}.samoreg-log-msg{word-break:break-word}.samoreg-log-entry.info .samoreg-log-msg{color:var(--color-text-secondary)}.samoreg-log-entry.print .samoreg-log-msg{color:var(--color-accent)}.samoreg-log-entry.success .samoreg-log-msg{color:#22c55e}.samoreg-log-entry.error .samoreg-log-msg{color:#ef4444}.samoreg-log-entry.warning .samoreg-log-msg{color:#f59e0b}.samoreg-hint{text-align:center;color:var(--color-text-secondary);font-size:12px;padding:16px;line-height:1.5;margin:0}.samoreg-toast-container{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));pointer-events:none}.samoreg-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;width:100%;max-width:400px;padding:14px 16px;border-radius:16px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px #00000040,0 2px 8px #0000001a;animation:samoreg-toast-in .35s cubic-bezier(.34,1.56,.64,1)}@keyframes samoreg-toast-in{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.samoreg-toast-success{background:#22c55eeb;border:1px solid rgba(255,255,255,.15);color:#fff}.samoreg-toast-error{background:#ef4444eb;border:1px solid rgba(255,255,255,.15);color:#fff}.samoreg-toast-icon{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff3}.samoreg-toast-body{flex:1;min-width:0}.samoreg-toast-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.85;margin-bottom:2px}.samoreg-toast-name{font-size:16px;font-weight:700;line-height:1.2;word-break:break-word}.samoreg-toast-company{font-size:13px;opacity:.85;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.samoreg-toast-code{font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace;opacity:.7;margin-top:3px}.samoreg-toast-close{flex-shrink:0;background:#ffffff26;border:none;border-radius:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .15s}.samoreg-toast-close:active{background:#ffffff4d}.dashboard{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,var(--safe-area-top));padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:10px}.header-right{display:flex;align-items:center;gap:8px}.header-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:transparent}.header-title{font-size:17px;font-weight:700;color:var(--color-text)}.logout-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:none;border-radius:10px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.logout-btn:hover{background:var(--color-card);color:var(--color-error)}.settings-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:10px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.settings-btn:hover{background:var(--color-card);color:var(--color-text)}.autoprint-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-accent);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all .2s}.autoprint-btn:hover{background:var(--color-accent-hover)}.autoprint-btn:active{background:var(--color-accent-hover);transform:scale(.95)}.samoreg-active-btn{background:#22c55e!important;animation:samoreg-btn-pulse 2s ease-in-out infinite}.samoreg-active-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:#fff;border-radius:50%;animation:samoreg-dot-blink 1.5s ease-in-out infinite}@keyframes samoreg-btn-pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 6px #22c55e00}}@keyframes samoreg-dot-blink{0%,to{opacity:1}50%{opacity:.3}}.templates-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-accent);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all .2s}.templates-btn:hover{background:var(--color-accent-hover)}.templates-btn:active{background:var(--color-accent-hover);transform:scale(.95)}.create-visitor-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-success);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all .2s}.create-visitor-btn:hover{opacity:.9}.create-visitor-btn:active{opacity:.8;transform:scale(.95)}.camera-toggle-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:none;border-radius:10px;color:var(--color-text);cursor:pointer;transition:all .2s}.camera-toggle-btn:hover{background:var(--color-border-strong)}.camera-toggle-btn.active{background:var(--color-success);color:#fff}.camera-toggle-btn.active:hover{background:#43a047}.expo-selector{flex:1;padding:24px 16px;padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));padding-bottom:max(24px,var(--safe-area-bottom))}.expo-selector h2{font-size:24px;font-weight:700;color:var(--color-text);margin:0 0 16px}.expo-search-wrap{position:relative;margin-bottom:12px}.expo-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.expo-search{width:100%;height:44px;padding:0 40px;border:none;border-radius:12px;font-size:15px;color:var(--color-text);background:var(--color-card);outline:none;box-sizing:border-box;font-family:inherit}.expo-search::placeholder{color:var(--color-text-tertiary)}.expo-search:focus{box-shadow:0 0 0 2px rgba(var(--color-accent-rgb),.3)}.expo-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;background:var(--color-bg-tertiary);border-radius:50%;cursor:pointer;color:var(--color-text-secondary);padding:0}.expo-search-clear:hover{background:var(--color-border-strong)}.expo-empty{text-align:center;padding:24px;color:var(--color-text-tertiary);font-size:15px}.expo-list{display:flex;flex-direction:column;gap:8px}.expo-item{display:flex;align-items:center;width:100%;padding:16px;background:var(--color-card);border:none;border-radius:14px;cursor:pointer;text-align:left;font-family:inherit;transition:background .15s}.expo-item:hover{background:var(--color-bg-tertiary)}.expo-item:active{background:var(--color-border-strong)}.expo-item-content{flex:1;min-width:0}.expo-name{display:block;font-size:15px;font-weight:600;color:var(--color-text);margin-bottom:4px}.expo-desc{display:block;font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expo-item svg{flex-shrink:0;color:var(--color-text-tertiary);margin-left:12px}.main{flex:1;padding:16px;padding-left:max(16px,var(--safe-area-left));padding-right:max(16px,var(--safe-area-right));padding-bottom:max(32px,var(--safe-area-bottom));display:flex;flex-direction:column;gap:16px}.current-expo{display:flex;align-items:center;width:100%;padding:14px 16px;background:var(--color-card);border:none;border-radius:14px;cursor:pointer;font-family:inherit;transition:background .15s}.current-expo:hover{background:var(--color-bg-tertiary)}.current-expo-info{flex:1;min-width:0;text-align:left}.current-expo-label{display:block;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.current-expo-name{display:block;font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.current-expo svg{color:var(--color-text-tertiary);flex-shrink:0}.scanner-section{display:flex;flex-direction:column;gap:12px}.scanner-container{position:relative;width:100%;max-width:480px;margin:0 auto;aspect-ratio:4/3;background:#000;border-radius:20px;overflow:hidden}.scanner-view{width:100%;height:100%}.scanner-view video{width:100%;height:100%;object-fit:cover}.scanner-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-text-secondary);background:var(--color-card)}.scanner-placeholder span{font-size:14px;font-weight:500}.hid-scanner-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 20px;background:var(--color-card);border-radius:16px;border:2px dashed var(--color-border);position:relative;overflow:hidden}.hid-scanner-icon{color:var(--color-accent);opacity:.7;animation:hidPulseIcon 2s ease-in-out infinite}.hid-scanner-title{font-size:16px;font-weight:600;color:var(--color-text)}.hid-scanner-hint{font-size:13px;color:var(--color-text-secondary);text-align:center}.hid-scanner-pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;border:2px solid var(--color-accent);opacity:0;animation:hidPulse 2s ease-in-out infinite;pointer-events:none}@keyframes hidPulse{0%,to{opacity:0;transform:scale(1)}50%{opacity:.3;transform:scale(1.02)}}@keyframes hidPulseIcon{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.hid-buffer-display{font-family:SF Mono,Fira Code,Courier New,monospace;font-size:14px;color:var(--color-accent);background:var(--color-accent-light);border:1px solid var(--color-accent);border-radius:8px;padding:6px 14px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all;animation:hidBufferFade .15s ease-out}@keyframes hidBufferFade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.scanner-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-error);background:var(--color-error-bg);padding:20px;text-align:center}.scanner-error span{font-size:14px;font-weight:500}.retry-btn{padding:10px 24px;background:var(--color-error);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;margin-top:8px}.scanner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center}.scan-frame{width:280px;height:160px;border:3px solid #fff;border-radius:12px;box-shadow:0 0 0 9999px #00000080;animation:pulse 2s ease-in-out infinite}.torch-btn-overlay{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-top:16px;background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(255,255,255,.4);border-radius:50%;color:#fff;cursor:pointer;transition:all .2s}.torch-btn-overlay:active{transform:scale(.95)}.torch-btn-overlay.active{background:#ffc107;border-color:#ffc107;color:#000}@keyframes pulse{0%,to{border-color:#fffc}50%{border-color:#fff6}}.toggle-scanner-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;background:var(--color-card);color:var(--color-text);border:none;border-radius:14px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.toggle-scanner-btn:hover{background:var(--color-bg-tertiary)}.toggle-scanner-btn.active{background:var(--color-error);color:#fff}.toggle-scanner-btn.active:hover{background:#c62828}.manual-input-section{display:flex;flex-direction:column;gap:12px}.search-field-selector{display:flex;flex-wrap:wrap;gap:8px}.field-btn{padding:8px 14px;background:var(--color-bg-tertiary);border:none;border-radius:20px;font-size:13px;font-weight:500;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.field-btn:hover{background:var(--color-border-strong)}.field-btn.active{background:var(--color-icon-bg);color:var(--color-icon-text)}.field-btn.advanced-search-chip{display:inline-flex;align-items:center;gap:5px;background:var(--color-accent);color:#fff;border:none;font-weight:600}.field-btn.advanced-search-chip:hover{background:var(--color-accent-hover)}.divider{display:flex;align-items:center;gap:16px;color:var(--color-text-tertiary);font-size:13px;font-weight:500}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--color-border-strong)}.search-input-wrapper{position:relative}.search-input{width:100%;padding:16px 52px 16px 16px;border:2px solid var(--color-border-strong);border-radius:14px;font-size:16px;font-family:inherit;color:var(--color-text);background:var(--color-input-bg);transition:border-color .2s,background-color .3s;outline:none}.search-input:focus{border-color:var(--color-accent)}.search-input::placeholder{color:var(--color-text-tertiary)}.clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:9px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.clear-btn:hover{background:var(--color-border-strong);color:var(--color-text)}.search-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;background:var(--color-icon-bg);color:var(--color-icon-text);border:none;border-radius:14px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;min-height:52px}.search-btn:hover:not(:disabled){opacity:.85}.search-btn:active:not(:disabled){transform:scale(.98)}.search-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.error-block{display:flex;align-items:center;gap:10px;padding:16px;background:var(--color-error-bg);border-radius:14px;color:var(--color-error);font-size:14px;font-weight:500}.error-block svg{flex-shrink:0}.result-card{background:var(--color-card);border-radius:20px;overflow:hidden}.result-header{display:flex;align-items:center;gap:14px;padding:20px;background:var(--color-bg)}.result-avatar{width:52px;height:52px;border-radius:14px;background:var(--color-icon-bg);color:var(--color-icon-text);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.result-name-block{flex:1;min-width:0}.result-name{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 2px;line-height:1.3}.result-company{font-size:14px;color:var(--color-text-secondary);display:block}.visited-badge{width:36px;height:36px;border-radius:50%;background:var(--color-success);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.result-details{padding:16px 20px}.loading-directories{text-align:center;padding:12px;color:var(--color-text-secondary);font-size:13px;background:var(--color-card);border-radius:8px;margin-bottom:12px}.detail-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.detail-row-stacked{flex-direction:column;gap:4px}.detail-row:last-child{border-bottom:none}.detail-label{font-size:13px;color:var(--color-text-tertiary);font-weight:500;min-width:0;max-width:50%;flex-shrink:1;word-break:break-word;line-height:1.4}.detail-row:has(.detail-label){container-type:inline-size}.detail-value{font-size:14px;color:var(--color-text);font-weight:500;text-align:right;min-width:0;max-width:65%;word-break:break-word;flex-shrink:1}.detail-row-stacked .detail-label{max-width:100%}.detail-row-stacked .detail-value{text-align:left;max-width:100%;font-size:13px;line-height:1.45}.detail-value.mono{font-family:SF Mono,Consolas,monospace;font-size:13px}.result-stats{display:flex;border-top:1px solid var(--color-border)}.stat-item{flex:1;padding:16px;text-align:center;border-right:1px solid var(--color-border)}.stat-item:last-child{border-right:none}.stat-value{display:block;font-size:24px;font-weight:700;color:var(--color-text);margin-bottom:2px}.stat-label{font-size:12px;color:var(--color-text-tertiary);font-weight:500}.print-section{padding:16px 20px;border-top:1px solid var(--color-border)}.action-buttons-row{display:flex;gap:8px;flex-wrap:wrap}.print-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:var(--color-accent);border:none;border-radius:10px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;min-width:0;white-space:nowrap}.edit-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:var(--color-text-secondary);border:none;border-radius:10px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;min-width:0;white-space:nowrap}.edit-btn:hover{opacity:.85}.edit-btn:active{transform:scale(.98)}.preview-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:var(--color-card);border:2px solid var(--color-accent);border-radius:10px;color:var(--color-accent);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;min-width:0;white-space:nowrap}.preview-btn:hover{background:var(--color-accent);color:#fff}.preview-btn:active{transform:scale(.98)}.preview-btn:disabled{opacity:.6;cursor:not-allowed}.bt-print-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:#34c759;border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;min-width:0}.bt-print-btn:hover{background:#28a745}.bt-print-btn:active{transform:scale(.98)}.bt-print-btn:disabled{opacity:.7;cursor:not-allowed}.bt-print-btn.printing{background:#1e7e34}.bt-print-btn .spinner{animation:spin 1s linear infinite}.badge-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:16px}.badge-preview-modal{background:var(--color-card);border-radius:16px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .25s ease}.badge-preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.badge-preview-header h3{margin:0;font-size:17px;font-weight:600;color:var(--color-text)}.badge-preview-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.badge-preview-close:hover{background:var(--color-border);color:var(--color-text)}.badge-preview-body{padding:20px;overflow:auto;display:flex;flex-direction:column;align-items:center;min-height:200px}.badge-preview-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--color-text-secondary);font-size:14px}.badge-preview-loading .spinner{animation:spin 1s linear infinite;color:var(--color-accent)}.badge-preview-error{padding:16px 24px;background:var(--color-error-bg);color:var(--color-error);border-radius:10px;font-size:14px;text-align:center}.badge-preview-error p{margin:0 0 12px}.badge-fallback-card{margin-top:16px;padding:24px 32px;background:#fff;border:2px dashed var(--color-border);border-radius:12px;text-align:center;min-width:280px;color:#333}.badge-fallback-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-secondary);margin-bottom:12px}.badge-fallback-name{font-size:20px;font-weight:700;color:#000;margin-bottom:4px}.badge-fallback-company{font-size:15px;font-weight:500;color:#444;margin-bottom:2px}.badge-fallback-post{font-size:13px;color:#666;margin-bottom:8px}.badge-fallback-code{font-size:12px;font-family:monospace;color:#999;margin-top:8px}.badge-preview-content{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.badge-preview-scale{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--color-bg);border-radius:8px}.badge-preview-scale .scale-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text);font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.badge-preview-scale .scale-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.badge-preview-scale .scale-label{min-width:48px;text-align:center;font-size:13px;font-weight:600;color:var(--color-text-secondary)}.badge-preview-render{overflow:auto;max-width:100%;max-height:calc(90vh - 180px);border:1px solid var(--color-border);border-radius:8px;background:#fff;display:flex;align-items:flex-start;justify-content:center;padding:8px}.print-btn:hover{background:var(--color-accent-hover)}.print-btn:active{transform:scale(.98)}.print-btn:disabled{opacity:.7;cursor:not-allowed}.print-btn.printing{background:var(--color-text-secondary)}.print-btn .spinner{animation:spin 1s linear infinite}.print-message{margin-top:10px;padding:10px 14px;border-radius:8px;font-size:13px;text-align:center;animation:fadeIn .3s ease}.print-message.success{background:#4caf5026;color:var(--color-success)}.print-message.error{background:var(--color-error-bg);color:var(--color-error)}.reprint-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reprint-dialog{background:var(--color-card);border-radius:20px;padding:28px 24px;max-width:340px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d;animation:reprint-appear .25s ease-out}@keyframes reprint-appear{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.reprint-icon{width:56px;height:56px;border-radius:50%;background:#fff3e0;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.reprint-icon svg{stroke:#f57c00}.reprint-title{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 8px}.reprint-text{font-size:14px;color:var(--color-text-secondary);margin:0 0 24px;line-height:1.5}.reprint-buttons{display:flex;gap:12px}.reprint-cancel{flex:1;padding:14px;border:none;border-radius:12px;background:var(--color-bg-secondary);color:var(--color-text);font-size:15px;font-weight:600;cursor:pointer}.reprint-cancel:active{opacity:.7}.reprint-confirm{flex:1;padding:14px;border:none;border-radius:12px;background:#f57c00;color:#fff;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.reprint-confirm:active{background:#e65100}.results-list{background:var(--color-card);border-radius:20px;overflow:hidden}.results-header{padding:14px 20px;font-size:13px;font-weight:600;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border)}.result-list-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 20px;background:var(--color-bg);border:none;border-bottom:1px solid var(--color-border);cursor:pointer;font-family:inherit;text-align:left;transition:background .15s}.result-list-item:last-child{border-bottom:none}.result-list-item:hover{background:var(--color-card)}.result-list-avatar{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}.result-list-info{flex:1;min-width:0}.result-list-name{display:block;font-size:15px;font-weight:600;color:var(--color-text)}.result-list-meta{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap}.result-list-status{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px;line-height:1.5;white-space:nowrap}.result-list-company{display:block;font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-list-code{display:inline-block;font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:4px;margin-top:3px}.visited-badge-small{width:24px;height:24px;border-radius:50%;background:var(--color-success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.result-list-item svg{color:var(--color-text-tertiary);flex-shrink:0}.result-list-item.result-list-debt{background:#ff3b300f;border-left:3px solid #FF3B30}.result-list-item.result-list-debt:hover{background:#ff3b301a}.result-list-avatar.debt{background:#ff3b30!important;color:#fff!important}.result-list-debt-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#ff3b30;background:#ff3b301f;padding:2px 8px;border-radius:6px;width:fit-content;margin-top:2px}.back-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:none;border:none;border-bottom:1px solid var(--color-border);font-size:14px;font-weight:500;font-family:inherit;color:var(--color-accent);cursor:pointer;width:100%;text-align:left}.back-btn:hover{background:var(--color-card)}#scanner-view{position:relative}#scanner-view video{border-radius:20px!important}#scanner-view #qr-shaded-region{border:none!important}#scanner-view>div{border:none!important}#scanner-view img[alt="Info icon"],#scanner-view a,#scanner-view>div:last-child{display:none!important}@media(max-width:400px){.header{padding:10px 12px;padding-top:max(10px,var(--safe-area-top));padding-left:max(12px,var(--safe-area-left));padding-right:max(12px,var(--safe-area-right))}.main{padding:12px;padding-left:max(12px,var(--safe-area-left));padding-right:max(12px,var(--safe-area-right));padding-bottom:max(24px,var(--safe-area-bottom));gap:12px}.scanner-container{border-radius:16px}.scan-frame{width:240px;height:140px}.search-input{font-size:16px;padding:14px 48px 14px 14px}.search-btn{padding:14px;min-height:50px}.result-header{padding:16px}.result-name{font-size:16px}}.company-dialog{max-width:380px}.company-method-buttons{display:flex;flex-direction:column;gap:8px;margin-top:8px}.company-method-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;border:none;border-radius:12px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;text-align:left}.company-method-btn:active{opacity:.7}.company-method-btn.zone{background:#34c759}.company-method-btn.register{background:#007aff}.company-method-btn.bt{background:var(--color-accent)}.company-reprint-list{max-height:200px;overflow-y:auto;margin:8px 0;text-align:left}.company-reprint-item{padding:6px 8px;font-size:13px;color:var(--color-text);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:6px}.company-reprint-item:last-child{border-bottom:none}.visited-dot{color:#34c759;font-weight:700;font-size:14px}.company-progress-bar{width:100%;height:8px;border-radius:4px;background:var(--color-bg-secondary);overflow:hidden;margin-top:12px}.company-progress-fill{height:100%;border-radius:4px;background:#af52de;transition:width .3s ease}.company-print-btn{font-size:14px!important}@media(min-width:768px){.desktop-layout{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:flex-start}.desktop-left-panel{position:sticky;top:80px;display:flex;flex-direction:column;gap:12px;max-height:calc(100dvh - 90px);overflow-y:auto;padding-bottom:24px;scrollbar-width:thin}.desktop-right-panel{display:flex;flex-direction:column;gap:16px;min-height:300px;min-width:0}.desktop-right-panel:empty:before{content:"Для отображения списка пользователей выполните поиск";display:flex;align-items:center;justify-content:center;min-height:400px;font-size:15px;color:var(--color-text-tertiary);text-align:center;padding:40px}.main{padding:20px 24px;padding-bottom:max(32px,var(--safe-area-bottom))}.scanner-container{max-width:100%;aspect-ratio:4/3}.search-field-selector{gap:6px}.field-btn{padding:6px 12px;font-size:12px}.search-input{font-size:15px;padding:14px 48px 14px 14px}.search-btn{padding:12px;min-height:46px;font-size:14px}.results-list{border-radius:16px}.result-list-item{padding:12px 20px}.result-card{border-radius:16px}.result-header{padding:20px 24px}.result-details,.print-section{padding:16px 24px}.action-buttons-row{flex-wrap:nowrap}.expo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.hid-scanner-placeholder{padding:24px 16px}}@media(min-width:1024px){.desktop-layout{grid-template-columns:380px 1fr;gap:28px}.main{padding:24px 32px;max-width:1400px;margin:0 auto;width:100%}.header{padding:14px 32px;padding-top:max(14px,var(--safe-area-top))}.header-title{font-size:18px}.expo-selector{max-width:800px;margin:0 auto;padding:32px}.expo-selector h2{font-size:28px}.result-details{padding:20px 28px}.result-stats{padding:0 8px}.stat-item{padding:18px}.stat-value{font-size:28px}.bt-print-btn{padding:16px 24px;font-size:16px}.print-btn,.preview-btn,.edit-btn{padding:12px 16px;font-size:14px}.result-list-avatar{width:44px;height:44px;font-size:17px}.result-list-name{font-size:16px}.badge-preview-modal{max-width:700px}}@media(min-width:1440px){.desktop-layout{grid-template-columns:420px 1fr;gap:36px}.main{max-width:1600px;padding:28px 48px}.header{padding:16px 48px}.result-header{padding:24px 32px}.result-details{padding:24px 32px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.result-details .form-section-divider,.result-details .loading-directories{grid-column:1 / -1}.print-section{padding:20px 32px}.result-name{font-size:22px}.result-company{font-size:15px}}@media(max-width:767px){.desktop-layout,.desktop-left-panel,.desktop-right-panel{display:contents}}.desktop-dashboard{display:flex;flex-direction:column;height:calc(100vh - var(--titlebar-h));height:calc(100dvh - var(--titlebar-h));overflow:clip;background:var(--color-bg);color:var(--color-text);font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;isolation:isolate}.dd-header{display:flex;align-items:center;justify-content:space-between;margin:5px 10px 0;border-radius:7px;gap:12px;padding:6px 12px;background:var(--color-bg-secondary);box-sizing:border-box}.dd-header-left{display:flex;align-items:center;gap:0;flex:1 1 auto;min-width:0;overflow:hidden}.dd-logo{display:flex;align-items:center;padding:6px 10px;flex-shrink:0}.dd-nav{display:flex;align-items:center;gap:4px;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch;padding:6px 0;margin:0}.dd-nav::-webkit-scrollbar{height:6px}.dd-nav::-webkit-scrollbar-thumb{background:#0000001f;border-radius:6px}.dd-nav-item{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:none;background:transparent;color:var(--color-text);font-size:15px;font-weight:400;cursor:pointer;white-space:nowrap;border-radius:4px;transition:all .15s ease;font-family:inherit}.dd-nav-item:hover{color:var(--color-accent);background:rgba(var(--color-accent-rgb),.04)}.dd-nav-item.active{color:var(--color-accent);font-weight:500}.dd-nav-item.samoreg-active{color:var(--color-success)}.dd-samoreg-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-success);margin-left:2px}.dd-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.dd-expo-btn{display:flex;align-items:center;gap:6px;padding:0 8px;border:none;background:transparent;color:var(--color-text);font-size:13px;font-weight:400;cursor:pointer;max-width:300px;white-space:nowrap;font-family:inherit;transition:color .15s ease}.dd-expo-btn:hover{color:var(--color-accent)}.dd-expo-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-logout-btn{display:flex;align-items:center;justify-content:center;gap:6px;border:none;background:var(--color-accent);color:#fff;cursor:pointer;border-radius:15px;padding:8px 20px;font-size:14px;font-weight:400;transition:all .2s ease;font-family:inherit;white-space:nowrap}.dd-logout-btn:hover{background:#830000;color:#fff}.dd-expo-selector{display:flex;justify-content:center;align-items:flex-start;padding:40px 24px;flex:1;overflow-y:auto;min-height:0}.dd-expo-card{background:var(--color-bg-secondary);border-radius:10px;padding:25px;max-width:450px;width:100%}.dd-expo-card h2{text-align:center;margin:0 0 16px;font-size:20px;font-weight:600}.dd-expo-search-wrap{position:relative;margin-bottom:12px}.dd-expo-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.dd-expo-search{width:100%;height:40px;padding:0 36px;border:none;border-radius:10px;font-size:14px;color:var(--color-text);background:var(--color-input-bg);outline:none;box-sizing:border-box;font-family:inherit}.dd-expo-search::placeholder{color:var(--color-text-tertiary)}.dd-expo-search:focus{box-shadow:0 0 0 2px rgba(var(--color-accent-rgb),.3)}.dd-expo-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:var(--color-bg-tertiary);border-radius:50%;cursor:pointer;color:var(--color-text-secondary);padding:0}.dd-expo-search-clear:hover{background:var(--color-border-strong)}.dd-expo-empty{text-align:center;padding:20px;color:var(--color-text-tertiary);font-size:14px}.dd-expo-list{display:flex;flex-direction:column;gap:8px}.dd-expo-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--color-input-bg);border:none;border-radius:10px;cursor:pointer;text-align:left;width:100%;transition:all .15s ease;font-family:inherit;color:var(--color-text)}.dd-expo-item:hover{border-color:var(--color-accent);background:var(--color-accent-light)}.dd-expo-item-info{display:flex;flex-direction:column;gap:4px}.dd-expo-item-name{font-weight:600;font-size:14px}.dd-expo-item-desc{font-size:12px;color:var(--color-text-tertiary)}.dd-main{flex:1;display:flex;flex-direction:column;margin:0 10px;padding:10px 0;gap:10px;min-height:0;overflow:clip;min-width:0}.dd-search-form{background:var(--color-bg-secondary, #fff);border-radius:8px;padding:16px 20px;flex:1 1 0;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:clip}.dd-form{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.dd-form-all-fields{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-start;container-type:inline-size}.dd-form-fields{display:flex;flex-direction:column;gap:6px;flex:1 1 220px;min-width:0;max-width:360px;width:0}@container (max-width: 480px){.dd-form-fields{flex-basis:100%;max-width:none;width:auto}}.dd-form-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text);cursor:text;min-height:34px}.dd-form-label>span{width:110px;min-width:110px;text-align:right;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.dd-form-label .dd-input,.dd-form-label .dd-select{flex:1;min-width:0}.dd-form-divider{padding:6px 0 2px;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border)}.dd-field{display:flex;align-items:center;gap:10px;min-height:34px}.dd-label{font-size:14px;font-weight:600;color:var(--color-text);white-space:nowrap;min-width:110px;text-align:right;flex-shrink:0;line-height:1.2}.dd-req{color:var(--color-accent);font-weight:700;font-size:10px;vertical-align:middle}.dd-input,.dd-select{height:34px;padding:0 15px;border:none;border-radius:10px;font-size:14px;color:var(--color-text);background:var(--color-input-bg);outline:none;box-sizing:border-box;flex:1;min-width:0;transition:all .15s ease;font-family:inherit}.dd-input:focus,.dd-select:focus{outline:0;outline-offset:0}.dd-input::placeholder{color:var(--color-text-tertiary)}.dd-input-req{background:var(--color-error-bg)}.dd-input-req:focus{background:var(--color-input-bg)}.dd-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6,9 12,15 18,9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.dd-buttons{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;container-type:inline-size}.dd-buttons-left{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;overflow:hidden;min-width:0}@container (max-width: 680px){.dd-btn-label{display:none}.dd-btn{padding:0 9px;min-width:34px}}.dd-buttons-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.dd-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:34px;padding:0 16px;min-width:34px;flex-shrink:0;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s ease;font-family:inherit;line-height:1}.dd-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-btn:hover:not(:disabled){filter:brightness(1.08)}.dd-btn:active:not(:disabled){filter:brightness(.95)}.dd-btn:disabled{opacity:.45;cursor:default}.dd-btn svg{width:14px;height:14px;flex-shrink:0}.dd-btn-search{background:#1677ff;color:#fff}.dd-btn-search:hover:not(:disabled){background:#4096ff;filter:none}.dd-btn-search:active:not(:disabled){background:#0958d9;filter:none}.dd-btn-clear{background:var(--color-bg-tertiary, #f0f0f0);color:var(--color-text, #333)}.dd-btn-clear:hover:not(:disabled){background:var(--color-border, #d9d9d9);filter:none}.dd-btn-danger{background:#ff4d4f;color:#fff}.dd-btn-danger:hover:not(:disabled){background:#ff7875;filter:none}.dd-btn-danger:active:not(:disabled){background:#d9363e;filter:none}.dd-btn-create{background:#52c41a;color:#fff}.dd-btn-create:hover:not(:disabled){background:#73d13d;filter:none}.dd-btn-create:active:not(:disabled){background:#389e0d;filter:none}.dd-action-bar{display:none}.dd-btn-action{background:var(--btn-color, #1677ff);color:#fff}.dd-btn-action:hover:not(:disabled){filter:brightness(1.12)}.dd-btn-action:active:not(:disabled){filter:brightness(.9)}.dd-action-msg{font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap}.dd-action-msg.success{background:var(--color-success-bg, rgba(52,199,89,.12));color:var(--color-success, #28a745)}.dd-action-msg.error{background:var(--color-error-bg, rgba(255,59,48,.12));color:var(--color-error, #dc3545)}.dd-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:dd-spin .6s linear infinite}@keyframes dd-spin{to{transform:rotate(360deg)}}.dd-error{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-error-bg);color:var(--color-error);font-size:14px;border-radius:15px;margin-top:10px}.dd-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:48px;color:var(--color-text-tertiary);font-size:14px;margin-top:10px}.dd-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:14px;background:var(--color-bg-secondary);border-radius:7px;min-height:120px;padding:20px}.dd-results-vertical{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;margin-top:8px;border-radius:8px;overflow:hidden;background:var(--color-bg-secondary, #fff)}.dd-results-table-wrap{background:var(--color-bg-secondary);display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.dd-results-table-scroll{flex:1 1 0;min-height:0;min-width:0;overflow-x:auto;overflow-y:auto;scrollbar-gutter:stable}.dd-results-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}.dd-results-table thead{position:sticky;top:0;z-index:2}.dd-results-table th{padding:8px 12px;text-align:left;font-size:11px;font-weight:600;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border-bottom:2px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none}.dd-results-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-results-table td.mono{font-family:SF Mono,Consolas,Courier New,monospace;font-size:12px}.dd-results-table .dd-table-fio{font-weight:600;max-width:220px}.dd-results-table tbody tr{cursor:pointer;transition:background .1s ease}.dd-results-table tbody tr:hover{background:var(--color-accent-light)}.dd-results-table tbody tr.selected{background:rgba(var(--color-accent-rgb),.12)}.dd-results-table tbody tr.debt{background:var(--color-error-bg)}.dd-results-table tbody tr.debt:hover{background:var(--color-error-bg);filter:brightness(.95)}.dd-results-table tbody tr.bulk-selected{background:#007aff2e!important;outline:1px solid rgba(0,122,255,.4);outline-offset:-1px}.dd-bulk-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:4px}.dd-bulk-count{font-size:12px;font-weight:600;color:var(--color-text-primary);margin-right:2px;text-transform:none}.dd-bulk-btn{padding:4px 10px;border:none;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;transition:opacity .15s ease,filter .15s ease;background:var(--color-bg-secondary);color:var(--color-text-primary);text-transform:none;letter-spacing:0}.dd-bulk-btn:hover:not(:disabled){filter:brightness(.92)}.dd-bulk-btn:disabled{opacity:.4;cursor:not-allowed}.dd-bulk-btn.cancel{background:var(--color-error-bg);color:var(--color-error)}.dd-bulk-btn.register{background:#34c7592e;color:#1d8a3a}.dd-bulk-btn.print{background:#007aff24;color:var(--color-accent)}.dd-bulk-btn.zone{background:#af52de24;color:#af52de}.dd-bulk-check-th{width:36px;min-width:36px;padding:0!important}.dd-bulk-check{width:36px;padding:0 8px!important;text-align:center;vertical-align:middle}.dd-bulk-checkbox{display:inline-block;position:relative;width:16px;height:16px;border:2px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);vertical-align:middle;transition:all .15s ease}.dd-bulk-checkbox.checked{background:var(--color-accent);border-color:var(--color-accent)}.dd-bulk-checkbox.checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:11px;font-weight:700;line-height:1}.dd-table-visited{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-success-bg);color:var(--color-success);font-size:12px;font-weight:700}.dd-detail-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.dd-detail-close:hover{background:var(--color-error-bg);color:var(--color-error)}.dd-results-header{padding:6px 10px;font-size:11px;font-weight:600;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.5px;background:var(--color-bg-tertiary);display:flex;flex-direction:column;gap:0}.dd-results-scroll{flex:1;overflow-y:auto}.dd-result-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:none;background:transparent;text-align:left;cursor:pointer;border-bottom:1px solid var(--color-border);font-size:13px;color:var(--color-text);transition:background .1s ease}.dd-result-item:last-child{border-bottom:none}.dd-result-item:hover{background:var(--color-accent-light)}.dd-result-item.selected{background:rgba(var(--color-accent-rgb),.12)}.dd-result-item.debt{background:var(--color-error-bg)}.dd-result-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.dd-result-avatar.debt{background:var(--color-error-bg)!important;color:var(--color-error)!important}.dd-result-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dd-result-name{font-weight:600;font-size:13px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-result-company{font-size:11px;color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-result-status{display:inline-block;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:600;width:fit-content;margin-top:2px}.dd-result-debt-badge{font-size:10px;font-weight:700;color:var(--color-error)}.dd-visited-badge{width:22px;height:22px;border-radius:50%;background:var(--color-success-bg);color:var(--color-success);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.dd-user-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;margin-bottom:12px;overflow:hidden}.dd-user-panel-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.dd-user-panel-info{display:flex;align-items:center;gap:10px;flex:1;min-width:200px;flex-wrap:wrap}.dd-user-panel-name{font-size:15px;font-weight:700;color:var(--color-text);white-space:nowrap}.dd-user-panel-company{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}.dd-user-panel-visited{font-size:11px;font-weight:600;color:var(--color-success);background:var(--color-success-bg);padding:2px 8px;border-radius:10px;white-space:nowrap}.dd-user-panel-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--color-text-secondary)}.dd-user-panel-meta span{white-space:nowrap}.dd-user-panel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dd-user-panel-data{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0;max-height:40vh;overflow-y:auto;padding:2px 0}.dd-data-cell{display:flex;flex-direction:column;gap:1px;padding:6px 14px;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);min-width:0}.dd-data-label{font-size:10px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dd-data-value{font-size:13px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-data-value.mono{font-family:SF Mono,Consolas,Courier New,monospace;font-size:12px}.dd-result-detail{background:var(--color-bg-secondary);border-radius:10px;border:1px solid var(--color-border);max-height:50vh;overflow-y:auto;margin-bottom:14px}.dd-detail-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary);font-size:14px}.dd-detail-card{padding:20px}.dd-detail-header{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--color-border)}.dd-detail-avatar{width:48px;height:48px;border-radius:50%;background:var(--color-accent-light);color:var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.dd-detail-name-block{flex:1;min-width:0}.dd-detail-name{margin:0;font-size:17px;font-weight:600;color:var(--color-text)}.dd-detail-company{font-size:13px;color:var(--color-text-tertiary);margin-top:2px;display:block}.dd-detail-visited{width:30px;height:30px;border-radius:50%;background:var(--color-success-bg);color:var(--color-success);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dd-detail-actions{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.dd-detail-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--color-border)}.dd-toolbar-btn{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;color:#fff;white-space:nowrap;font-family:inherit}.dd-toolbar-btn:hover:not(:disabled){filter:brightness(.9);transform:translateY(-1px)}.dd-toolbar-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.dd-toolbar-btn:disabled{opacity:.45;cursor:default}.dd-toolbar-btn svg{flex-shrink:0}.dd-toolbar-accent{background:var(--color-accent);filter:brightness(1.1)}.dd-toolbar-primary{background:#007aff}.dd-toolbar-secondary{background:var(--color-bg-tertiary);color:var(--color-text);border:1px solid var(--color-border-strong)}.dd-toolbar-secondary:hover:not(:disabled){background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-accent)}.dd-toolbar-success{background:#34c759}.dd-toolbar-company{background:#af52de}.dd-toolbar-msg{font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap}.dd-toolbar-msg.success{background:var(--color-success-bg);color:var(--color-success)}.dd-toolbar-msg.error{background:var(--color-error-bg);color:var(--color-error)}.dd-action-row{display:flex;gap:8px;margin-bottom:8px}.dd-action-row:last-child{margin-bottom:0}.dd-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1;height:36px;padding:0 14px;border:none;border-radius:15px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;color:#fff;white-space:nowrap;font-family:inherit}.dd-action-btn:hover:not(:disabled){filter:brightness(.92);transform:translateY(-1px)}.dd-action-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.dd-action-btn:disabled{opacity:.5;cursor:default}.dd-action-btn.primary{background:var(--color-accent)}.dd-action-btn.accent{background:var(--color-accent);filter:brightness(1.1)}.dd-action-btn.secondary{background:var(--color-bg-tertiary);color:var(--color-text);border:1px solid var(--color-border-strong)}.dd-action-btn.secondary:hover:not(:disabled){background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-accent)}.dd-action-btn.company{background:#9b59b6}.dd-print-msg{padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;margin-top:8px}.dd-print-msg.success{background:var(--color-success-bg);color:var(--color-success)}.dd-print-msg.error{background:var(--color-error-bg);color:var(--color-error)}.dd-detail-fields{display:flex;flex-direction:column}.dd-loading-small{padding:8px 0;font-size:12px;color:var(--color-text-tertiary)}.dd-field-row{display:flex;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px solid var(--color-border);font-size:13px}.dd-field-label{flex-shrink:0;width:170px;color:var(--color-text-secondary);font-weight:500;font-size:12px}.dd-field-value{flex:1;color:var(--color-text);word-break:break-word}.dd-field-value.mono{font-family:SF Mono,Consolas,Courier New,monospace;font-size:12px}.dd-section-divider{padding:14px 0 6px;font-size:11px;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.dd-detail-stats{display:flex;gap:24px;padding-top:16px;margin-top:16px;border-top:1px solid var(--color-border)}.dd-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.dd-stat-value{font-size:20px;font-weight:700;color:var(--color-text)}.dd-stat-label{font-size:11px;color:var(--color-text-tertiary)}.dd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.dd-modal{background:var(--color-bg-secondary);border-radius:10px;padding:30px 40px;max-width:640px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 4px 20px #00000040}.dd-modal.dd-modal-sm{max-width:460px}.dd-modal.dd-modal-register-confirm{max-width:560px}.dd-modal h3{margin:0 0 10px;font-size:17px;font-weight:600}.dd-modal p{margin:0 0 8px;font-size:13px;color:var(--color-text-secondary)}.dd-modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.dd-modal-close{width:34px;height:34px;border:none;background:var(--color-bg-tertiary);border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all .15s ease}.dd-modal-close:hover{background:var(--color-error-bg);color:var(--color-error)}.dd-modal-body{min-height:160px}.dd-modal-buttons{display:flex;gap:10px;margin-top:16px}.dd-modal-buttons.dd-modal-buttons-stack{flex-direction:column}.dd-btn-wide{width:100%;justify-content:center}.dd-register-confirm-name{font-size:14px;line-height:1.45;word-break:break-word}.dd-register-confirm-text{line-height:1.5}@media(min-width:900px){.dd-modal.dd-modal-register-confirm{max-width:620px}.dd-modal-buttons.dd-modal-buttons-stack{flex-direction:row}.dd-modal-buttons.dd-modal-buttons-stack .dd-btn-wide{flex:1}}.dd-badge-error{color:var(--color-error);padding:16px}.dd-badge-fallback{margin-top:12px;padding:14px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text)}.dd-badge-fallback-name{font-size:16px;font-weight:600;margin-bottom:6px}.dd-badge-preview{display:flex;flex-direction:column;align-items:center}.dd-badge-scale{display:flex;align-items:center;gap:10px;margin-bottom:16px}.dd-badge-scale button{width:30px;height:30px;border:1px solid var(--color-border-strong);background:var(--color-bg-secondary);border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text);transition:all .15s ease}.dd-badge-scale button:hover{background:var(--color-accent-light);border-color:var(--color-accent)}.dd-badge-scale span{font-size:12px;color:var(--color-text-tertiary);min-width:40px;text-align:center}.dd-badge-render{overflow:auto;max-width:100%}.dd-company-methods{display:flex;flex-direction:column;gap:8px;margin-top:10px}.dd-company-reprint-list{margin:10px 0;padding:10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;max-height:200px;overflow-y:auto}.dd-company-reprint-item{padding:3px 0;font-size:12px}.dd-progress-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden;margin-top:10px}.dd-progress-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width .3s ease}@media(max-width:1366px){.desktop-dashboard{font-size:13px}.dd-header{margin:4px 8px 0;padding:5px 10px}.dd-main{margin:0 8px;padding:8px 0;gap:8px}.dd-nav-item{font-size:13px;padding:5px 7px}.dd-search-form{padding:12px 16px}.dd-form-all-fields{gap:12px 18px}.dd-form-fields{flex:1 1 195px;max-width:310px}.dd-form-label{min-height:30px;font-size:13px}.dd-form-label>span{width:100px;min-width:100px}.dd-input,.dd-select{height:30px;font-size:13px;padding:0 12px}.dd-btn{height:30px;font-size:12px}.dd-btn svg{width:13px;height:13px}.dd-btn-action svg{width:16px;height:16px}.dd-samoreg-panel{width:250px;max-width:250px}.dd-results-table{font-size:12.5px}.dd-results-table th,.dd-results-table td{padding:6px 10px}.dd-logout-btn{padding:6px 14px;font-size:13px}}@media(max-width:1280px){.desktop-dashboard{font-size:12.5px}.dd-header{margin:3px 7px 0;padding:4px 10px}.dd-main{margin:0 7px;padding:7px 0;gap:7px}.dd-nav-item{font-size:12.5px;padding:5px 6px}.dd-search-form{padding:10px 14px}.dd-form-all-fields{gap:10px 14px}.dd-form-fields{flex:1 1 175px;max-width:285px}.dd-form-label{min-height:28px;gap:6px}.dd-form-label>span{width:88px;min-width:88px;font-size:12.5px}.dd-input,.dd-select{height:28px;font-size:12.5px;padding:0 10px;border-radius:7px}.dd-btn{height:28px;font-size:12px;padding:0 12px}.dd-samoreg-panel{width:230px;max-width:230px;min-width:180px}.dd-results-table{font-size:12px}.dd-results-table th,.dd-results-table td{padding:5px 8px}.dd-stats-card-value{font-size:18px}.dd-logout-btn{padding:5px 12px;font-size:12px;border-radius:12px}.dd-expo-btn{max-width:220px;font-size:12px}.dd-buttons{margin-top:8px}.dd-results-vertical{margin-top:6px}}@media(max-width:1024px){.desktop-dashboard{font-size:12px}.dd-header{margin:3px 6px 0;padding:4px 8px}.dd-main{margin:0 6px;padding:6px 0;gap:6px}.dd-nav-item{font-size:12px;padding:5px}.dd-search-form{padding:8px 12px}.dd-form-all-fields{gap:8px 12px}.dd-form-fields{flex:1 1 155px;max-width:260px}.dd-form-label{min-height:26px;gap:5px;font-size:12px}.dd-form-label>span{width:80px;min-width:80px;font-size:12px}.dd-input,.dd-select{height:26px;font-size:12px;padding:0 8px;border-radius:6px}.dd-btn{height:26px;font-size:11px;padding:0 10px;border-radius:5px}.dd-btn svg{width:12px;height:12px}.dd-btn-action svg{width:14px;height:14px}.dd-samoreg-panel{width:210px;max-width:210px;min-width:160px}.dd-results-table{font-size:11.5px}.dd-results-table th,.dd-results-table td{padding:4px 7px}.dd-logout-btn{padding:5px 10px;font-size:11px}.dd-expo-btn{max-width:180px;font-size:11px}.dd-stats-grid{grid-template-columns:repeat(2,1fr)}.dd-buttons{margin-top:6px}}@media(max-width:860px){.dd-form-all-fields{gap:8px 10px}.dd-form-fields{flex:1 1 140px;max-width:none;width:auto}.dd-results-table{font-size:11px}.dd-results-table th,.dd-results-table td{padding:4px 6px}.dd-stats-grid{grid-template-columns:repeat(2,1fr)}.dd-samoreg-panel{width:190px;max-width:190px;min-width:140px}}@media(max-width:640px){.dd-header-left{gap:2px}.dd-logo{padding:4px 6px}.dd-expo-btn{max-width:140px;font-size:11px}.dd-logout-btn{padding:5px 10px;font-size:11px;border-radius:10px}.dd-form-label{flex-direction:column;align-items:stretch;gap:3px;min-height:unset}.dd-form-label>span{text-align:left;width:auto;min-width:unset;max-width:none;overflow:visible;text-overflow:unset;white-space:normal;font-size:11px;font-weight:500;color:var(--color-text-tertiary)}.dd-samoreg-panel{width:160px;max-width:160px;min-width:120px}.dd-samoreg-panel-body{padding:8px 10px;gap:8px}}.mono{font-family:SF Mono,Consolas,Courier New,monospace}.dd-stats-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:7px;transition:all .15s ease}.dd-stats-toggle:hover{color:var(--color-accent);background:rgba(var(--color-accent-rgb),.06)}.dd-stats-toggle.active{background:var(--color-accent);color:#fff;border-radius:15px}.dd-stats-panel{background:var(--color-bg-secondary);border-radius:7px;overflow:hidden}.dd-stats-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--color-border)}.dd-stats-panel-title{font-size:14px;font-weight:600;color:var(--color-text)}.dd-stats-panel-close{width:28px;height:28px;border:none;background:transparent;border-radius:6px;color:var(--color-text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.dd-stats-panel-close:hover{background:var(--color-error-bg);color:var(--color-error)}.dd-stats-panel-body{padding:14px 16px}.dd-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.dd-stats-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;background:var(--color-input-bg);border-radius:10px}.dd-stats-card-value{font-size:22px;font-weight:700;color:var(--color-text)}.dd-stats-card-label{font-size:11px;color:var(--color-text-tertiary);text-align:center}.dd-stats-statuses{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.dd-stats-section-title{display:block;font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.dd-stats-status-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:13px}.dd-stats-status-name{color:var(--color-text-secondary)}.dd-stats-status-count{font-weight:600;color:var(--color-text);min-width:28px;text-align:right}.dd-content-row{display:flex;flex-direction:row;flex:1 1 0;min-height:0;min-width:0;gap:0;overflow:clip}.dd-content-row .dd-search-form{flex:1 1 0;min-width:0;border-radius:7px}.dd-content-row:has(.dd-samoreg-panel) .dd-search-form{border-radius:7px 0 0 7px}.dd-samoreg-panel{width:280px;min-width:200px;max-width:280px;flex-shrink:1;background:var(--color-bg-secondary);border-left:1px solid var(--color-border);border-radius:0 7px 7px 0;display:flex;flex-direction:column;overflow:hidden}.dd-samoreg-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-border)}.dd-samoreg-panel-title{font-size:13px;font-weight:700;color:var(--color-text)}.dd-samoreg-panel-close{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:2px;line-height:0}.dd-samoreg-panel-body{flex:1;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:10px}.dd-samoreg-main-btn{width:100%;padding:10px;border:none;border-radius:7px;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;color:#fff;transition:opacity .15s}.dd-samoreg-main-btn:disabled{opacity:.5;cursor:not-allowed}.dd-samoreg-main-btn.start{background:var(--color-accent, #007AFF)}.dd-samoreg-main-btn.stop{background:#ff3b30}.dd-samoreg-interval{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--color-text-secondary)}.dd-samoreg-interval-val{font-weight:600;color:var(--color-text)}.dd-samoreg-stats{display:flex;flex-wrap:wrap;gap:6px}.dd-samoreg-stat{font-size:11px;font-weight:600;padding:2px 8px;border-radius:5px;background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.dd-samoreg-stat.ok{color:#28a745}.dd-samoreg-stat.err{color:#ff3b30}.dd-samoreg-stat.pulse{color:var(--color-accent);animation:samoreg-blink 1.5s infinite}@keyframes samoreg-blink{0%,to{opacity:1}50%{opacity:.4}}.dd-samoreg-zones-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--color-text)}.dd-samoreg-zones-header>div{display:flex;gap:6px}.dd-samoreg-zone-act{background:none;border:none;font-size:11px;color:var(--color-accent);cursor:pointer;font-weight:500;font-family:inherit;padding:0}.dd-samoreg-zone-act:hover{text-decoration:underline}.dd-samoreg-zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;max-height:320px;overflow-y:auto}.dd-samoreg-zone{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text);padding:3px 4px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.dd-samoreg-zone:hover{background:var(--color-bg-tertiary)}.dd-samoreg-zone.active{font-weight:600}.dd-samoreg-zone input[type=checkbox]{accent-color:var(--color-accent);width:14px;height:14px;margin:0}.dd-samoreg-log-section{display:flex;flex-direction:column;gap:4px}.dd-samoreg-log-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--color-text)}.dd-samoreg-log{max-height:180px;overflow-y:auto;background:var(--color-bg);border-radius:6px;padding:6px;display:flex;flex-direction:column;gap:2px}.dd-samoreg-log-entry{font-size:11px;display:flex;gap:6px;line-height:1.4}.dd-samoreg-log-entry.success .dd-samoreg-log-msg{color:#28a745}.dd-samoreg-log-entry.error .dd-samoreg-log-msg{color:#ff3b30}.dd-samoreg-log-time{color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0}.dd-samoreg-log-msg{color:var(--color-text-secondary);word-break:break-word}.dd-user-detail{border-top:2px solid var(--color-accent);background:var(--color-bg-secondary)}.dd-user-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.dd-user-detail-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.dd-user-detail-name{font-size:16px;font-weight:700;color:var(--color-text)}.dd-user-detail-status{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}.dd-user-detail-visited{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:600;background:#34c7591f;color:#28a745;white-space:nowrap}.dd-user-detail-debt{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:600;background:#ff3b301f;color:#ff3b30;white-space:nowrap}.dd-user-detail-body{padding:12px 16px;display:flex;flex-direction:column;gap:16px;max-height:40vh;overflow-y:auto}.dd-detail-section{display:flex;flex-direction:column;gap:8px}.dd-detail-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border);padding-bottom:4px}.dd-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 20px}.dd-detail-item{display:flex;flex-direction:column;gap:1px;padding:4px 0}.dd-detail-label{font-size:11px;font-weight:500;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dd-detail-value{font-size:13px;font-weight:500;color:var(--color-text);word-break:break-word}.dd-detail-loading{display:flex;align-items:center;gap:8px;padding:12px;color:var(--color-text-tertiary);font-size:13px}.dd-statusbar{display:flex;align-items:center;gap:20px;padding:0 14px;height:26px;min-height:26px;flex-shrink:0;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);font-size:11px;color:var(--color-text-secondary, #888);-webkit-user-select:none;user-select:none;overflow:hidden}.dd-statusbar-item{display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;flex-shrink:1;min-width:0}.dd-statusbar-label{opacity:.7;flex-shrink:0}.dd-statusbar-value{font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-statusbar-wifi.online{color:#28a745}.dd-statusbar-wifi.offline{color:#dc3545}.dd-statusbar-wifi.online svg{stroke:#28a745}.dd-statusbar-wifi.offline svg{stroke:#dc3545}.dd-statusbar-expo{flex:1 1 auto;min-width:0}.dd-statusbar-msg{flex:1 1 auto;min-width:0;max-width:480px}.dd-statusbar-msg.success{color:#28a745}.dd-statusbar-msg.error{color:#dc3545}.dd-statusbar-msg-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}@keyframes dd-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.dd-skeleton-col{pointer-events:none;-webkit-user-select:none;user-select:none}.dd-skeleton-field{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:34px}.dd-skeleton-label,.dd-skeleton-input{border-radius:5px;background:linear-gradient(90deg,var(--color-border, #e0e0e0) 25%,color-mix(in srgb,var(--color-border, #e0e0e0) 40%,var(--color-bg-secondary, #fff)) 50%,var(--color-border, #e0e0e0) 75%);background-size:800px 100%;animation:dd-shimmer 1.4s infinite linear}.dd-skeleton-label{width:110px;min-width:110px;height:13px;flex-shrink:0}.dd-skeleton-input{flex:1;height:30px;min-width:0}.dd-nav-item:disabled{opacity:.4;cursor:not-allowed}.pin-lock-page{min-height:calc(100vh - var(--titlebar-h));min-height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);display:flex;align-items:center;justify-content:center;padding:20px;padding-top:max(20px,var(--safe-area-top));padding-bottom:max(20px,var(--safe-area-bottom))}.pin-lock-content{display:flex;flex-direction:column;align-items:center;gap:24px;max-width:320px;width:100%}.pin-lock-logo{margin-bottom:8px}.pin-lock-title{font-size:20px;font-weight:600;color:var(--color-text);margin:0;text-align:center}.pin-dots{display:flex;gap:16px;padding:16px 0}.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--color-border-strong);background:transparent;transition:all .15s ease}.pin-dot.filled{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.1)}.pin-dots.shake{animation:pinShake .5s ease}.pin-dots.shake .pin-dot.filled{background:var(--color-error);border-color:var(--color-error)}@keyframes pinShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}.pin-error{font-size:14px;color:var(--color-error);text-align:center;min-height:20px;margin-top:-8px}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:280px}.pin-key{aspect-ratio:1;max-height:72px;border:none;border-radius:50%;font-size:28px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.pin-key.digit{background:var(--color-card);color:var(--color-text)}.pin-key.digit:hover{background:var(--color-bg-tertiary)}.pin-key.digit:active{background:var(--color-border);transform:scale(.95)}.pin-key.backspace{background:transparent;color:var(--color-text-secondary)}.pin-key.backspace:hover{background:var(--color-bg-tertiary)}.pin-key.backspace:active{transform:scale(.9)}.pin-key.backspace:disabled{opacity:.3;cursor:default}.pin-key.biometric{background:transparent;color:var(--color-accent)}.pin-key.biometric:hover{background:var(--color-accent-light)}.pin-key.biometric:active{transform:scale(.9)}.pin-key.biometric:disabled{opacity:.5;cursor:default}.pin-key.empty{background:transparent;cursor:default}.pin-key-spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@media(max-height:600px){.pin-lock-content{gap:16px}.pin-dots{padding:12px 0;gap:12px}.pin-dot{width:12px;height:12px}.pin-keypad{gap:8px}.pin-key{max-height:60px;font-size:24px}}@media(max-width:320px){.pin-keypad{max-width:240px;gap:8px}.pin-key{max-height:64px;font-size:24px}}.pin-lock-subtitle{font-size:14px;color:var(--color-text-secondary);text-align:center;margin:-8px 0 0;max-width:280px}.pin-forgot-button{margin-top:16px;padding:12px 24px;background:transparent;border:none;color:var(--color-text-tertiary);font-size:14px;font-family:inherit;cursor:pointer;transition:color .15s}.pin-forgot-button:hover{color:var(--color-text-secondary)}.pin-forgot-button:active{color:var(--color-accent)}.pin-reset-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.pin-reset-modal{background:var(--color-bg);border-radius:20px;padding:24px;width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pin-reset-icon{color:var(--color-error)}.pin-reset-title{font-size:18px;font-weight:600;color:var(--color-text);margin:0}.pin-reset-text{font-size:14px;color:var(--color-text-secondary);margin:0;line-height:1.4}.pin-reset-buttons{display:flex;gap:12px;width:100%;margin-top:8px}.pin-reset-cancel,.pin-reset-confirm{flex:1;padding:12px 16px;border:none;border-radius:12px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.pin-reset-cancel{background:var(--color-bg-tertiary);color:var(--color-text)}.pin-reset-cancel:hover{background:var(--color-border)}.pin-reset-confirm{background:var(--color-error);color:#fff}.pin-reset-confirm:hover{opacity:.9}.pin-reset-confirm:active{transform:scale(.98)}.biometric-setup{gap:20px}.biometric-icon-large{width:120px;height:120px;border-radius:50%;background:var(--color-accent-light, rgba(0, 122, 255, .1));display:flex;align-items:center;justify-content:center;margin:16px 0}.biometric-buttons{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:16px}.biometric-btn{width:100%;padding:16px 24px;border:none;border-radius:12px;font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.biometric-btn:disabled{opacity:.6;cursor:not-allowed}.biometric-btn.primary{background:var(--color-accent);color:#fff}.biometric-btn.primary:hover:not(:disabled){opacity:.9}.biometric-btn.primary:active:not(:disabled){transform:scale(.98)}.biometric-btn.secondary{background:transparent;color:var(--color-text-secondary)}.biometric-btn.secondary:hover:not(:disabled){background:var(--color-bg-tertiary)}.install-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:12px;padding-bottom:max(12px,var(--safe-area-bottom));padding-left:max(12px,var(--safe-area-left));padding-right:max(12px,var(--safe-area-right));animation:slideUp .35s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.install-banner-content{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:16px;box-shadow:0 -2px 20px var(--color-shadow);max-width:480px;margin:0 auto}.install-banner-icon{width:44px;height:44px;border-radius:12px;flex-shrink:0}.install-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.install-banner-text strong{font-size:15px;font-weight:700;color:var(--color-text)}.install-banner-desc{font-size:13px;color:var(--color-text-secondary);display:flex;align-items:center;flex-wrap:wrap;gap:3px;line-height:1.4}.install-banner-desc b{white-space:nowrap}.install-ios-share{display:inline-block;vertical-align:middle;color:var(--color-accent);flex-shrink:0}.install-banner-btn{padding:10px 18px;font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:var(--color-accent);border:none;border-radius:10px;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.install-banner-btn:hover{background:var(--color-accent-hover)}.install-banner-btn:active{transform:scale(.96)}.install-banner-btn:disabled{opacity:.6;cursor:not-allowed}.install-banner-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:8px;color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:all .15s}.install-banner-close:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.install-ios-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:var(--color-overlay);display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:max(16px,var(--safe-area-bottom));animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.install-ios-modal{width:100%;max-width:400px;background:var(--color-card);border-radius:20px;overflow:hidden;animation:slideUpModal .3s ease-out;box-shadow:0 -4px 40px var(--color-shadow)}@keyframes slideUpModal{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.install-ios-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid var(--color-border)}.install-ios-title{font-size:17px;font-weight:700;color:var(--color-text)}.install-ios-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.install-ios-close:hover{background:var(--color-border-strong);color:var(--color-text)}.install-ios-steps{padding:16px 20px;display:flex;flex-direction:column;gap:16px}.install-ios-step{display:flex;align-items:flex-start;gap:14px;opacity:.35;transition:opacity .3s ease}.install-ios-step.active{opacity:1}.install-ios-step-num{width:28px;height:28px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-ios-step-content{display:flex;flex-direction:column;gap:4px;font-size:15px;color:var(--color-text);padding-top:3px;line-height:1.5}.install-ios-share-icon{color:var(--color-accent);display:inline-block;vertical-align:middle;margin:2px 0}.install-ios-step-hint{font-size:13px;color:var(--color-text-tertiary)}.install-ios-action-pill{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:6px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);border-radius:10px;font-size:14px;color:var(--color-text)}.install-ios-action-pill svg{color:var(--color-accent);flex-shrink:0}.install-ios-nav{padding:12px 20px 18px;display:flex;justify-content:flex-end}.install-ios-next,.install-ios-done{padding:10px 24px;font-size:15px;font-weight:600;font-family:inherit;color:#fff;background:var(--color-accent);border:none;border-radius:12px;cursor:pointer;transition:all .2s}.install-ios-next:hover,.install-ios-done:hover{background:var(--color-accent-hover)}.install-ios-next:active,.install-ios-done:active{transform:scale(.96)}.tb{display:flex;align-items:center;height:32px;background:var(--color-bg);color:var(--color-text);font-size:12px;position:fixed;top:0;left:0;right:0;z-index:99999;border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.tb-drag{flex:1;display:flex;align-items:center;gap:8px;padding-left:12px;height:100%;-webkit-app-region:drag;app-region:drag;overflow:hidden}.tb-logo{flex-shrink:0;opacity:.7}.tb-title{font-weight:600;font-size:12px;letter-spacing:.02em;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-controls{display:flex;height:100%;-webkit-app-region:no-drag;app-region:no-drag}.tb-btn{display:flex;align-items:center;justify-content:center;width:46px;height:100%;border:none;background:transparent;color:var(--color-text);cursor:pointer;opacity:.7;transition:background .15s,opacity .15s;outline:none;padding:0}.tb-btn:hover{background:var(--color-bg-tertiary);opacity:1}.tb-btn-close:hover{background:#e81123;color:#fff;opacity:1}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./Inter-VariableFont_opsz_wght-c8O0ljhh.ttf) format("truetype")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(./Inter-Italic-VariableFont_opsz_wght-B-9PvMw6.ttf) format("truetype")}:root{--titlebar-h: 0px;--color-bg: #fff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #f0f0f0;--color-text: #000;--color-text-secondary: #666;--color-text-tertiary: #888;--color-border: #f0f0f0;--color-border-strong: #e0e0e0;--color-accent: #007AFF;--color-accent-hover: #0056b3;--color-accent-light: rgba(0, 122, 255, .08);--color-accent-rgb: 0, 122, 255;--color-success: #4caf50;--color-success-bg: rgba(76, 175, 80, .1);--color-error: #e53935;--color-error-bg: #fee;--color-card: #f5f5f5;--color-input-bg: #fff;--color-shadow: rgba(0, 0, 0, .1);--color-overlay: rgba(0, 0, 0, .5);--color-icon-bg: #000;--color-icon-text: #fff;--scrollbar-thumb: rgba(0, 0, 0, .2);--scrollbar-thumb-hover: rgba(0, 0, 0, .35)}[data-theme=dark]{--color-bg: #000;--color-bg-secondary: #1c1c1e;--color-bg-tertiary: #2c2c2e;--color-text: #fff;--color-text-secondary: #aaa;--color-text-tertiary: #8e8e93;--color-border: #2c2c2e;--color-border-strong: #3a3a3c;--color-accent: #0a84ff;--color-accent-hover: #409cff;--color-accent-light: rgba(10, 132, 255, .12);--color-accent-rgb: 10, 132, 255;--color-success: #30d158;--color-success-bg: rgba(48, 209, 88, .15);--color-error: #ff453a;--color-error-bg: #3a1f1f;--color-card: #1c1c1e;--color-input-bg: #2c2c2e;--color-shadow: rgba(0, 0, 0, .3);--color-overlay: rgba(0, 0, 0, .7);--color-icon-bg: #fff;--color-icon-text: #000;--scrollbar-thumb: rgba(255, 255, 255, .2);--scrollbar-thumb-hover: rgba(255, 255, 255, .35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga" 1,"calt" 1;font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg);transition:background-color .15s ease,color .15s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-ms-scroll-chaining:none}input,textarea,[contenteditable=true],select{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;-webkit-touch-callout:default}body{height:100vh;height:100dvh;background:var(--color-bg);overscroll-behavior:none;overflow:hidden}body.has-titlebar{--titlebar-h: 32px;padding-top:var(--titlebar-h)}#root{height:calc(100vh - var(--titlebar-h));height:calc(100dvh - var(--titlebar-h));background:var(--color-bg);overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}body:not(.has-titlebar) #root{height:100vh;height:100dvh}input::selection,textarea::selection{background:#007aff33}input::-ms-reveal,input::-ms-clear{display:none}@media screen and (max-width:768px){input,select,textarea{font-size:16px!important}}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{display:flex;align-items:center;justify-content:center;height:calc(100vh - var(--titlebar-h));height:calc(100dvh - var(--titlebar-h));flex-direction:column;gap:16px;background:var(--color-bg)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;animation:spin .8s linear infinite}.loading-text{color:var(--color-text-secondary);font-size:14px}button:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}
