:root{--bg: #fafaf8;--surface: #ffffff;--ink: #1a1a1a;--muted: #6f6f6a;--line: #e3e3df;--line-strong: #c9c9c4;--accent: #d81f26;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}.app{max-width:1080px;margin:0 auto;padding:0 24px;min-height:100vh;display:flex;flex-direction:column}main{flex:1}.site-header{display:flex;align-items:baseline;gap:16px;padding:28px 0 20px;border-bottom:1px solid var(--ink);margin-bottom:28px}.wordmark{font-size:18px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}.wordmark-ring{width:12px;height:12px;border:3px solid var(--accent);border-radius:50%;display:inline-block}.site-header-note{font-size:12px;color:var(--muted);letter-spacing:.04em}.site-nav{margin-left:auto;display:flex;align-items:baseline;gap:16px;font-size:13px}.site-nav a:hover{color:var(--accent)}.site-nav-user{color:var(--muted)}.site-footer{border-top:1px solid var(--line);margin-top:64px;padding:20px 0 32px;font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.status-note{color:var(--muted);padding:32px 0}.status-note a{text-decoration:underline}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:28px}.filter-bar input,.filter-bar select{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:2px;padding:8px 10px}.filter-bar input:focus-visible,.filter-bar select:focus-visible,.filter-bar button:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.filter-search{flex:1 1 220px;min-width:160px}.filter-clear{font:inherit;font-size:13px;background:none;border:none;color:var(--muted);text-decoration:underline;cursor:pointer;padding:8px 4px}.filter-clear:hover{color:var(--accent)}.filter-count{margin-left:auto;font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums}.recipe-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.recipe-card{background:var(--surface);border:1px solid var(--line);border-radius:2px;transition:border-color .12s ease}.recipe-card:hover{border-color:var(--ink)}.recipe-card a{display:block;height:100%}.recipe-card-media{aspect-ratio:3 / 2;background:#f0f0ec;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden}.recipe-card-media img{width:100%;height:100%;object-fit:cover;display:block}.recipe-card-placeholder{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--line-strong);font-weight:600}.recipe-card-body{padding:14px 16px 16px}.recipe-card-body h2{font-size:16px;font-weight:650;margin:0 0 4px;line-height:1.3}.recipe-card-meta{margin:0;font-size:12px;color:var(--muted);letter-spacing:.04em}.recipe-card-author{margin:8px 0 0;font-size:12px;color:var(--muted)}.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:36px;font-size:14px;font-variant-numeric:tabular-nums}.pager button{font:inherit;font-size:13px;background:none;border:1px solid var(--line-strong);border-radius:2px;padding:7px 14px;cursor:pointer}.pager button:hover:not(:disabled){border-color:var(--ink)}.pager button:disabled{opacity:.4;cursor:default}.recipe-detail{max-width:760px}.back-link{margin:0 0 24px;font-size:13px}.back-link a{color:var(--muted)}.back-link a:hover{color:var(--accent)}.eyebrow{margin:0 0 6px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.recipe-detail-header h1{margin:0 0 12px;font-size:32px;font-weight:700;letter-spacing:-.01em;line-height:1.15}.recipe-detail-description{margin:0 0 12px;font-size:17px;color:#3d3d38;max-width:60ch}.recipe-detail-credit{margin:0;font-size:13px;color:var(--muted)}.recipe-detail-credit a{text-decoration:underline}.recipe-detail-credit a:hover{color:var(--accent)}.recipe-detail-images{display:flex;gap:16px;margin:28px 0 0}.recipe-detail-images figure{margin:0;flex:1 1 0;min-width:0}.recipe-detail-images img{width:100%;display:block;border:1px solid var(--line)}.recipe-detail-images figcaption{font-size:12px;color:var(--muted);margin-top:6px}.spec-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px 40px;margin-top:36px;padding-top:28px;border-top:1px solid var(--ink)}.spec-section h2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;margin:0 0 12px}.spec-list{margin:0}.spec-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.spec-row dt{color:var(--muted)}.spec-row dd{margin:0;font-weight:600;text-align:right}.spec-row dd.numeric{font-variant-numeric:tabular-nums}.recipe-detail-dates{margin-top:36px;font-size:12px;color:var(--muted)}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.field input,.field select,.field textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:2px;padding:8px 10px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.btn{font:inherit;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--bg);border:1px solid var(--ink);border-radius:2px;padding:10px 22px;cursor:pointer;align-self:flex-start}.btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.link-button{font:inherit;font-size:inherit;background:none;border:none;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer}.link-button:hover,.link-button.danger:hover{color:var(--accent)}.form-error,.form-errors{color:var(--accent);font-size:13px;margin:0}.form-errors{padding-left:18px}.form-hint,.form-notice{font-size:13px;color:var(--muted);margin:0}.form-notice{color:var(--ink)}.auth-card{max-width:380px;margin:24px auto 0}.auth-card h1{font-size:22px;margin:0 0 20px}.auth-card-alt{margin-top:20px;font-size:13px;color:var(--muted)}.auth-card-alt a{text-decoration:underline}.page-title{font-size:24px;margin:0 0 24px}.admin-section{margin-bottom:48px}.admin-section>h2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:8px;margin:0 0 20px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 18px}.form-grid-compact{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.field-wide{grid-column:1 / -1}.admin-form-subhead{font-size:13px;font-weight:700;margin:8px 0 0}.form-checks{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:14px}.form-checks label{display:flex;align-items:center;gap:8px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:6px 12px 6px 0;border-bottom:1px solid var(--line-strong)}.admin-table td{padding:9px 12px 9px 0;border-bottom:1px solid var(--line)}.admin-table td a:hover{color:var(--accent)}.upload-label{font-size:13px}@media(max-width:640px){.app{padding:0 16px}.site-header{flex-wrap:wrap;row-gap:2px;padding:20px 0 14px;margin-bottom:20px}.site-header-note{display:none}.site-nav{margin-left:auto}.filter-bar input,.filter-bar select,.field input,.field select,.field textarea,.btn,.pager button{font-size:16px;min-height:44px}.filter-search{flex-basis:100%}.filter-bar select{flex:1 1 0;min-width:0}.filter-count{margin-left:0;width:100%}.recipe-grid{gap:12px}.recipe-detail-header h1{font-size:26px}.recipe-detail-images{flex-direction:column}.spec-columns{gap:24px}.form-grid,.form-grid-compact{grid-template-columns:repeat(2,1fr)}.btn{align-self:stretch;text-align:center}}
