:root{--color-primary: #4CAF50;--color-primary-hover: #45a049;--color-primary-light: #388e3c;--color-primary-dark: #2e7d32;--color-secondary: #2196F3;--color-secondary-hover: #1976D2;--color-secondary-light: #1565C0;--color-warning: #FF9800;--color-warning-hover: #f57c00;--color-warning-light: #ef6c00;--color-error: #f44336;--color-error-hover: #d32f2f;--color-error-light: #c62828;--color-success: #4CAF50;--color-success-light: #e8f5e8;--color-purple: #9C27B0;--color-purple-hover: #7B1FA2;--color-purple-light: #6A1B9A;--color-orange: #FF5722;--color-yellow: #FFC107;--color-yellow-hover: #FF8F00;--color-gray: #9E9E9E;--color-gray-light: #757575;--color-gray-dark: #616161;--color-gray-darker: #424242;--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #fafafa;--bg-modal: #ffffff;--bg-button: #f5f5f5;--bg-input: #ffffff;--bg-overlay: rgba(0, 0, 0, .5);--text-primary: #333333;--text-secondary: #666666;--text-tertiary: #999999;--text-white: #ffffff;--text-error: #f44336;--text-success: #2e7d32;--border-primary: #e0e0e0;--border-secondary: #ccc;--border-focus: #4CAF50;--border-error: #f44336;--border-success: #4CAF50;--shadow-light: rgba(0, 0, 0, .1);--shadow-medium: rgba(0, 0, 0, .2);--shadow-heavy: rgba(0, 0, 0, .3);--status-ready: #4CAF50;--status-checking: #2196F3;--status-warning: #FF9800;--status-error: #f44336;--status-triggering: #FF5722;--status-waiting: #9C27B0;--status-offline: #757575;--form-bg: #ffffff;--form-border: #e0e0e0;--form-focus: #4CAF50;--form-error: #f44336;--form-text: #333333;--form-placeholder: #999999}.theme-dark{--color-primary: #66BB6A;--color-primary-hover: #5CB660;--color-primary-light: #52A956;--color-primary-dark: #4CAF50;--color-secondary: #42A5F5;--color-secondary-hover: #2196F3;--color-secondary-light: #1E88E5;--color-warning: #FFB74D;--color-warning-hover: #FFA726;--color-warning-light: #FF9800;--color-error: #EF5350;--color-error-hover: #F44336;--color-error-light: #E53935;--color-success: #66BB6A;--color-success-light: #1B5E1F;--color-purple: #BA68C8;--color-purple-hover: #AB47BC;--color-purple-light: #9C27B0;--color-orange: #FF7043;--color-yellow: #FFCA28;--color-yellow-hover: #FFC107;--color-gray: #BDBDBD;--color-gray-light: #9E9E9E;--color-gray-dark: #757575;--color-gray-darker: #616161;--bg-primary: #121212;--bg-secondary: #1E1E1E;--bg-tertiary: #2A2A2A;--bg-modal: #1E1E1E;--bg-button: #2A2A2A;--bg-input: #2A2A2A;--bg-overlay: rgba(0, 0, 0, .7);--text-primary: #FFFFFF;--text-secondary: #B3B3B3;--text-tertiary: #808080;--text-white: #FFFFFF;--text-error: #EF5350;--text-success: #66BB6A;--border-primary: #404040;--border-secondary: #555555;--border-focus: #66BB6A;--border-error: #EF5350;--border-success: #66BB6A;--shadow-light: rgba(0, 0, 0, .3);--shadow-medium: rgba(0, 0, 0, .5);--shadow-heavy: rgba(0, 0, 0, .7);--status-ready: #66BB6A;--status-checking: #42A5F5;--status-warning: #FFB74D;--status-error: #EF5350;--status-triggering: #FF7043;--status-waiting: #BA68C8;--status-offline: #9E9E9E;--form-bg: #2A2A2A;--form-border: #404040;--form-focus: #66BB6A;--form-error: #EF5350;--form-text: #FFFFFF;--form-placeholder: #808080}.theme-bright{--color-primary: #2E7D32;--color-primary-hover: #1B5E20;--color-primary-light: #388E3C;--color-primary-dark: #1B5E20;--color-secondary: #1565C0;--color-secondary-hover: #0D47A1;--color-secondary-light: #1976D2;--color-warning: #E65100;--color-warning-hover: #BF360C;--color-warning-light: #D84315;--color-error: #C62828;--color-error-hover: #B71C1C;--color-error-light: #D32F2F;--color-success: #2E7D32;--color-success-light: #E8F5E8;--color-purple: #6A1B9A;--color-purple-hover: #4A148C;--color-purple-light: #7B1FA2;--color-orange: #D84315;--color-yellow: #F57F17;--color-yellow-hover: #E65100;--color-gray: #424242;--color-gray-light: #616161;--color-gray-dark: #424242;--color-gray-darker: #212121;--bg-primary: #FAFAFA;--bg-secondary: #F0F0F0;--bg-tertiary: #E8E8E8;--bg-modal: #FFFFFF;--bg-button: #F0F0F0;--bg-input: #FFFFFF;--bg-overlay: rgba(0, 0, 0, .6);--text-primary: #212121;--text-secondary: #424242;--text-tertiary: #757575;--text-white: #FFFFFF;--text-error: #C62828;--text-success: #2E7D32;--border-primary: #BDBDBD;--border-secondary: #9E9E9E;--border-focus: #2E7D32;--border-error: #C62828;--border-success: #2E7D32;--shadow-light: rgba(0, 0, 0, .15);--shadow-medium: rgba(0, 0, 0, .25);--shadow-heavy: rgba(0, 0, 0, .35);--status-ready: #2E7D32;--status-checking: #1565C0;--status-warning: #E65100;--status-error: #C62828;--status-triggering: #D84315;--status-waiting: #6A1B9A;--status-offline: #424242;--form-bg: #FFFFFF;--form-border: #BDBDBD;--form-focus: #2E7D32;--form-error: #C62828;--form-text: #212121;--form-placeholder: #757575}*,*:before,*:after{box-sizing:border-box}html,body{margin:0!important;padding:0!important;height:100%;width:100%;overflow-x:hidden;overflow-y:hidden}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}.container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;width:100vw;overflow-x:hidden;overflow-y:hidden;padding:max(env(safe-area-inset-top),20px) 20px max(env(safe-area-inset-bottom),20px) max(env(safe-area-inset-left),20px);box-sizing:border-box}.main-content{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;padding:20px;box-sizing:border-box;overflow:visible}.trigger-button{width:min(200px,60vw);aspect-ratio:1;min-width:120px;max-width:250px;flex-shrink:0;flex-grow:0;border-radius:50%;border:none;font-size:clamp(16px,4vw,20px);font-weight:700;color:var(--text-white);background:var(--status-ready);cursor:pointer;transition:all .3s ease;box-sizing:border-box}.trigger-button.ready{background:var(--status-ready);box-shadow:0 4px 20px var(--shadow-light)}.trigger-button.checkingNetwork{background:var(--status-checking);cursor:not-allowed;animation:pulse-blue 1.5s ease-in-out infinite}.trigger-button.noNetwork{background:var(--status-warning);cursor:pointer;animation:pulse-warning 2s ease-in-out infinite}.trigger-button.triggering{background:var(--status-triggering);cursor:not-allowed;animation:pulse-action 1s ease-in-out infinite;box-shadow:0 4px 20px var(--shadow-medium)}.trigger-button.waitingForRelayClose{background:var(--status-waiting);cursor:not-allowed;animation:pulse-relay 1.2s ease-in-out infinite;box-shadow:0 4px 20px var(--shadow-light)}.trigger-button.timeout{background:var(--status-warning);cursor:pointer;animation:fade-warning 3s ease-in-out infinite}button.config-button{padding:8px 16px!important;min-width:44px;min-height:44px;width:auto!important;height:auto!important;border-radius:4px!important;border:1px solid var(--border-secondary);aspect-ratio:unset!important;-webkit-appearance:none;appearance:none;background:var(--bg-button);color:var(--text-primary);box-shadow:0 2px 4px var(--shadow-light);font-size:14px;font-weight:500;line-height:1.2;text-align:center;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px;margin:20px auto 8px;position:relative;left:0}.install-button{padding:10px 18px!important;min-width:44px;min-height:44px;width:auto!important;height:auto!important;border-radius:6px!important;border:2px solid var(--color-secondary);aspect-ratio:unset!important;-webkit-appearance:none;appearance:none;background:var(--color-secondary);color:var(--text-white);box-shadow:0 3px 6px var(--shadow-medium);font-size:14px;font-weight:600;line-height:1.2;text-align:center;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:6px;margin:8px 0 0;position:relative}.install-button:hover{background:var(--color-secondary-hover);border-color:var(--color-secondary-hover);box-shadow:0 4px 12px var(--shadow-heavy);transform:translateY(-1px)}.install-button:active{background:var(--color-secondary-light);transform:translateY(0);box-shadow:0 2px 4px var(--shadow-light)}.install-button:focus{outline:none;box-shadow:0 3px 6px var(--shadow-medium),0 0 0 3px #2196f34d}.install-button-icon{font-size:16px;line-height:1}.install-button-text{font-size:14px;font-weight:600}.config-button:hover{background:var(--color-primary);color:var(--text-white);border-color:var(--color-primary);box-shadow:0 4px 8px var(--shadow-medium)}.config-button:active{background:var(--color-primary-dark);transform:translateY(1px);box-shadow:0 1px 2px var(--shadow-light)}.config-button:focus{outline:none;box-shadow:0 2px 4px var(--shadow-light),0 0 0 2px var(--color-primary)}.config-button.has-issues{background:var(--color-warning);color:var(--text-white);border-color:var(--color-warning);animation:pulse-config-warning 2s ease-in-out infinite}.config-button.has-issues:hover{background:var(--color-warning-hover);border-color:var(--color-warning-hover)}@keyframes pulse-config-warning{0%{box-shadow:0 4px 20px var(--shadow-light)}50%{box-shadow:0 4px 25px var(--shadow-medium)}to{box-shadow:0 4px 20px var(--shadow-light)}}@media (display-mode: standalone){.config-button{box-shadow:0 6px 30px #4caf5066}.config-button.standalone-mode{border:2px solid rgba(255,255,255,.2)}}.config-button.offline-mode{background:linear-gradient(135deg,var(--color-gray-light),var(--color-gray-dark));animation:pulse-offline 2s ease-in-out infinite}.config-button.offline-mode:hover{background:linear-gradient(135deg,var(--color-gray-dark),var(--color-gray-darker))}@keyframes pulse-offline{0%{box-shadow:0 4px 20px var(--shadow-light)}50%{box-shadow:0 4px 25px var(--shadow-medium)}to{box-shadow:0 4px 20px var(--shadow-light)}}.config-button.has-queue{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-hover));animation:pulse-queue 1.5s ease-in-out infinite}.config-button.has-queue:hover{background:linear-gradient(135deg,var(--color-secondary-hover),var(--color-secondary-light))}@keyframes pulse-queue{0%{box-shadow:0 4px 20px var(--shadow-medium)}50%{box-shadow:0 4px 25px var(--shadow-heavy)}to{box-shadow:0 4px 20px var(--shadow-medium)}}.config-button.installable{background:linear-gradient(135deg,var(--color-purple),var(--color-purple-hover));animation:pulse-installable 2s ease-in-out infinite}.config-button.installable:hover{background:linear-gradient(135deg,var(--color-purple-hover),var(--color-purple-light))}@keyframes pulse-installable{0%{box-shadow:0 4px 20px var(--shadow-medium)}50%{box-shadow:0 4px 25px var(--shadow-heavy)}to{box-shadow:0 4px 20px var(--shadow-medium)}}.config-button.processing{background:linear-gradient(135deg,var(--color-yellow),var(--color-yellow-hover));cursor:wait;animation:pulse-processing 1s ease-in-out infinite}@keyframes pulse-processing{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.config-icon-primary{position:relative;display:inline-block;transition:transform .3s ease}.config-button:hover .config-icon-primary{transform:rotate(15deg)}.config-button.processing .config-icon-primary{animation:rotate-icon 2s linear infinite}@keyframes rotate-icon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pwa-badge{position:absolute;top:-8px;right:-8px;min-width:18px;height:18px;border-radius:50%;background:var(--color-error);color:var(--text-white);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px var(--shadow-light);z-index:1}.queue-count{display:inline-block;min-width:12px;text-align:center}.offline-dot{width:12px;height:12px;border-radius:50%;background:var(--color-gray-light);display:inline-block;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.install-prompt-backdrop{z-index:2000}.install-prompt-content{max-width:500px;width:90%}.install-prompt-body{text-align:center;padding:24px}.install-icon{font-size:48px;margin-bottom:16px}.install-description{font-size:16px;line-height:1.5;color:var(--text-secondary);margin-bottom:24px}.ios-instructions{text-align:left;background:var(--bg-secondary);padding:20px;border-radius:12px;margin:20px 0}.ios-instructions h3{margin:0 0 16px;color:var(--text-primary);font-size:18px}.install-steps{list-style:none;padding:0;margin:0}.install-steps li{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-primary)}.install-steps li:last-child{border-bottom:none}.step-icon{font-size:20px;flex-shrink:0;margin-top:2px}.install-steps li strong{color:var(--color-primary)}.ios-note{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px;padding:12px;margin-top:16px;font-size:14px;color:var(--text-secondary)}.auto-install{margin:20px 0}.auto-install p{margin-bottom:16px;color:var(--text-secondary)}.install-button{font-size:16px;padding:12px 24px;min-width:150px;display:inline-flex;align-items:center;gap:8px;justify-content:center}.install-note{font-size:14px;color:var(--text-tertiary);margin-top:12px;font-style:italic}.install-benefits{background:var(--color-success-light);border:1px solid var(--border-success);border-radius:12px;padding:20px;margin:24px 0;text-align:left}.install-benefits h4{margin:0 0 12px;color:var(--text-success);font-size:16px}.install-benefits ul{list-style:none;padding:0;margin:0}.install-benefits li{padding:4px 0;color:var(--text-success);font-size:14px}@media (max-width: 768px){.install-prompt-content{margin:20px;max-height:90vh;overflow-y:auto}.install-prompt-body{padding:16px}.install-icon{font-size:40px}.ios-instructions{padding:16px}.install-steps li{padding:8px 0}.step-icon{font-size:18px}}@supports (-webkit-touch-callout: none){.install-prompt-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.config-button{border-radius:4px!important;width:auto!important;height:auto!important;padding:8px 16px!important;aspect-ratio:unset!important;-webkit-appearance:none!important;appearance:none!important}}.trigger-button.error{background:var(--status-error);cursor:pointer;animation:pulse-error 2s ease-in-out infinite}.trigger-button.loading{background:var(--color-gray);cursor:not-allowed;animation:pulse 1.5s ease-in-out infinite}.trigger-button:hover:not(:disabled):not(.checkingNetwork):not(.triggering):not(.waitingForRelayClose){transform:scale(1.05);transition:transform .2s ease}.trigger-button.ready:hover{background:var(--color-primary-hover);transform:scale(1.05)}.trigger-button.noNetwork:hover,.trigger-button.timeout:hover{background:var(--color-warning-hover);transform:scale(1.05)}.trigger-button.error:hover{background:var(--color-error-hover);transform:scale(1.05)}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}@keyframes pulse-blue{0%{opacity:1;box-shadow:0 4px 20px var(--shadow-light)}50%{opacity:.7;box-shadow:0 4px 30px var(--shadow-heavy)}to{opacity:1;box-shadow:0 4px 20px var(--shadow-light)}}@keyframes pulse-warning{0%{opacity:1;transform:scale(1)}25%{opacity:.8;transform:scale(.98)}50%{opacity:.6;transform:scale(.96)}75%{opacity:.8;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes pulse-action{0%{opacity:1;transform:scale(1);box-shadow:0 4px 20px var(--shadow-medium)}50%{opacity:.8;transform:scale(1.02);box-shadow:0 6px 25px var(--shadow-heavy)}to{opacity:1;transform:scale(1);box-shadow:0 4px 20px var(--shadow-medium)}}@keyframes pulse-relay{0%{opacity:1;box-shadow:0 4px 20px var(--shadow-light)}33%{opacity:.8;box-shadow:0 4px 25px var(--shadow-medium)}66%{opacity:.9;box-shadow:0 4px 30px var(--shadow-medium)}to{opacity:1;box-shadow:0 4px 20px var(--shadow-light)}}@keyframes fade-warning{0%{opacity:1}20%{opacity:.7}40%{opacity:.5}60%{opacity:.7}80%{opacity:.9}to{opacity:1}}@keyframes pulse-error{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.error-message{display:block;color:var(--text-error);font-size:14px;margin-top:12px;text-align:center;background:var(--bg-secondary);padding:8px 16px;border-radius:4px;border:1px solid var(--border-error)}.modal-backdrop{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:var(--bg-modal);border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px var(--shadow-medium)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-primary)}.modal-header h2{margin:0;font-size:24px;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:24px}.config-section{margin-bottom:32px}.config-section:last-child{margin-bottom:0}.config-section h3{margin:0 0 16px;font-size:20px;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--color-primary);padding-bottom:8px}.form-group{margin-bottom:16px}.form-group input{width:100%;padding:12px 16px;border:2px solid var(--form-border);border-radius:8px;font-size:16px;transition:border-color .2s ease;box-sizing:border-box;background:var(--form-bg);color:var(--form-text)}.form-group input:focus{outline:none;border-color:var(--form-focus)}.form-group input.error{border-color:var(--form-error)}.error-message{display:block;color:#f44336;font-size:12px;margin-top:4px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid var(--border-primary)}.btn-primary,.btn-secondary{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:80px}.btn-primary{background:var(--color-primary);color:var(--text-white)}.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.btn-secondary{background:var(--bg-button);color:var(--text-secondary);border:1px solid var(--border-primary)}.btn-secondary:hover{background:var(--bg-secondary);color:var(--text-primary)}.tab-navigation{display:flex;border-bottom:2px solid var(--border-primary);margin-bottom:24px;gap:2px}.tab-button{flex:1;padding:12px 20px;border:none;background:var(--bg-button);color:var(--text-secondary);font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:8px 8px 0 0}.tab-button:hover{background:var(--bg-secondary);color:var(--text-primary)}.tab-button.active{background:var(--color-primary);color:var(--text-white);font-weight:600}.tab-button:disabled{opacity:.6;cursor:not-allowed}.connection-test{margin-top:20px;padding:16px;background:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--border-primary)}.section-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary);display:block}.reachability-status{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:16px;font-size:12px;font-weight:500;background:var(--bg-secondary);border:1px solid var(--border-primary)}.status-text{font-weight:500}@keyframes pulse-green{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.btn-test{padding:10px 18px;border:2px solid var(--color-primary);background:transparent;color:var(--color-primary);border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:140px;display:flex;align-items:center;justify-content:center;gap:8px}.btn-test:hover:not(:disabled){background:var(--color-primary);color:var(--text-white);transform:translateY(-1px)}.btn-test:disabled{opacity:.6;cursor:not-allowed}.btn-test.testing{border-color:var(--color-warning);color:var(--color-warning)}.btn-test.testing:hover{background:var(--color-warning);color:var(--text-white)}.test-spinner{width:14px;height:14px;border:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.connection-result{font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:4px;background:var(--bg-secondary)}.connection-result.success{color:var(--text-success);background:var(--color-success-light);border:1px solid var(--color-success)}.connection-result.error{color:var(--text-error);background:var(--bg-tertiary);border:1px solid var(--color-error)}.result-icon{font-weight:700;font-size:16px}.connection-testing{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);font-style:italic}.connection-hint{font-size:12px;color:var(--text-tertiary);font-style:italic;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:4px}.checkbox-group{margin-bottom:20px}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-weight:400;margin-bottom:0}.checkbox-label input[type=checkbox]{width:auto;margin-right:8px;margin-bottom:0;cursor:pointer}.checkbox-text{color:var(--text-secondary);font-size:14px}.checkbox-label:hover .checkbox-text{color:var(--text-primary)}.adapter-help-text{font-size:12px;color:var(--text-tertiary);margin-top:4px;margin-left:20px;font-style:italic}.radio-group{margin-bottom:20px}.radio-group fieldset{border:none;margin:0;padding:0}.radio-group legend{font-weight:500;color:var(--text-secondary);font-size:14px;margin-bottom:12px;padding:0}.radio-label{display:flex;align-items:flex-start;cursor:pointer;margin-bottom:12px;padding:12px;border-radius:8px;border:1px solid var(--border-primary);transition:all .2s ease;background:var(--bg-tertiary)}.radio-label:hover{border-color:var(--color-primary);background:var(--bg-secondary)}.radio-label:has(input:checked){border-color:var(--color-primary);background:var(--color-success-light)}.radio-label input[type=radio]{width:auto;margin:4px 12px 0 0;cursor:pointer;flex-shrink:0}.radio-text{display:flex;flex-direction:column;gap:4px;flex:1}.radio-text strong{color:var(--text-primary);font-size:14px;font-weight:500}.radio-description{color:var(--text-secondary);font-size:12px;line-height:1.3}.radio-label:hover .radio-text strong{color:var(--color-primary-dark)}.radio-label:has(input:checked) .radio-text strong{color:var(--color-primary-dark)}.theme-description{margin-bottom:20px}.theme-help-text{color:var(--text-secondary);font-size:14px;font-style:italic}.theme-preview{margin-top:20px;padding:12px;background:var(--bg-secondary);border-radius:6px;border-left:4px solid var(--color-primary)}.preview-label{font-weight:500;color:var(--text-secondary);font-size:14px}.preview-value{color:var(--color-primary-dark);font-weight:500;font-size:14px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text-secondary);font-size:14px}.form-group input[type=password]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.form-group label:after{content:""}.config-section h3{margin:0 0 20px;font-size:18px;font-weight:600;color:#333;display:none}@media (max-height: 400px),(max-width: 480px){body{overflow-y:auto}.container{height:auto;min-height:100dvh;overflow-y:auto;justify-content:flex-start;padding-top:max(calc(env(safe-area-inset-top) + 80px),100px)}.main-content{flex:1;justify-content:flex-start;padding:20px 10px}}@media (max-width: 768px){.container{padding:max(env(safe-area-inset-top),16px) 16px max(env(safe-area-inset-bottom),16px) max(env(safe-area-inset-left),16px)}.trigger-button{width:min(180px,50vw);min-width:120px;max-width:200px}.config-button{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));width:52px;height:52px;font-size:22px}.modal-backdrop{padding:10px}.modal-content{max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:16px}.config-section{margin-bottom:24px}.modal-footer{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%;margin-bottom:8px}.btn-primary{margin-bottom:0}.tab-button{font-size:14px;padding:10px 16px}.connection-test{flex-direction:column;align-items:stretch}.btn-test{width:100%;margin-bottom:8px}.connection-result,.connection-hint{text-align:center}}.config-button:focus-visible{outline:none;box-shadow:0 4px 20px var(--shadow-medium),0 0 0 3px var(--shadow-light)}@media (prefers-contrast: more){.config-button{border:2px solid var(--text-white)}.config-button.has-issues{border-color:var(--text-primary)}}@media (prefers-reduced-motion: reduce){.config-button{transition:none}.config-button:hover{transform:none}.config-button.has-issues{animation:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status-label{font-weight:500;color:var(--text-secondary);min-width:60px}.queue-indicator{color:var(--color-warning);font-weight:500;background:var(--bg-tertiary);padding:4px 8px;border-radius:4px;font-size:12px}.install-button{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:var(--text-white);border:none;padding:10px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px var(--shadow-light)}.install-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-medium)}.install-indicator{color:var(--color-success);font-weight:500}.offline-queue-notice{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--color-warning);padding:12px;border-radius:8px;margin:12px 0;text-align:center;font-size:14px}.sw-update-notification{position:fixed;top:20px;right:20px;background:var(--color-secondary);color:var(--text-white);padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px var(--shadow-light);z-index:1000;animation:slideInRight .3s ease}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (display-mode: standalone){.install-button{display:none}}@media (display-mode: fullscreen),(display-mode: standalone),(display-mode: minimal-ui){.pwa-indicators:before{content:"🏠 Running as installed app";font-size:12px;color:#4caf50;background:#4caf501a;padding:4px 8px;border-radius:4px;margin-bottom:8px}}.trigger-button.offline{background:var(--status-offline);color:var(--text-white);cursor:not-allowed;position:relative}.trigger-button.offline:after{content:"📱 Queued";position:absolute;bottom:-30px;left:50%;transform:translate(-50%);font-size:12px;background:var(--color-warning);color:var(--text-white);padding:4px 8px;border-radius:4px;white-space:nowrap}@media (max-width: 768px){.pwa-indicators{flex-direction:column;gap:8px}.install-button{width:100%;padding:12px;font-size:16px}.offline-status,.queue-status,.install-status{justify-content:center;text-align:center}.sw-update-notification{left:20px;right:20px;top:10px}}
