*,*::before,*::after{box-sizing:border-box} [hidden]{display:none!important}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--stone);font-family:var(--font-sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,dl,dd{margin:0} h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.12;letter-spacing:-.025em}
a{color:inherit;text-decoration:none} button,input,select,textarea{font:inherit}button,a,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.6}img{display:block;max-width:100%}svg{width:24px;height:24px;flex-shrink:0}fieldset{border:0;padding:0;margin:0;min-width:0}button{border:0} :focus-visible{outline:2px solid var(--olive);outline-offset:4px}h2[tabindex]:focus{outline:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:8px;left:8px;transform:translateY(-150%);padding:12px;background:var(--bg)}.skip-link:focus{transform:none}
.btn{min-height:52px;padding:13px 20px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--radius-md);font-size:15px;font-weight:500;line-height:1.4;transition:background var(--duration),transform var(--duration),opacity var(--duration);border:1px solid transparent}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-secondary{background:transparent;border-color:var(--line-strong)}.btn-ghost{background:transparent;color:var(--stone-muted)}.btn-block{width:100%}.btn:active:not(:disabled){transform:scale(.98)}.btn svg{width:18px;height:18px}
.field{display:flex;flex-direction:column;gap:8px;margin-top:20px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.label-row,label,.field-label{font-size:13px}.optional{font-size:12px;color:var(--stone-muted);font-weight:400;margin-left:5px}.req{display:none}.input{width:100%;min-width:0;height:54px;padding:12px 15px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--stone);font-size:16px;transition:border-color var(--duration),box-shadow var(--duration)}.input::placeholder{color:#77796e}.input:focus{outline:0;border-color:var(--olive);box-shadow:0 0 0 3px rgba(95,106,78,.12)}.input[aria-invalid=true]{border-color:var(--danger)}.error-text{font-size:13px;color:var(--danger)}.error-text:empty{display:none}.toast{position:fixed;z-index:50;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,8px);padding:12px 18px;max-width:calc(100% - 32px);width:max-content;background:var(--stone);color:var(--bg);border-radius:18px;font-size:13px;opacity:0;pointer-events:none;transition:opacity var(--duration),transform var(--duration)}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
.phase-label{font-family:var(--font-display);font-size:16px;font-style:italic;color:var(--stone-muted)}.spinner{width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.photo-dialog{padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--stone);width:min(92vw,820px);max-height:90dvh}.photo-dialog::backdrop{background:rgba(28,28,26,.75)}.preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.preview-head p{font-size:13px;overflow-wrap:anywhere}.preview-close{min-width:44px;min-height:44px;background:var(--surface-2);border-radius:50%;font-size:24px}.photo-dialog img{width:100%;max-height:70dvh;object-fit:contain;border-radius:8px}body:has(dialog[open]){overflow:hidden}
@media(hover:hover){.btn-primary:hover{background:#50593e}.btn-secondary:hover,.btn-ghost:hover{background:var(--surface-2)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Compact visitor icon entry; full control styles load only when opened. */
.app-icon-appearance{font-size:.85rem;line-height:1.5;max-width:36rem;margin:1rem 0;color:inherit}.app-icon-appearance>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:.5rem;text-decoration:underline;text-underline-offset:4px}.dark-card .app-icon-appearance{margin:1.5rem auto;padding:0 1rem;color:#F7F4ED;width:100%}
