:root {
    --bg: #0a1628;
    --primary: #1d9bf0;
    --accent: #00c896;
    --text: #ffffff;
    --muted: rgba(255,255,255,.65);
    --danger: #ff5c5c;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { width: 100%; height: 100%; overflow: hidden; background: var(--bg); color: var(--text); font-family: 'Segoe UI', system-ui, sans-serif; touch-action: manipulation; }

.kiosk-app { position: relative; width: 100vw; height: 100vh; }
#camera-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.55); }
.hidden { display: none !important; }

.screen.overlay {
    position: absolute; inset: 0; display: flex; flex-direction: column;
    align-items: center; justify-content: center; padding: 2rem; text-align: center;
    background: linear-gradient(180deg, rgba(10,22,40,.3) 0%, rgba(10,22,40,.85) 100%);
}

.brand h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin: 1rem 0 .5rem; }
.brand p { color: var(--muted); font-size: 1.25rem; }
.logo { font-size: 4rem; }
.hint { margin-top: 2rem; font-size: 1.2rem; color: var(--muted); max-width: 520px; }
.detection-status {
    margin-top: 1rem; font-size: 1rem; color: var(--accent);
    min-height: 1.5rem; padding: .5rem 1rem;
    background: rgba(0,200,150,.12); border-radius: 999px;
}
#btn-manual-start { margin-top: 1.5rem; }

.pulse-ring {
    width: 120px; height: 120px; border-radius: 50%; margin: 2rem auto;
    border: 3px solid var(--primary); animation: pulse 2s infinite;
}
@keyframes pulse {
    0% { transform: scale(.9); opacity: 1; }
    100% { transform: scale(1.3); opacity: 0; }
}

.status-panel { max-width: 800px; }
.ai-avatar {
    width: 100px; height: 100px; border-radius: 50%; margin: 0 auto 1.5rem;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; font-weight: 700; position: relative;
}
.ai-avatar .pulse {
    position: absolute; inset: -8px; border-radius: 50%;
    border: 2px solid var(--accent); animation: pulse 1.5s infinite;
}
#status-text { font-size: clamp(1.5rem, 4vw, 2.5rem); margin-bottom: .75rem; }
.subtitle { font-size: 1.1rem; color: var(--muted); line-height: 1.5; }

.confirm-bar { display: flex; gap: 1.5rem; margin-top: 2rem; }
.touch-btn {
    min-width: 160px; min-height: 72px; font-size: 1.5rem; font-weight: 700;
    border: none; border-radius: 20px; cursor: pointer; color: #fff;
}
.touch-btn.yes { background: var(--accent); }
.touch-btn.no { background: var(--danger); }

.phone-panel {
    background: rgba(15,30,55,.95); border-radius: 24px; padding: 2rem;
    border: 1px solid rgba(255,255,255,.1); max-width: 480px; width: 100%;
}
.phone-panel h2 { font-size: 1.75rem; margin-bottom: .5rem; }
.phone-note { color: var(--muted); margin-bottom: 1.5rem; }
.phone-display {
    font-size: 2rem; font-weight: 700; letter-spacing: .05em;
    padding: 1rem; background: rgba(0,0,0,.3); border-radius: 16px; margin-bottom: 1.5rem;
}
.phone-display.error { color: var(--danger); animation: shake .3s; }
@keyframes shake {
    0%,100% { transform: translateX(0); }
    25% { transform: translateX(-8px); }
    75% { transform: translateX(8px); }
}

.numpad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.numpad-key {
    min-height: 72px; font-size: 1.75rem; font-weight: 600;
    border: none; border-radius: 16px; background: rgba(255,255,255,.12);
    color: var(--text); cursor: pointer;
}
.numpad-key:active { background: var(--primary); }

@media (min-width: 1024px) {
    .numpad-key { min-height: 80px; font-size: 2rem; }
    .touch-btn { min-width: 200px; min-height: 80px; }
}
