* { margin: 0; padding: 0; box-sizing: border-box; } html, body { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; background-color: #f0f0f0; font-family: Arial, sans-serif; } #app { width: 400px; background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); overflow: hidden; } /* Панель вкладок */ .tabs { display: flex; background: #e9e9e9; } .tab-button { flex: 1; padding: 12px; background: transparent; border: none; cursor: pointer; font-size: 16px; transition: background 0.2s; } .tab-button:hover { background: #dcdcdc; } .tab-button.active { background: white; border-bottom: 3px solid #3498db; font-weight: bold; } /* Содержимое вкладок */ .tab-content { display: none; padding: 20px; } .tab-content.active { display: block; } /* Вертикально расположенные кнопки */ .buttons-vertical { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; } .action-button { padding: 12px; font-size: 16px; cursor: pointer; border: 1px solid #bbb; border-radius: 6px; background-color: #f8f8f8; transition: background-color 0.2s, border-color 0.2s; } .action-button:hover { background-color: #e2e6ea; border-color: #999; } .close-button { background-color: #e74c3c; color: white; border-color: #c0392b; } .close-button:hover { background-color: #c0392b; } /* Панель частоты */ #frequency-panel { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 6px; margin-bottom: 10px; } #frequency-label { font-weight: bold; color: #555; } #frequency-value { font-size: 18px; color: #2c3e50; } /* Панель статуса */ #status-panel { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 6px; } .indicator { width: 16px; height: 16px; border-radius: 50%; display: inline-block; } .indicator-red { background-color: #e74c3c; } .indicator-green { background-color: #2ecc71; } #status-text { font-size: 16px; color: #333; } /* Модальное окно */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); display: flex; justify-content: center; align-items: center; z-index: 100; } .modal.hidden { display: none; } .modal-content { background: white; padding: 20px; border-radius: 8px; width: 300px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); position: relative; } .close-modal { position: absolute; top: 10px; right: 15px; font-size: 22px; cursor: pointer; color: #777; } .close-modal:hover { color: #333; } .modal-content h3 { margin-bottom: 15px; text-align: center; } .freq-input-group { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 15px; } .freq-btn { width: 40px; height: 40px; font-size: 20px; background: #3498db; color: white; border: none; border-radius: 4px; cursor: pointer; transition: background 0.2s; } .freq-btn:hover { background: #2980b9; } #freq-input { width: 100px; padding: 8px; font-size: 18px; text-align: center; border: 1px solid #ccc; border-radius: 4px; } #btn-set-freq { display: block; width: 100%; margin-top: 10px; } .error-msg { color: #e74c3c; margin-top: 8px; text-align: center; font-size: 14px; } .error-msg.hidden { display: none; }