*{box-sizing:border-box}body{margin:var(--zero);background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--body);line-height:var(--leading)}main{max-width:var(--content);margin:auto;padding:var(--md)}.hero{padding:var(--lg) var(--zero) var(--md)}.eyebrow{display:inline-block;padding:var(--xs) var(--sm);border-radius:var(--pill);background:var(--accentSoft);color:var(--rust);font-size:var(--small);font-weight:var(--heavy)}h1{font-size:var(--title);line-height:var(--headingLeading);letter-spacing:var(--tracking);margin:var(--md) var(--zero) var(--sm)}h2{font-size:var(--large);line-height:var(--headingLeading);margin:var(--lg) var(--zero) var(--xs)}h3{font-size:var(--body)}p{margin:var(--xs) var(--zero)}.muted,.hint,footer{color:var(--muted)}.hint{font-size:var(--small);text-align:center;margin-top:var(--xs)}.details{background:var(--soft);padding:var(--sm);border-radius:var(--radius);margin-top:var(--md);overflow-wrap:anywhere}.details p{white-space:pre-line}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:var(--touch);border:var(--border) solid var(--line);border-radius:var(--sm);padding:var(--sm);font-weight:var(--heavy);transition:background var(--motion) ease,transform var(--motion) ease}button:disabled{cursor:wait;opacity:var(--disabledOpacity)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focusWidth) solid var(--sage);outline-offset:var(--focusOffset)}.primary{background:var(--rust);color:var(--white);border-color:var(--rust);width:100%}.primary:hover{background:var(--buttonHover)}.primary:active{background:var(--buttonActive)}.primary:disabled{background:var(--buttonDisabled)}.secondary{background:var(--paper);color:var(--ink)}.secondary:hover{background:var(--soft)}.secondary:active{background:var(--line)}.secondary:disabled{background:var(--soft)}.signup{margin-bottom:var(--md)}.signup button{display:flex;justify-content:center;gap:var(--sm)}.group{padding:var(--md);border:var(--border) solid var(--line);border-radius:var(--radius);margin-top:var(--sm);background:var(--soft)}.group.empty{background:var(--neededSoft)}.section-head,.group-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sm);flex-wrap:wrap}.group-heading h3{margin:var(--zero)}.count,.by,.badge{font-size:var(--small);color:var(--muted)}.badge{color:var(--sage);font-weight:var(--heavy)}.dish{padding-top:var(--sm);overflow-wrap:anywhere}.dish-name{font-weight:var(--heavy)}.dish-actions{display:flex;gap:var(--xs);margin-top:var(--xs)}.dish-actions button{font-size:var(--small)}.status{color:var(--sage)}.status:empty{display:none}.error{background:var(--accentSoft);color:var(--rust);padding:var(--sm);border-radius:var(--sm);overflow-wrap:anywhere}footer{font-size:var(--small);padding:var(--lg) var(--zero);line-height:var(--leading)}dialog{background:var(--paper);color:var(--ink);border:var(--border) solid var(--line);border-radius:var(--radius);padding:var(--md);width:calc(100% - var(--md));max-width:var(--content);max-height:calc(100dvh - var(--md));overflow:auto}dialog::backdrop{background:var(--backdrop)}dialog h2{margin:var(--sm) var(--zero)}label{display:block;font-weight:var(--heavy);margin:var(--md) var(--zero) var(--xs)}input,select,textarea{display:block;min-height:var(--touch);width:100%;min-width:var(--zero);border:var(--border) solid var(--line);border-radius:var(--sm);padding:var(--sm);background:var(--paper);color:var(--ink)}textarea{resize:vertical}form>.primary{margin-top:var(--md)}.actions{display:flex;gap:var(--sm);margin-top:var(--md)}.actions>*{flex:1}.inline{display:flex;gap:var(--xs);flex-wrap:wrap}.inline input{flex:1}#admin-panel{border-top:var(--border) solid var(--line);margin-top:var(--lg)}.category-row{border-bottom:var(--border) solid var(--line);padding:var(--sm) var(--zero)}.category-row .actions{flex-wrap:wrap}.category-row .actions>*{flex:auto}.just-added{animation:appear var(--motion) ease-out}@keyframes appear{from{transform:translateY(var(--xs));opacity:var(--zero)}to{transform:translateY(var(--zero));opacity:var(--fullOpacity)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}[hidden]{display:none!important}
#admin-indicator a{color:var(--sage);text-underline-offset:var(--focusOffset)}

.details-label{font-weight:var(--heavy);font-size:var(--small);color:var(--muted)}.details-label:not(:first-child){margin-top:var(--md)}
.map-link{display:inline-flex;align-items:center;min-height:var(--touch);font-weight:var(--heavy);color:var(--rust);text-decoration:underline;text-underline-offset:var(--focusOffset)}.map-link:hover{color:var(--buttonHover)}.map-link:active{color:var(--buttonActive)}.map-link:focus-visible{outline:var(--focusWidth) solid var(--sage);outline-offset:var(--focusOffset)}

.birthday-card{display:flex;align-items:center;gap:var(--sm);margin-top:var(--md);padding:var(--sm);border-radius:var(--radius);background:var(--accentSoft)}.birthday-note{margin:var(--zero);color:var(--ink);line-height:var(--leading)}.dad-photo{width:var(--portraitWidth);height:var(--portraitHeight);object-fit:cover;border-radius:var(--sm);flex-shrink:var(--zero)}.ranch-photo{display:block;width:var(--fullWidth);height:var(--photoHeight);object-fit:cover;border-radius:var(--radius);margin-bottom:var(--md)}
