body { font-family: 'Share Tech Mono', monospace; }
.glow { text-shadow: 0 0 10px rgba(34, 197, 94, 0.7); }
.glow-btn { box-shadow: 0 0 25px rgba(34, 197, 94, 0.3); }
.balance { text-wrap: balance; }

/* Full visible height on mobile (excludes browser bars) and room for notches / home indicator. */
.app-screen {
    height: 100vh;
    height: 100dvh;
    padding-top: max(1rem, env(safe-area-inset-top));
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
}

/* Prevent double-tap zoom on fast repeated taps, while still allowing pinch zoom. */
button, label { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }

button:focus-visible, input:focus-visible {
    outline: 2px solid #4ade80;
    outline-offset: 2px;
}

/* Custom terminal-style checkbox (the native input is visually hidden but still accessible). */
.check {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    border: 1px solid #166534;
    border-radius: 3px;
    background: #000;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color .15s, border-color .15s;
}
.peer:checked + .check {
    background: #22c55e;
    border-color: #22c55e;
}
.peer:checked + .check::after {
    content: '';
    width: 5px;
    height: 9px;
    border: solid #000;
    border-width: 0 2px 2px 0;
    transform: translateY(-1px) rotate(45deg);
}
.peer:focus-visible + .check {
    outline: 2px solid #4ade80;
    outline-offset: 2px;
}

/* Volume slider */
.vol {
    -webkit-appearance: none;
    appearance: none;
    height: 44px;
    background: transparent;
    cursor: pointer;
}
.vol::-webkit-slider-runnable-track {
    height: 6px;
    border-radius: 3px;
    background: linear-gradient(to right, #22c55e var(--fill), #14532d var(--fill));
}
.vol::-moz-range-track {
    height: 6px;
    border-radius: 3px;
    background: linear-gradient(to right, #22c55e var(--fill), #14532d var(--fill));
}
.vol::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    margin-top: -8px;
    border-radius: 50%;
    background: #000;
    border: 2px solid #4ade80;
    box-shadow: 0 0 8px rgba(74, 222, 128, .6);
}
.vol::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #000;
    border: 2px solid #4ade80;
    box-shadow: 0 0 8px rgba(74, 222, 128, .6);
}
.vol:focus-visible { outline: none; }
.vol:focus-visible::-webkit-slider-thumb { outline: 2px solid #4ade80; outline-offset: 2px; }
/* Long-press buttons: no text selection / iOS callout menu */
.no-callout {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}
/* Taps should never leave the browser's default (orange on some Android) focus ring; keyboard focus still shows ours. */
button:focus:not(:focus-visible), input:focus:not(:focus-visible) { outline: none; }