:root{--ink:#18312a;--muted:#60716b;--green:#2d6a4f;--lime:#d8f3dc;--gold:#f2b544;--paper:#f4f7f2;--white:#fff;--line:#d5dfd8;--shadow:0 12px 35px #18312a18}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,sans-serif}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px clamp(18px,5vw,64px);color:white;background:linear-gradient(120deg,#18312a,#2d6a4f)}header h1,header p{margin:0}header h1{font-size:clamp(1.8rem,4vw,3.4rem)}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-weight:900;font-size:.76rem;color:#b7e4c7;margin-bottom:7px!important}.admin-link{padding:10px 13px;border:1px solid #ffffff66;border-radius:999px;color:white;text-decoration:none;font-weight:800}main{width:min(1160px,calc(100% - 28px));margin:22px auto 50px}.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-bottom:18px}#map,.intro,.card{border:1px solid var(--line);border-radius:16px;background:var(--white);box-shadow:var(--shadow)}#map{min-height:390px}.intro,.card{padding:22px}.intro h2,.card h2{margin-top:0}.score{display:flex;align-items:baseline;gap:9px;margin:25px 0}.score strong{font-size:3.5rem;color:var(--green)}.score span{font-weight:900}.fine,small,.card>p,#status{color:var(--muted)}form{display:grid;gap:10px}#profile,.entry-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}label{display:grid;gap:5px;font-size:.84rem;font-weight:800}input,select,button{min-height:42px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;background:white;color:var(--ink)}button{border-color:var(--green);background:var(--green);color:white;font-weight:900;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}details{margin-top:14px}summary{cursor:pointer;font-weight:800}#recover{grid-template-columns:1fr auto;margin-top:10px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.task{position:relative;padding:17px;border:1px solid var(--line);border-radius:12px;background:#fbfdfb}.task.done{background:#edf8ef;border-color:#95cba5}.task h3{padding-right:60px;margin:0 0 7px}.task p{color:var(--muted)}.pill{position:absolute;right:12px;top:12px;border-radius:999px;padding:4px 8px;background:#fff3cf;color:#765000;font-size:.75rem;font-weight:900}.task form{grid-template-columns:1fr}.task input[type=file]{height:auto}.entries{display:grid;gap:9px;margin-top:14px}.entry{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:10px}.entry strong,.entry small{display:block}.entry button{max-width:250px}.confirmed{color:#18713e!important;font-weight:900}.pending{color:#9a6400!important;font-weight:900}footer{text-align:center;padding:25px;color:var(--muted)}.admin{width:min(1280px,calc(100% - 28px))}.admin table{width:100%;border-collapse:collapse}.admin th,.admin td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}.admin details{padding:10px;border-bottom:1px solid var(--line)}#export{min-height:42px;display:grid;place-items:center;font-weight:800}@media(max-width:800px){.hero{grid-template-columns:1fr}#map{min-height:320px}#profile,.entry-form{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.entry{align-items:flex-start;flex-direction:column}.entry button{max-width:none;width:100%}header{align-items:flex-start}}

/* Phone-first refinements */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{overflow-wrap:anywhere}button,input,select{touch-action:manipulation}input[type=file]{max-width:100%}.admin-table,.admin .card{overflow-x:auto}
@media(max-width:600px){body{font-size:16px}header{padding:calc(16px + env(safe-area-inset-top)) 16px 16px;gap:10px}header h1{font-size:1.75rem;line-height:1.08}header>div>p:last-child{font-size:.92rem;margin-top:5px}.eyebrow{font-size:.68rem}.admin-link{flex:0 0 auto;padding:9px 11px;font-size:.8rem}main,.admin{width:100%;margin:0;padding:12px;padding-bottom:calc(30px + env(safe-area-inset-bottom))}.hero{gap:12px;margin-bottom:12px}#map{min-height:240px;height:42vh;max-height:310px;border-radius:12px}.intro,.card{padding:16px;border-radius:12px;box-shadow:0 7px 22px #18312a12}.card{margin-bottom:12px}.intro h2,.card h2{font-size:1.28rem;line-height:1.2}.score{margin:14px 0}.score strong{font-size:2.8rem}#profile,.entry-form,#recover{grid-template-columns:1fr;gap:12px}label{font-size:.9rem}input,select,button{width:100%;min-height:48px;font-size:16px;padding:11px 12px}.grid{gap:10px}.task{padding:15px}.task h3{font-size:1.05rem;line-height:1.25}.task p{line-height:1.45}.task form{gap:8px}.task input[type=file]{padding:8px}.pill{top:11px;right:10px}.entry{padding:13px}.entry small{margin-top:4px;line-height:1.4}summary{min-height:44px;display:flex;align-items:center}footer{padding:20px 16px calc(20px + env(safe-area-inset-bottom));font-size:.85rem}.leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important}.admin table{min-width:560px}}
@media(max-width:380px){header h1{font-size:1.5rem}.admin-link{font-size:.72rem;padding:8px}.intro,.card{padding:14px}.task h3{padding-right:54px}}


.raffle-tools{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfdfb}.raffle-tools button{width:auto}.raffle-tools p{margin:10px 0 0}
#exhibitor{grid-template-columns:minmax(0,1fr) auto}@media(max-width:600px){#exhibitor{grid-template-columns:1fr}}

.skip-link{position:fixed;left:12px;top:12px;z-index:10000;transform:translateY(-160%);border-radius:9px;padding:11px 14px;background:#fff;color:var(--ink);font-weight:900;box-shadow:var(--shadow)}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(a,button,input,select,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid #ffc857;outline-offset:3px}
.map-help{margin:8px 3px 0;color:var(--muted);font-size:.88rem;line-height:1.4}
.table-scroll{max-width:100%;overflow-x:auto}
.admin-link{text-align:center}
@media(max-width:600px){.hero>.intro{order:1}.hero>div:not(.intro){order:2}.raffle-tools button{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
