/* Общие сбросы */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #f0f4f8 0%, #ffffff 100%);
    color: #333;
}


/* Карточка общего вида */
.card {
    background: #fff;
    text-align: center;
    padding: 2.5rem 3rem;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.1);
    max-width: 500px;
    width: 90%;
    margin: 1rem;
}

/* Специфические стили */
.feedback-card {
    padding: 2rem;
}

/* feedback description spacing and link styling */
.feedback-desc {
    margin-bottom: 1rem;
    font-size: 0.95rem;
    color: #555;
}

.feedback-desc a {
    text-decoration: none;
    color: #6baaad;
    font-weight: 600;
}

h1 {
    color: #2c3e50;
    margin-bottom: 1rem;
    font-size: 2rem;
}

textarea {
    width: 100%;
    height: 130px;
    padding: 15px;
    border: 1px solid #d2d2d7;
    border-radius: 12px;
    font-size: 16px;
    resize: none;
    outline: none;
    transition: border-color 0.3s ease;
    background: #fafafa;
}
textarea:focus { border-color: #0071e3; background: #fff; }

button {
    background-color: #6baaad; /* soft teal-blue */
    color: #fff;
    border: 1px solid #5a99a0;
    padding: 1.25rem 3rem;
    font-size: 1.25rem;
    border-radius: 50px;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.1s ease;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    margin: 0.5rem;
}
button:hover:not(:disabled) {
    background-color: #5a99a0;
}
button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background-color: #cdd6df;
}
button.hangup { background-color: #e07474; }
button.unmute { background-color: #74a074; }

.status-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: 10px;
    margin: 1rem 0;
    font-weight: 500;
    font-size: 0.95rem;
}
.status-indicator.available { background: #d4edda; color: #155724; }
.status-indicator.busy      { background: #fff3cd; color: #856404; }
.status-indicator.offline   { background: #f8d7da; color: #721c24; }

.status-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    animation: pulse 2s infinite;
}
.status-dot.available { background: #28a745; }
.status-dot.busy      { background: #ffc107; }
.status-dot.offline   { background: #dc3545; }

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.5; }
}

#callStatus {
    padding: 0.75rem;
    margin: 1rem 0;
    border-radius: 10px;
    font-weight: 500;
    font-size: 0.95rem;
}
#callStatus.connecting { background: #fff3cd; color: #856404; }
#callStatus.ready      { background: #d4edda; color: #155724; }
#callStatus.error      { background: #f8d7da; color: #721c24; }
#callStatus.calling    { background: #d1ecf1; color: #0c5460; }

.alert {
    padding: 12px;
    margin-bottom: 20px;
    border-radius: 10px;
    font-size: 14px;
}
.alert-success { background: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; }
.alert-error  { background: #ffebee; color: #c62828; border: 1px solid #ffcdd2; }
.hidden { display: none !important; }

.warning {
    background: #fff3cd;
    color: #856404;
    padding: 1rem;
    border-radius: 10px;
    margin-top: 1rem;
    font-size: 0.85rem;
}

.session-id {
    font-size: 0.7rem;
    color: #999;
    margin-top: 1rem;
}

audio { width: 0; height: 0; }
