:root { --ink:#10241d; --felt:#0d5a3d; --felt-dark:#073c2a; --cream:#f5f0e5; --paper:#fffdf8; --gold:#d7a93d; --muted:#66736d; --line:#d8ddd6; --red:#a33c30; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
.site-header { height:76px; padding:0 clamp(20px,5vw,72px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(16,36,29,.13); background:rgba(255,253,248,.94); position:sticky; top:0; z-index:10; backdrop-filter:blur(14px); }
.brand { display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; letter-spacing:.08em; }
.brand strong { display:block; font-size:14px; }
.brand small { display:block; margin-top:2px; color:var(--muted); font-size:10px; letter-spacing:.03em; }
.brand-mark { width:42px; height:42px; position:relative; display:block; border:2px solid var(--gold); border-radius:8px 8px 20px 20px; background:var(--ink); transform:rotate(45deg); }
.brand-mark i { position:absolute; width:10px; height:10px; border-radius:50%; background:#f6e7b2; transform:rotate(-45deg); }
.brand-mark i:nth-child(1) { left:8px; top:8px; background:#d7a93d; }
.brand-mark i:nth-child(2) { right:8px; top:8px; background:#f5f0e5; }
.brand-mark i:nth-child(3) { left:14px; bottom:7px; background:#a33c30; }
nav { display:flex; gap:8px; }
.nav-link { border:0; background:transparent; padding:10px 14px; color:var(--muted); cursor:pointer; border-radius:99px; font-weight:700; }
.nav-link.active { background:var(--ink); color:white; }
.view { display:none; }
.active-view { display:block; }
.demo-banner { display:flex; justify-content:center; gap:14px; padding:10px 20px; color:#4d3a0e; background:#f6df9d; font-size:12px; }
.demo-banner strong { text-transform:uppercase; letter-spacing:.08em; }
.verified-banner { color:#e8f4ed; background:var(--felt-dark); }
.hero { min-height:560px; padding:clamp(72px,10vw,140px) clamp(22px,8vw,110px); color:white; background:linear-gradient(90deg,rgba(3,22,15,.95) 0%,rgba(3,32,21,.82) 46%,rgba(3,32,21,.18) 100%), url('assets/pool-hall-hero-v1.png') center/cover no-repeat; position:relative; overflow:hidden; }
.hero > * { position:relative; z-index:1; max-width:700px; }
.eyebrow { margin:0 0 14px; font-size:11px; font-weight:900; letter-spacing:.18em; color:var(--felt); }
.eyebrow.light { color:#e9cf8a; }
.hero .eyebrow { color:#e9cf8a; }
h1,h2,p { margin-top:0; }
.hero h1 { margin-bottom:22px; font:700 clamp(54px,8vw,100px)/.88 Georgia, "Times New Roman", serif; letter-spacing:-.055em; }
.hero h1 em { color:#f1d58d; font-weight:400; }
.hero-copy { max-width:520px; font-size:clamp(17px,2vw,22px); line-height:1.55; color:#dce8e1; }
.primary-action { display:inline-flex; gap:28px; align-items:center; margin-top:22px; padding:15px 19px; border:1px solid rgba(255,255,255,.35); color:white; text-decoration:none; font-weight:800; border-radius:4px; }
.primary-action span { color:#e9cf8a; }
.weekend-strip { padding:30px clamp(22px,8vw,110px); display:flex; justify-content:space-between; align-items:center; background:var(--cream); border-bottom:1px solid var(--line); }
.weekend-strip h2 { margin:0; font:700 30px Georgia,serif; }
.day-pills { display:flex; gap:10px; }
.day-pill { min-width:120px; padding:12px 18px; border:1px solid var(--line); background:white; text-align:left; cursor:pointer; border-radius:6px; }
.day-pill strong,.day-pill span { display:block; }
.day-pill span { margin-top:3px; color:var(--muted); font-size:12px; }
.content-section { padding:76px clamp(22px,8vw,110px); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:34px; }
.section-heading h2,.newsletter h2 { margin:0; font:700 clamp(36px,5vw,58px)/1 Georgia,serif; }
.section-heading > p { max-width:430px; margin:0; color:var(--muted); line-height:1.6; }
.state-grid { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.state-card { min-height:175px; padding:24px; text-align:left; background:transparent; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); cursor:pointer; transition:.2s ease; }
.state-card:hover { background:var(--felt); color:white; transform:translateY(-3px); }
.state-code { display:block; color:var(--gold); font-weight:900; font-size:12px; letter-spacing:.14em; }
.state-name { display:block; margin:35px 0 10px; font:700 24px Georgia,serif; }
.state-count { color:var(--muted); font-size:13px; }
.state-card:hover .state-count { color:#d9e7df; }
.tournament-section { background:#f7f5ef; }
.apa-section { background:#edf3ef; }
.calendar-card { overflow:hidden; border:1px solid #cbd8d0; border-radius:9px; background:white; box-shadow:0 14px 40px rgba(16,36,29,.06); }
.calendar-card-head { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 28px; color:white; background:var(--felt); }
.calendar-card-head h3 { margin:8px 0 4px; font:700 28px Georgia,serif; }
.calendar-card-head p { margin:0; color:#d8e8df; }
.calendar-card-head a { flex:none; padding:11px 14px; color:white; border:1px solid rgba(255,255,255,.4); border-radius:4px; text-decoration:none; font-weight:800; }
.source-badge { padding:4px 7px; color:var(--ink); background:#e9cf8a; border-radius:3px; font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.calendar-notice { display:grid; grid-template-columns:150px 1fr; gap:18px; padding:18px 28px; background:#fff8e3; border-bottom:1px solid #eadfbf; font-size:13px; line-height:1.5; }
.milestone-list { padding:8px 28px; }
.milestone { display:grid; grid-template-columns:90px 1.5fr 1fr 1fr; align-items:center; gap:18px; min-height:62px; border-bottom:1px solid var(--line); }
.milestone:last-child { border-bottom:0; }
.milestone > span:not(.milestone-status), .milestone small { color:var(--muted); }
.milestone-status { width:max-content; padding:5px 7px; border-radius:3px; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.milestone-status.completed { color:#5d625f; background:#e5e8e6; }
.milestone-status.watching { color:#4c3708; background:#f3d67c; }
.milestone-status.confirmed { color:white; background:var(--felt); }
.calendar-checked { margin:0; padding:0 28px 20px; color:var(--muted); font-size:11px; }
.coverage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.coverage-card { padding:24px; border:1px solid #cbd8d0; border-radius:9px; background:white; box-shadow:0 14px 40px rgba(16,36,29,.06); }
.coverage-card-head h3 { margin:10px 0 5px; font:700 24px Georgia,serif; color:var(--felt); }
.coverage-card-head p,.coverage-note { color:var(--muted); line-height:1.55; }
.coverage-note { min-height:66px; }
.coverage-regions { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 22px; }
.coverage-regions span { padding:6px 9px; border:1px solid #d8e1dc; border-radius:999px; background:#f5f8f6; font-size:11px; font-weight:750; }
.coverage-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:16px; border-top:1px solid #e3e9e5; }
.coverage-footer small { color:var(--muted); }
.coverage-footer a { color:var(--felt); font-weight:850; text-decoration:none; }
.section-heading.compact { align-items:center; }
.text-button { border:0; color:var(--felt); background:none; font-weight:800; cursor:pointer; }
.date-group { margin-bottom:44px; }
.date-heading { display:flex; align-items:center; gap:14px; margin:0 0 14px; font-size:14px; letter-spacing:.08em; text-transform:uppercase; }
.date-heading::after { content:""; height:1px; background:var(--line); flex:1; }
.event-card { width:100%; display:grid; grid-template-columns:90px 1.35fr 1fr 120px 34px; align-items:center; gap:20px; margin-bottom:10px; padding:20px; border:1px solid var(--line); background:white; text-align:left; cursor:pointer; border-radius:7px; transition:.2s ease; }
.event-card:hover { border-color:var(--felt); box-shadow:0 10px 25px rgba(20,55,43,.08); transform:translateY(-2px); }
.game-ball { width:56px; height:56px; border-radius:50%; display:grid; place-items:center; color:white; background:#1835a1; box-shadow:inset 0 0 0 6px rgba(255,255,255,.2); font:900 22px Georgia,serif; }
.event-main strong { display:block; font:700 21px Georgia,serif; }
.demo-tag { display:inline-block !important; width:max-content; margin:0 0 7px !important; padding:4px 7px; color:#4b3708 !important; background:#f4d77f; border-radius:3px; font:900 9px/1 sans-serif !important; letter-spacing:.1em; text-transform:uppercase; }
.verified-tag { display:inline-block !important; width:max-content; margin:0 0 7px !important; padding:4px 7px; color:#174532 !important; background:#dcece3; border-radius:3px; font:900 9px/1 sans-serif !important; letter-spacing:.09em; text-transform:uppercase; }
.event-main span,.event-place span,.event-price span { display:block; color:var(--muted); font-size:13px; margin-top:5px; }
.event-main .pro-entry { display:inline-block; width:max-content; margin-top:9px; padding:5px 8px; color:white; background:var(--felt); border-radius:3px; font-size:11px; font-weight:850; }
.event-place strong,.event-price strong { font-size:14px; }
.event-arrow { font-size:22px; color:var(--felt); }
.empty-state { padding:46px; text-align:center; border:1px dashed #bfc8c1; color:var(--muted); background:rgba(255,255,255,.6); }
.newsletter { padding:72px clamp(22px,8vw,110px); display:grid; grid-template-columns:1fr 1.15fr; gap:80px; color:white; background:var(--ink); }
.newsletter p { color:#c9d7d1; line-height:1.6; }
.newsletter form { padding:26px; border:1px solid rgba(255,255,255,.18); border-radius:8px; }
.newsletter label,.newsletter legend { font-size:12px; font-weight:800; letter-spacing:.05em; }
.email-row { display:flex; margin-top:8px; }
.email-row input { min-width:0; flex:1; padding:15px; border:0; border-radius:4px 0 0 4px; }
.email-row button { padding:15px 20px; color:var(--ink); background:var(--gold); border:0; border-radius:0 4px 4px 0; font-weight:900; cursor:pointer; }
fieldset { border:0; padding:20px 0 0; margin:0; }
.check-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.check-grid label { padding:8px 10px; border:1px solid rgba(255,255,255,.2); border-radius:4px; cursor:pointer; }
.check-grid input { accent-color:var(--gold); }
.form-message { min-height:24px; margin:14px 0 0; color:#e9cf8a !important; font-weight:700; }
.find-view { min-height:800px; padding:70px clamp(22px,8vw,110px); }
.find-header h1 { margin-bottom:14px; font:700 clamp(48px,7vw,82px)/1 Georgia,serif; }
.find-header > p:last-child { color:var(--muted); font-size:18px; }
.filter-panel { display:grid; grid-template-columns:2fr repeat(3,1fr) auto; align-items:end; gap:12px; margin:36px 0 24px; padding:20px; border:1px solid var(--line); background:var(--cream); }
.filter-panel label { color:var(--muted); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.filter-panel input,.filter-panel select { width:100%; margin-top:7px; padding:13px; border:1px solid #cdd4ce; background:white; color:var(--ink); }
.secondary-action { padding:14px 18px; border:1px solid var(--ink); background:transparent; font-weight:800; cursor:pointer; }
.result-summary { display:flex; justify-content:space-between; margin-bottom:16px; color:var(--muted); font-size:13px; }
.result-summary strong { color:var(--ink); }
dialog { width:min(640px,calc(100% - 24px)); border:0; border-radius:10px; padding:0; box-shadow:0 30px 100px rgba(0,0,0,.35); }
dialog::backdrop { background:rgba(5,20,15,.72); backdrop-filter:blur(4px); }
.dialog-close { position:absolute; top:16px; right:16px; width:38px; height:38px; border:0; border-radius:50%; background:var(--cream); font-size:24px; cursor:pointer; }
.detail-hero { padding:38px; color:white; background:var(--felt); }
.detail-hero .game-ball { margin-bottom:25px; }
.detail-hero h2 { margin:0 50px 6px 0; font:700 36px Georgia,serif; }
.detail-body { padding:30px 38px 38px; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.detail-item small { display:block; color:var(--muted); margin-bottom:5px; text-transform:uppercase; font-weight:900; letter-spacing:.08em; }
.detail-item strong { line-height:1.4; }
.detail-actions { display:flex; gap:10px; margin-top:30px; }
.detail-actions a { flex:1; padding:13px; text-align:center; text-decoration:none; font-weight:900; border-radius:4px; }
.source-action { color:white; background:var(--felt); }
.maps-action { color:var(--ink); border:1px solid var(--line); }
.correction-action { padding:12px 15px; border:1px solid #d8a9a1; border-radius:4px; color:#7a2f25; background:#fff6f4; font-weight:800; cursor:pointer; }
.verification { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.submit-view { padding:70px clamp(22px,8vw,110px); background:#f7f5ef; }
.submission-form { max-width:960px; margin:32px auto 70px; padding:30px; background:white; border:1px solid var(--line); border-radius:9px; box-shadow:0 16px 45px rgba(16,36,29,.07); }
.form-section { padding:0 0 28px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.form-section h2 { margin:0 0 18px; font:700 22px Georgia,serif; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid label,.correction-form label { display:grid; gap:7px; color:var(--muted); font-size:12px; font-weight:800; }
.form-grid .wide { grid-column:1/-1; }
.form-grid input,.form-grid select,.form-grid textarea,.correction-form input,.correction-form textarea { width:100%; padding:12px; border:1px solid var(--line); border-radius:4px; background:white; color:var(--ink); font:inherit; }
.consent { display:flex; align-items:flex-start; gap:9px; margin:0 0 20px; color:var(--muted); font-size:12px; }
.primary-submit { padding:13px 18px; border:0; border-radius:4px; color:white; background:var(--felt); font-weight:900; cursor:pointer; }
.local-admin { max-width:1100px; margin:0 auto; padding-top:30px; border-top:1px solid var(--line); }
.admin-note { margin:-12px 0 24px; color:var(--muted); font-size:12px; }
.admin-login { display:flex; max-width:520px; margin:0 0 22px; }
.admin-login input { flex:1; min-width:0; padding:11px; border:1px solid var(--line); border-radius:4px 0 0 4px; font:inherit; }
.admin-login button { padding:11px 14px; border:0; border-radius:0 4px 4px 0; color:white; background:var(--felt); font-weight:850; cursor:pointer; }
.queue-item { display:grid; grid-template-columns:1fr auto; gap:20px; margin-bottom:10px; padding:20px; border:1px solid var(--line); border-radius:7px; background:white; }
.queue-item h3 { margin:7px 0; font:700 19px Georgia,serif; }
.queue-item p,.queue-item small { color:var(--muted); }
.queue-type { padding:4px 7px; color:#4c3708; background:#f3d67c; border-radius:3px; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.queue-actions { display:flex; align-items:center; gap:7px; }
.queue-actions button { padding:9px 11px; border:1px solid var(--line); border-radius:4px; background:white; font-weight:800; cursor:pointer; }
.correction-form { width:min(560px,calc(100vw - 36px)); padding:34px; }
.correction-form h2 { margin:7px 0 6px; font:700 28px Georgia,serif; }
.correction-form > p:not(.eyebrow) { color:var(--muted); }
.correction-form label { margin:18px 0; }
footer { padding:40px clamp(22px,8vw,110px); display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; border-top:1px solid var(--line); }
.footer-brand { grid-row:span 2; }
footer p { margin:0; }
.fine-print { color:var(--muted); font-size:11px; }
.footer-contact { display:flex; align-items:center; gap:10px; font-size:12px; }
.footer-contact a { color:inherit; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.footer-contact span { color:var(--muted); }
@media (max-width:900px) { .hero::after { right:-110px; opacity:.35; } .state-grid { grid-template-columns:repeat(2,1fr); } .coverage-grid { grid-template-columns:1fr; } .event-card { grid-template-columns:70px 1.5fr 1fr 28px; } .event-price { display:none; } .newsletter { grid-template-columns:1fr; gap:30px; } .filter-panel { grid-template-columns:1fr 1fr; } .filter-panel label:first-child { grid-column:1/-1; } }
@media (max-width:620px) { .site-header { height:68px; padding:0 16px; } .brand small { display:none; } nav .nav-link { padding:9px 8px; font-size:11px; } .contact-nav { display:none; } .demo-banner { align-items:center; text-align:center; flex-direction:column; gap:2px; } .hero { min-height:500px; padding:72px 22px; background-position:62% center; } .hero-copy { max-width:88%; } .weekend-strip { align-items:flex-start; padding:24px 18px; flex-direction:column; gap:18px; } .day-pills { width:100%; overflow-x:auto; } .day-pill { min-width:108px; } .content-section { padding:54px 18px; } .section-heading { align-items:flex-start; flex-direction:column; gap:14px; } .state-grid { grid-template-columns:1fr; } .state-card { min-height:122px; } .state-name { margin:20px 0 7px; } .event-card { grid-template-columns:54px 1fr 22px; padding:15px; gap:12px; } .game-ball { width:46px; height:46px; font-size:18px; } .event-main strong { font-size:18px; } .event-place { grid-column:2; } .event-arrow { grid-column:3; grid-row:1/3; } .calendar-card-head { align-items:flex-start; flex-direction:column; padding:22px; } .calendar-notice { grid-template-columns:1fr; gap:5px; padding:16px 22px; } .milestone-list { padding:6px 22px; } .milestone { grid-template-columns:1fr 1fr; gap:6px 14px; padding:14px 0; } .milestone-status { grid-column:1; } .milestone strong { grid-column:1/-1; grid-row:2; } .milestone small { text-align:right; } .calendar-checked { padding:4px 22px 20px; } .newsletter { padding:54px 18px; } .newsletter form { padding:18px; } .email-row { display:block; } .email-row input,.email-row button { width:100%; border-radius:4px; } .email-row button { margin-top:8px; } .find-view { padding:50px 18px; } .filter-panel { grid-template-columns:1fr; padding:14px; } .filter-panel label:first-child { grid-column:auto; } .detail-hero,.detail-body { padding:28px 22px; } .detail-grid { grid-template-columns:1fr; gap:16px; } .detail-actions { flex-direction:column; } footer { grid-template-columns:1fr; } .footer-brand { grid-row:auto; } .footer-contact { flex-direction:column; align-items:flex-start; gap:3px; } }
@media (max-width:620px) { .site-header { height:auto; min-height:68px; padding:8px 12px; } nav { display:flex; flex-wrap:wrap; justify-content:flex-end; } nav .nav-link { padding:8px 7px; font-size:10px; } .submit-view { padding:50px 18px; } .submission-form { padding:18px; } .form-grid { grid-template-columns:1fr; } .form-grid .wide { grid-column:auto; } .queue-item { grid-template-columns:1fr; } .queue-actions { align-items:stretch; flex-direction:column; } .correction-form { padding:24px; } }
