/* Shared controls and overlays; page styles own their composition. */
html{background:var(--ink)}
body{font-size:16px;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}p{ text-wrap:pretty }
button,input,select,textarea{font-variant-numeric:tabular-nums}
.btn{border-radius:var(--radius-md);min-height:54px;padding:15px 22px;font-size:14px;letter-spacing:.01em;transition:background var(--motion-micro),border-color var(--motion-micro),box-shadow var(--motion-normal),transform var(--motion-micro) var(--ease-out)}
.btn-primary{box-shadow:inset 0 1px 0 #ffffff13}
.btn:active:not(:disabled){transform:translateY(1px) scale(.985)}
.btn:disabled{opacity:.55;transform:none}
.input{border-radius:var(--radius-md);min-height:56px;line-height:1.5;box-shadow:var(--shadow-low)}
.input:focus{border-color:var(--olive);box-shadow:0 0 0 3px #5f6a4e20}
.field{gap:9px}.field>label{font-size:12px;font-weight:500;letter-spacing:.015em}
:focus-visible{outline-width:2px;outline-offset:5px}
.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-medium);z-index:var(--z-toast)}
.photo-dialog{border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-overlay)}
dialog::backdrop{background:#161814a8;backdrop-filter:blur(var(--blur-overlay))}
@media(max-width:600px){.photo-dialog{width:100%;max-width:100%;margin:auto 0 0;border-radius:20px 20px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));max-height:92dvh}.photo-dialog img{max-height:65dvh}}
@media(prefers-reduced-motion:reduce){.btn:active:not(:disabled){transform:none}}
