/* /events show calendar + /events-admin. Builds on site.css tokens. */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.inline-link{color:var(--bronze);font-weight:600;text-underline-offset:3px}

/* Filters */
.sh-filters{padding-block:22px 6px;border-bottom:1px solid var(--line)}
.sh-filters .filters{margin-bottom:10px}
.sh-filters .filters button{display:inline-flex;align-items:center}
#f-type button{font-weight:600}
.f-q{display:block;margin:4px 0 14px}
.f-q input{width:100%;max-width:440px;font:16px var(--body);padding:11px 14px;min-height:46px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink)}
.f-q input:focus{outline:2px solid var(--bronze);outline-offset:2px}
@media (max-width:560px){
  .sh-filters .filters{gap:6px}
  .sh-filters .filters button{padding:9px 13px;min-height:42px}
  .f-q input{max-width:none}
  .sh-acts{gap:2px 16px}
}

/* Results */
.sh-sec{padding-block:36px}
.sh-month{font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);margin:26px 0 0;padding-bottom:6px;border-bottom:2px solid var(--olive)}
.sh-sec .sec-head + .sh-month{margin-top:4px}
.sh-list{list-style:none;margin:0;padding:0}
.sh{display:grid;grid-template-columns:76px minmax(0,1fr);gap:18px;padding:18px 0;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.sh:target{background:var(--bronze-soft);border-radius:10px;padding-inline:10px}
.sh .date{display:flex;flex-direction:column;align-items:flex-start}
.sh .date .w{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.sh-body{min-width:0}
.sh-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.tag{font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid currentColor;line-height:1.5}
.t-car{color:var(--bronze)}
.t-truck{color:var(--soon)}
.t-jeep{color:var(--olive)}
.t-recur{color:var(--muted);border-style:dashed}
/* Show (judged) is filled so it reads first; Meet is a plain outline */
.t-show{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}
.t-meet{color:var(--ink)}
.t-untyped{color:var(--muted);border-style:dotted}
.f-key{font-size:14px;color:var(--muted);margin:0 0 12px;max-width:62ch}
.f-key b{color:var(--ink);font-weight:600}
.sh-name{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.55rem;line-height:1.02;margin:0 0 6px;overflow-wrap:anywhere}
.sh-name a{text-decoration:none}
.sh-name a:hover{text-decoration:underline;text-decoration-color:var(--bronze);text-underline-offset:3px}
.sh-when{font-size:15.5px}
.sh-when b{font-weight:600}
.sh-next{display:inline-block;font:500 12px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--bronze);margin-left:6px}
.sh-where{font-size:15px;color:var(--muted);margin-top:2px}
.sh-cost{font-size:14px;color:var(--muted);margin-top:2px}
.sh-cost::before{content:"Cost: ";color:var(--ink);font-weight:600}
.sh-desc{margin:8px 0 0;font-size:15px;max-width:68ch}
.sh-note{margin:6px 0 0;font-size:14px;color:var(--olive)}
.sh-note::before{content:"Heads up: ";font-weight:600}
.sh-acts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px}
.sh-acts a{display:inline-flex;align-items:center;min-height:36px;font:500 12.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--bronze);text-decoration:none}
.sh-acts a:hover{text-decoration:underline;text-underline-offset:3px}
.sh-empty{color:var(--muted);padding:12px 0}
.linkish{all:unset;cursor:pointer;color:var(--bronze);font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){.sh{grid-template-columns:58px minmax(0,1fr);gap:12px}.sh .date .d{font-size:1.9rem}.sh-name{font-size:1.4rem}}

/* Submit form */
#submit-sec{padding-block:36px}
.submit-box{border:1.5px solid var(--ink);border-radius:14px;background:var(--surface);scroll-margin-top:80px}
.submit-box summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 22px}
.submit-box summary::-webkit-details-marker{display:none}
.submit-box summary b{display:block;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.6rem;line-height:1.05}
.submit-box summary small{display:block;color:var(--muted);font-size:14.5px;margin-top:4px;max-width:56ch}
.submit-box[open] summary .btn{display:none}
.submit-box form{padding:0 22px 22px;border-top:1px solid var(--line)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding-top:18px}
.fgrid .span2{grid-column:1 / -1}
.fgrid label:not(.chk),.fgrid fieldset{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px;min-width:0}
.fgrid label small{font-weight:400;color:var(--muted)}
.fgrid input:not([type=checkbox]),.fgrid select,.fgrid textarea{font:16px var(--body);padding:11px 12px;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%;min-width:0}
.fgrid textarea{resize:vertical}
.fgrid input:focus,.fgrid select:focus,.fgrid textarea:focus{outline:2px solid var(--bronze);outline-offset:1px}
.fgrid fieldset{border:0;padding:0;margin:0;flex-direction:row!important;flex-wrap:wrap;gap:8px 20px!important;align-items:center}
.fgrid legend{padding:0;margin-bottom:8px;width:100%}
.chk{display:inline-flex;align-items:center;gap:9px;font-weight:500;font-size:15.5px;min-height:40px;cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--olive)}
.rec-toggle{padding:8px 12px;border:1px dashed var(--line);border-radius:10px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.fine{font-size:13.5px;color:var(--muted);margin:16px 0 0}
.form-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px}
.form-row .btn{cursor:pointer;font:600 15px var(--body);min-height:48px}
.form-row .btn:disabled{opacity:.6;cursor:wait}
.form-msg{margin:0;font-size:15px}
.form-msg.ok{color:var(--olive);font-weight:600}
.form-msg.err{color:#b23a2a;font-weight:600}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .form-msg.err{color:#f08a74}}
:root[data-theme="dark"] .form-msg.err{color:#f08a74}
@media (max-width:640px){.fgrid{grid-template-columns:1fr}.submit-box summary{padding:18px}.submit-box form{padding:0 18px 18px}.submit-box summary .btn{width:100%;justify-content:center}}

/* Admin */
.adm-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:18px 0}
.adm-bar input{font:16px var(--body);padding:11px 14px;min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-width:0;flex:1 1 260px}
.adm-bar button,.adm-acts button{cursor:pointer;font:600 15px var(--body)}
.adm-item{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px;margin-bottom:12px}
.adm-item.pending{border-color:var(--bronze)}
.adm-meta{font:500 12px var(--mono);letter-spacing:.04em;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}
.adm-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.adm-acts .btn{min-height:44px}
.adm-acts .ok{background:var(--olive);border-color:var(--olive);color:var(--bg)}
.adm-acts .no{border-color:#b23a2a;color:#b23a2a;background:transparent}
.adm-edit .fgrid{padding-top:12px}
.adm-status{font:600 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid currentColor;margin-left:6px;vertical-align:3px}
.adm-status.pending{color:var(--bronze)}
.adm-status.approved{color:var(--olive)}
.adm-status.rejected{color:var(--muted)}

/* admin: visitor stats */
#adm-stats{padding-top:18px}
.adm-h{font:700 22px var(--display);letter-spacing:.02em;text-transform:uppercase;margin:0 0 10px}
.adm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.adm-stat{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px 14px;min-width:0}
.adm-stat b{display:block;font:700 30px/1.1 var(--display);color:var(--ink)}
.adm-stat span{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.adm-spark{display:flex;align-items:flex-end;gap:3px;height:70px;margin-top:12px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.adm-spark i{flex:1;min-width:2px;background:var(--bronze);border-radius:2px 2px 0 0}
