:root{--green: #2f5d50;--green-dark: #1d3f38;--red: #b43b35;--red-dark: #8e2d28;--blue: #244f78;--cream: #fbf1dc;--paper: #fffaf0;--white: #ffffff;--gold: #d99b3a;--ink: #28332f;--muted: #66736d;--line: #dfd1b9;--shadow: 0 18px 42px rgba(55, 39, 18, .16)}*{box-sizing:border-box}html{font-family:Georgia,Times New Roman,serif;background:var(--cream);color:var(--ink)}body{margin:0;min-height:100vh;background:linear-gradient(#fffaf0e0,#fffaf0eb),linear-gradient(135deg,#f8e2bd,#fdf7ea 46%,#d7e6dc)}body:has(.vote-toolbar){padding-bottom:118px}a{color:inherit}button,input,textarea{font:inherit}body.modal-open{overflow:hidden}.page{min-height:100vh;padding:34px 18px 56px}.vote-page{padding-bottom:130px}.shell{max-width:1040px;margin:0 auto}.hero{color:var(--green-dark);padding:28px 0 24px;text-align:left}.hero-with-image{position:relative;display:grid;align-items:end;min-height:clamp(380px,55vw,620px);margin:0 0 24px;overflow:hidden;padding:clamp(24px,5vw,54px);background:linear-gradient(180deg,#1d3f380a,#1d3f382e 42%,#102521e0),linear-gradient(90deg,#10252180,#10252138 46%,#10252114),url(/images/parade-vote-header.png) center / cover no-repeat;border:1px solid rgba(251,241,220,.34);border-radius:8px;box-shadow:var(--shadow)}.hero-copy{max-width:720px;color:var(--paper);text-shadow:0 2px 18px rgba(0,0,0,.42)}.kicker{display:inline-flex;align-items:center;color:#f0be64;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.78rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.hero h1{max-width:900px;margin:10px 0;font-size:clamp(2.25rem,8vw,5.9rem);line-height:.92;letter-spacing:0}.hero p{max-width:700px;margin:0;color:#fff2dc;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(1rem,2.3vw,1.2rem);line-height:1.55}.card{overflow:hidden;background:#fffaf0f5;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.vote-card{background:#fffaf0b8;box-shadow:none}.card-pad{padding:clamp(18px,4vw,38px)}.form{display:grid;gap:18px;max-width:560px}.state-message{display:grid;gap:8px;max-width:700px}.state-message h2{margin:0;color:var(--green-dark);font-size:clamp(1.8rem,5vw,3rem);line-height:1}.state-message p{margin:0;color:#43514b;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.05rem;line-height:1.55}.public-results{display:grid;gap:22px}.public-result-list{display:grid;gap:12px}.public-result-place{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);align-items:start;gap:16px;padding:14px;background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 18px #40301614}.public-result-rank{color:var(--red-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.public-result-floats{display:grid;gap:10px}.public-result-float{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:8px;border-radius:8px;cursor:pointer;transition:background-color .15s ease,transform .15s ease}.public-result-float:hover{background:#2f5d5014;transform:translateY(-1px)}.public-result-float img{width:112px;height:76px;object-fit:cover;border-radius:6px;background:#e6dcc8}.public-result-float strong{display:block;color:var(--green-dark);font-size:clamp(1.15rem,3vw,1.55rem);line-height:1.05}.label{display:grid;gap:8px;color:var(--green-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:850}.input{width:100%;padding:15px 16px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}.input:focus{outline:3px solid rgba(47,93,80,.18);border-color:var(--green)}.auth-page{display:grid;place-items:center}.auth-card{display:grid;gap:24px;width:min(100%,520px);padding:clamp(22px,4vw,38px);background:#fffaf0f7;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.auth-card.wide{width:min(100%,720px)}.auth-card h1{margin:8px 0;color:var(--green-dark);font-size:clamp(2.1rem,7vw,4rem);line-height:.95}.auth-card p{margin:0;color:#43514b;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}.auth-links{display:flex;flex-wrap:wrap;gap:14px 20px;color:var(--green-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800}.tenant-options{display:grid;gap:12px}.tenant-option{display:grid;gap:5px;width:100%;padding:15px 16px;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer}.tenant-option:hover,.tenant-option:focus-visible{outline:3px solid rgba(47,93,80,.18);border-color:var(--green)}.tenant-option strong{color:var(--green-dark);font-size:1.1rem}.tenant-option span{overflow-wrap:anywhere;color:var(--muted);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.84rem}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-panel{display:grid;gap:8px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:8px}.profile-panel span{color:var(--red-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.profile-panel strong{color:var(--green-dark);font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.05}.profile-panel p{margin:0;overflow-wrap:anywhere;color:var(--muted);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}.profile-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.textarea{min-height:96px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 20px;border:0;border-radius:8px;cursor:pointer;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:900;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.48;transform:none}.btn-primary{background:var(--red);color:var(--white);box-shadow:0 12px 24px #b43b353d}.btn-primary:not(:disabled):hover{background:var(--red-dark)}.btn-secondary{background:var(--green);color:var(--white);box-shadow:0 12px 24px #2f5d502e}.btn-secondary:hover{background:var(--green-dark)}.btn-ghost{background:#f1e2c9;color:var(--green-dark)}.btn-quiet{background:transparent;color:var(--green-dark);box-shadow:inset 0 0 0 1px #2f5d503d}.progress{display:flex;gap:10px;margin:18px 0 0}.dot{width:52px;height:8px;border-radius:999px;background:#2f5d5038}.dot.active{background:var(--gold)}.voter-summary{display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:8px 12px;margin-top:18px;padding:10px 12px;background:#fffaf0b8;border:1px solid rgba(47,93,80,.18);border-radius:8px;color:var(--green-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.95rem;box-shadow:0 10px 22px #37271214}.voter-summary[hidden]{display:none}.voter-summary-label{color:var(--red-dark);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.voter-summary strong{font-weight:900}.voter-summary span:last-child{color:#596861}.vote-hero{--rank-accent: #f0be64;display:grid;align-items:end;min-height:clamp(340px,46vw,520px);margin:0 0 24px;overflow:hidden;padding:clamp(24px,5vw,48px);color:var(--paper);background:linear-gradient(180deg,#1d3f380a,#1d3f382e 38%,#102521e6),linear-gradient(90deg,#1025218a,#1025213d 48%,#10252114),url(/images/vote-header-1st.png) center / cover no-repeat;border:1px solid rgba(251,241,220,.34);border-radius:8px;box-shadow:var(--shadow);text-shadow:0 2px 18px rgba(0,0,0,.42)}.vote-hero-rank-1{--rank-accent: #f0be64;background:linear-gradient(180deg,#1d3f380a,#1d3f382e 38%,#102521e6),linear-gradient(90deg,#1025218a,#1025213d 48%,#10252114),url(/images/vote-header-1st.png) center / cover no-repeat}.vote-hero-rank-2{--rank-accent: #d9dde2;background:linear-gradient(180deg,#1d3f3805,#1d3f381f 34%,#102521d6),linear-gradient(90deg,#1025217a,#1025212e 48%,#1025210f),url(/images/vote-header-2nd.png) center / cover no-repeat}.vote-hero-rank-3{--rank-accent: #d29a67;background:linear-gradient(180deg,#1d3f380a,#1d3f3829 38%,#102521e0),linear-gradient(90deg,#10252180,#10252133 48%,#1025210f),url(/images/vote-header-3rd.png) center / cover no-repeat}.vote-hero .kicker{color:var(--rank-accent)}.vote-hero p{color:#fff2dc}.vote-hero .dot{background:#fffaf052;box-shadow:0 1px 8px #0000002e}.vote-hero .dot.active{background:var(--rank-accent)}.vote-hero .voter-summary{text-shadow:none}.review-hero{display:grid;align-items:end;min-height:clamp(340px,46vw,520px);margin:0 0 24px;overflow:hidden;padding:clamp(24px,5vw,48px);color:var(--paper);background:linear-gradient(180deg,#1d3f380a,#1d3f382e 38%,#102521e6),linear-gradient(90deg,#1025218a,#1025213d 48%,#10252114),url(/images/review-header.png) center / cover no-repeat;border:1px solid rgba(251,241,220,.34);border-radius:8px;box-shadow:var(--shadow);text-shadow:0 2px 18px rgba(0,0,0,.42)}.review-hero .kicker{color:#f0be64}.review-hero p{color:#fff2dc}.review-hero .voter-summary{text-shadow:none}.float-list{display:grid;gap:18px}.float-card{display:grid;grid-template-columns:minmax(220px,42%) 1fr;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #4030161a;scroll-margin-bottom:190px}.float-card.selected{border-color:var(--green);box-shadow:0 0 0 4px #2f5d5029,0 14px 32px #40301624}.float-card img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover;background:#e6dcc8}.float-body{display:grid;align-content:center;gap:12px;padding:clamp(18px,4vw,32px)}.float-body h2{margin:0;color:var(--green-dark);font-size:clamp(1.55rem,4vw,2.6rem);line-height:1}.float-body .btn{justify-self:start;margin-top:6px}.float-detail-trigger{cursor:pointer}.modal[hidden]{display:none}.modal{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:#1d3f389e}.modal-panel{position:relative;z-index:1;display:grid;width:min(920px,100%);max-height:min(86vh,860px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 26px 70px #1d3f3857}.modal-close{position:absolute;top:12px;right:12px;z-index:2;min-height:40px;padding:9px 14px;border:0;border-radius:8px;background:#fffaf0f0;color:var(--green-dark);cursor:pointer;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:900}.modal-panel img{display:block;width:100%;max-height:480px;object-fit:cover;background:#e6dcc8}.modal-copy{display:grid;gap:12px;padding:clamp(20px,4vw,34px)}.modal-copy h2{margin:0;color:var(--green-dark);font-size:clamp(1.8rem,5vw,3.2rem);line-height:1}.modal-copy p{margin:0;color:#43514b;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.05rem;line-height:1.65}.vote-toolbar{position:fixed;z-index:10;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:flex;justify-content:center;max-width:1040px;margin:0 auto;padding:14px;background:#fffaf0f0;border:1px solid rgba(47,93,80,.22);border-radius:8px;box-shadow:0 18px 42px #28332f3d;backdrop-filter:blur(14px)}.vote-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.choice-list{display:grid;gap:14px;max-width:720px;margin:0 0 24px}.choice-row{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:16px;padding:12px;background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 18px #40301614}.choice-row img{width:88px;height:68px;object-fit:cover;border-radius:6px}.choice-copy{display:grid;gap:4px}.choice-rank{color:var(--red-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.choice-copy strong{color:var(--green-dark);font-size:clamp(1.2rem,3vw,1.6rem);line-height:1.05}.error,.success{margin-bottom:14px;padding:12px 14px;border-radius:8px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:800}.error{color:#8a1f2d;background:#fff0ef}.success{color:#15583e;background:#eaf7ed}.table-wrap{overflow-x:auto}.admin-form{display:grid;gap:16px;margin-bottom:28px;padding:18px;background:#ffffff94;border:1px solid var(--line);border-radius:8px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;align-items:end}.checkbox-label{display:flex;align-items:center;min-height:48px}.checkbox-label input{width:20px;height:20px;accent-color:var(--green)}.admin-float-list{display:grid;gap:16px;margin:0 0 34px}.admin-float-card{display:grid;grid-template-columns:210px 1fr;gap:18px;padding:14px;background:var(--white);border:1px solid var(--line);border-radius:8px}.admin-float-card.inactive{opacity:.68}.admin-float-media img{display:block;width:100%;height:160px;object-fit:cover;border-radius:6px;background:#e6dcc8}.admin-float-fields{display:grid;gap:14px}.admin-actions{display:flex;flex-wrap:wrap;gap:10px}.ballot-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 18px #40301614}.ballot-summary div{display:grid;gap:4px}.ballot-summary-label{color:var(--red-dark);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.ballot-summary strong{color:var(--green-dark);font-size:clamp(2rem,6vw,3.5rem);line-height:.95}table{width:100%;border-collapse:collapse;background:var(--white);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left}th{background:#efe0c5;color:var(--green-dark)}.rank-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:50%;background:var(--green);color:var(--white);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:900}.footer-note{max-width:720px;margin:20px 0 0;color:#596861;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.95rem}.site-credit{padding:0 18px 26px;color:#596861;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;text-align:center}.site-credit a{color:var(--red-dark);font-weight:900}@media(max-width:760px){body:has(.vote-toolbar){padding-bottom:220px}.page{padding:22px 12px 42px}.vote-page{padding-bottom:188px}.voter-summary{grid-template-columns:1fr;gap:4px}.vote-hero,.review-hero{min-height:480px;padding:22px}.hero-with-image{min-height:480px;padding:22px;background:linear-gradient(180deg,#1d3f3814,#1d3f383d 34%,#102521e6),linear-gradient(90deg,#10252170,#10252124),url(/images/parade-vote-header.png) 58% center / cover no-repeat}.float-card{grid-template-columns:1fr;scroll-margin-bottom:300px}.float-card img{min-height:220px;aspect-ratio:16 / 10}.float-body{margin:-18px 12px 12px;padding:18px;background:#fffaf0fa;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px #4030162e;position:relative}.float-body h2{font-size:clamp(1.45rem,8vw,2.15rem)}.float-body .btn{width:100%}.vote-toolbar{align-items:stretch}.vote-toolbar-actions{display:grid;grid-template-columns:1fr;width:100%}.public-result-place{grid-template-columns:1fr;align-items:start}.public-result-float{grid-template-columns:96px minmax(0,1fr)}.public-result-float img{width:96px;height:72px}.modal{padding:10px}.modal-panel{max-height:88vh}.modal-panel img{max-height:320px}.admin-form-grid,.admin-float-card{grid-template-columns:1fr}.ballot-summary{align-items:stretch;flex-direction:column}.admin-float-media img{height:220px}}
