:root{color-scheme:light;--ink:#143f3b;--paper:#f7f6ef;--accent:#9b421d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1.05rem/1.65 system-ui,sans-serif}header,main,footer{max-width:1160px;margin:auto;padding:1.5rem}header{display:flex;justify-content:space-between;gap:1rem;align-items:center}nav{display:flex;flex-wrap:wrap;gap:1.5rem}.brand{font-weight:800;font-size:1.5rem;text-decoration:none}a{color:inherit;text-underline-offset:.2em}a:hover{color:var(--accent)}.notice{padding:.75rem 1.5rem;background:#e1ebe4;text-align:center}.hero{padding:2rem 0}.hero h1{font-size:clamp(2.5rem,7vw,4.8rem);line-height:1.1;max-width:850px;margin:.6rem 0 1.5rem}.eyebrow{color:var(--accent);font-weight:750;letter-spacing:.08em;font-size:.9rem}h1{line-height:1.2;font-size:2.4rem}h2{margin-top:2rem}.lead{font-size:1.3rem}.search{display:flex;align-items:end;flex-wrap:wrap;gap:1rem;margin:1.5rem 0}label{display:block;font-weight:650}input,select,button,.button{font:inherit;min-height:48px;border-radius:6px}input,select{max-width:100%;padding:.65rem;border:1px solid #617b70;background:white;color:var(--ink)}input[type=text]{width:340px}button,.button{border:0;background:var(--ink);color:white;padding:.65rem 1rem;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#245c51;color:white}.stalls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1.25rem}article{background:white;padding:1.5rem;border:1px solid #d5ded5;border-radius:12px}article h3{font-size:1.5rem;margin:.5rem 0}.muted{color:#53645d;font-size:.9rem}.subtle{padding:1.5rem;background:#e8eee5;border-radius:12px;margin:2rem 0}.subtle h2{margin-top:0}.check{display:flex;align-items:center;gap:.5rem}.check input{width:22px;height:22px;min-height:0}dt{font-weight:bold}dd{margin:0 0 1rem}li{padding:.35rem}figure{margin:0}figure img{max-width:100%;height:240px;object-fit:contain}footer{border-top:1px solid #ccd8cc;margin-top:3rem}.skip{position:absolute;top:-120px;left:10px;background:white;padding:1rem;z-index:5}.skip:focus{top:0}:focus-visible{outline:3px solid #b84f10;outline-offset:4px}[hidden]{display:none!important}@media(max-width:640px){header{align-items:start;flex-direction:column}main{padding:1rem}.search{display:block}.search>*{margin-bottom:1rem}input[type=text]{width:100%}}

/* DP-04: photo-led discovery; existing routes and search preserved. */
.results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.stall-card{padding:0;overflow:hidden}.stall-content{padding:1.3rem}.stall-content .button{width:100%;text-align:center}.photo-empty{min-height:260px;background:#e7ece5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem}.photo-empty span{font-size:3rem;color:#617b70}.photo-empty p{margin:.4rem}.stall-gallery figure{background:#e7ece5}.stall-gallery figure img{display:block;width:100%;height:260px;object-fit:contain}.stall-gallery figcaption{padding:.6rem 1rem;font-size:.95rem;overflow-wrap:anywhere}.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#eef2ec}.gallery-controls button{min-width:48px}.gallery-label{margin:0;padding:.5rem 1rem;background:#e7ece5;font-size:.8rem}.detail-gallery{max-width:760px;margin:1.5rem 0}.detail-gallery img{height:400px!important}.photo-form{padding:1.5rem;border:1px solid #ccd8cc;border-radius:12px;background:white}.photo-form>label{margin-top:1rem}.photo-form select{width:100%}.photo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.secondary{background:#e7ece5;color:var(--ink);border:1px solid #617b70}button:disabled{opacity:.5;cursor:not-allowed}#photo-preview figure{padding:1rem;border:1px solid #ccd8cc;border-radius:8px}#photo-preview img{width:100%;height:180px}#photo-preview input{width:100%}#photo-preview figcaption{overflow-wrap:anywhere}.hero{padding:1rem 0}.hero h1{font-size:clamp(2.6rem,6vw,4.4rem)}@media(max-width:640px){.photo-form{padding:1rem}.detail-gallery img{height:280px!important}.photo-actions>*{width:100%}.gallery-controls button{padding:.5rem}}

/* DP-07 SQL views */
.status-box{padding:1rem 1.25rem;border:1px solid #b9c8cf;border-radius:12px;background:#f3f8fa;margin:1rem 0;overflow-wrap:anywhere}
.status-box.success{border-color:#408c70;background:#eef8f2}
.status-box.error{border-color:#c48b83;background:#fff4f2}
.validation-summary-valid{display:none}
.sql-gallery{display:flex;gap:1rem;overflow-x:auto;padding:1rem;scroll-snap-type:x proximity}
.sql-gallery figure{margin:0;flex:0 0 min(100%,320px);scroll-snap-align:start}
.sql-gallery img{width:100%;height:240px;object-fit:contain;border-radius:10px;background:#f3f5f6}
.sql-gallery figcaption{padding:.6rem 0;overflow-wrap:anywhere}
.diagnostic{white-space:pre-wrap;overflow-wrap:anywhere;padding:1rem;border:1px solid #d1dbe0;border-radius:10px}
.delete-form{padding:.75rem 0;border-bottom:1px solid #d1dbe0}
.inline-form{display:inline;margin:0}
.caption-field{margin:.75rem 0}
#sql-preview img{max-width:100%;height:220px;object-fit:contain}
[hidden]{display:none!important}
