/* Partner toolkit (issue #44). Shared design-system tokens only (--liv-* from /partners/brand.css, generated by scripts/distribution/brand.js). Mobile-first. */
@font-face{font-family:"Fraunces";src:url("/fonts/Fraunces-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Inter";src:url("/fonts/InterVariable.woff2") format("woff2");font-weight:100 900;font-display:swap}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--liv-ivory);color:var(--liv-ink);font:15px/1.45 var(--liv-font-ui)}
a{color:var(--liv-ink)}
/* #45: focus ring is ink (honey is decorative only, 1.47:1 on ivory) */
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--liv-ink);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--liv-font-display);line-height:1.2;margin:0}
h2 small{font:600 13px var(--liv-font-ui);color:var(--liv-muted);margin-left:var(--liv-space-2)}
.small{font-size:13px;color:var(--liv-muted)}
.wm{display:block;height:34px;width:auto}
.wmtext{font:600 28px/1 var(--liv-font-display);color:var(--liv-ink);letter-spacing:-.01em}
.btn{display:inline-block;min-height:44px;padding:var(--liv-space-3) var(--liv-space-4);border-radius:var(--liv-radius-control);border:0;background:var(--liv-terracotta-text);color:var(--liv-text-on-accent);font:600 15px var(--liv-font-ui);text-decoration:none;cursor:pointer;line-height:20px}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:var(--liv-white);color:var(--liv-ink);border:1px solid var(--liv-border-strong)}
.btn.ghost:hover{background:var(--liv-surface-hover);filter:none}
code,pre{font:13px/1.4 ui-monospace,Menlo,Consolas,monospace}
pre{background:var(--liv-surface-muted);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);padding:var(--liv-space-3);overflow-x:auto;white-space:pre-wrap;word-break:break-all}
/* lists of events (widget + listing preview) */
.evs{list-style:none;margin:0;padding:0}
.evs li{border-top:1px solid var(--liv-border)}
.evs li:first-child{border-top:0}
.evs a{display:block;padding:var(--liv-space-3) var(--liv-space-2);margin:0 calc(-1 * var(--liv-space-2));border-radius:8px;text-decoration:none;min-height:44px}
.evs a:hover{background:var(--liv-surface-hover)}
.evs a:hover .ti{text-decoration:underline}
.evs .t{display:block;font-size:13px;font-weight:600;color:var(--liv-sage-text)}
.evs .ti{display:block;font-weight:600}
.evs .m{display:block;font-size:13px;color:var(--liv-muted)}
.free{color:var(--liv-terracotta-text);font-weight:600}
.none{color:var(--liv-muted);margin:var(--liv-space-2) 0}
/* embed widget */
.embed main{max-width:560px;margin:0 auto;padding:var(--liv-space-4) var(--liv-gutter-mobile)}
.eh{display:flex;align-items:center;justify-content:space-between;gap:var(--liv-space-3);margin-bottom:var(--liv-space-3)}
.eh .brand{display:block;text-decoration:none}
.eh .wm{height:28px}
.scope{margin:0;font-size:13px;font-weight:600;color:var(--liv-muted);text-align:right}
.embed section{background:var(--liv-white);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);padding:var(--liv-space-3) var(--liv-space-4);margin-bottom:var(--liv-space-3);box-shadow:var(--liv-shadow-card)}
.embed h2{font-size:20px;margin-bottom:var(--liv-space-1)}
.embed h3{font:700 13px var(--liv-font-ui);text-transform:uppercase;letter-spacing:.04em;color:var(--liv-muted);margin:var(--liv-space-3) 0 0}
.ongoing{background:var(--liv-white);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);padding:var(--liv-space-3) var(--liv-space-4);margin-bottom:var(--liv-space-3)}
.ongoing summary{cursor:pointer;font-weight:600;min-height:28px}
.more{text-align:center;margin:var(--liv-space-4) 0}
.ef{font-size:12px;color:var(--liv-muted);text-align:center;margin-top:var(--liv-space-3)}
/* hub + listing */
.wrap{max-width:760px;margin:0 auto;padding:var(--liv-space-6) max(var(--liv-gutter-mobile),env(safe-area-inset-right)) calc(var(--liv-space-8) + env(safe-area-inset-bottom)) max(var(--liv-gutter-mobile),env(safe-area-inset-left))}
.hh{margin-bottom:var(--liv-space-6)}
.hh .wm{height:40px;margin-bottom:var(--liv-space-4)}
.hh h1{font-size:clamp(24px,7vw,34px);margin-bottom:var(--liv-space-2);text-wrap:balance}
.hub section{background:var(--liv-white);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);padding:var(--liv-space-4);margin-bottom:var(--liv-space-4)}
.hub section h2{font-size:20px;margin-bottom:var(--liv-space-2)}
.hub section p{margin:var(--liv-space-2) 0}
.hub section a{min-height:24px}
.towns{list-style:none;padding:0;margin:0}
.towns li{padding:var(--liv-space-2) 0;border-top:1px solid var(--liv-border);line-height:2.2}
.towns li:first-child{border-top:0}
.towns li b{display:block;font-family:var(--liv-font-display);font-size:17px;line-height:1.4}
.towns a{display:inline-block;min-height:44px;line-height:44px;padding:0 var(--liv-space-1)}
.lsearch label{display:block;font-weight:600;margin-bottom:var(--liv-space-2)}
.lsearch input{width:100%;min-height:48px;padding:var(--liv-space-3) var(--liv-space-4);border:1px solid var(--liv-border-strong);border-radius:var(--liv-radius-control);font:16px var(--liv-font-ui);background:var(--liv-white);color:var(--liv-ink)}
.lresults{list-style:none;padding:0;margin:var(--liv-space-2) 0}
.lresults button{display:block;width:100%;text-align:left;min-height:48px;padding:var(--liv-space-3) var(--liv-space-4);margin-bottom:var(--liv-space-2);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);background:var(--liv-white);color:var(--liv-ink);font:15px var(--liv-font-ui);cursor:pointer}
.lresults button:hover{background:var(--liv-surface-hover)}
.lresults button small{display:block;color:var(--liv-muted);font-size:13px}
#lpreview{background:var(--liv-white);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);padding:var(--liv-space-4);margin:var(--liv-space-4) 0}
#lpreview h2{font-size:22px}
#lpreview textarea{width:100%;min-height:96px;font:13px/1.4 ui-monospace,Menlo,Consolas,monospace;border:1px solid var(--liv-border);border-radius:8px;padding:var(--liv-space-2);color:var(--liv-ink);background:var(--liv-ivory)}
.badgeprev{display:block;margin:var(--liv-space-3) 0}
@media (min-width:700px){.hh h1{font-size:34px}}
code{overflow-wrap:anywhere}
/* weekend plans */
.weekend section h2{font-size:22px}
.towntabs{display:flex;flex-wrap:wrap;gap:var(--liv-space-2);margin-top:var(--liv-space-3)}
.towntabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--liv-space-4);border:1px solid var(--liv-border);border-radius:var(--liv-radius-control);background:var(--liv-white);text-decoration:none;font-weight:600;font-size:14px}
.towntabs a:hover{background:var(--liv-surface-hover)}
.towntabs a[aria-current="page"]{background:var(--liv-surface-selected);border-color:var(--liv-sage);color:var(--liv-ink)}
/* copy buttons on snippets (hub.js) */
.snip{position:relative}
.snip pre{padding-right:var(--liv-space-3);margin-bottom:var(--liv-space-2)}
.copied{font-size:13px;color:var(--liv-success);margin-left:var(--liv-space-2)}
.ongoing summary{display:flex;align-items:center;min-height:44px}
@media (max-width:380px){.eh{flex-direction:column;align-items:flex-start;gap:var(--liv-space-1)}.scope{text-align:left}.hub section{padding:var(--liv-space-3)}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* partner traffic dashboard (/partners/admin/) */
.admin form.card, .admin .ctl { display: grid; gap: 10px; }
.admin .ctl { grid-template-columns: auto 1fr auto; align-items: center; margin: 12px 0; }
.admin select { min-height: 44px; font: inherit; border: 1px solid var(--liv-border-strong); border-radius: var(--liv-radius-control); padding: 0 var(--liv-space-3); background: var(--liv-white); color: var(--liv-ink); }
.admin input[type=password] { min-height: 44px; font: inherit; border: 1px solid var(--liv-border-strong); border-radius: var(--liv-radius-control); padding: 0 var(--liv-space-3); }
.kpis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.kpis li { display: grid; gap: 2px; padding: 10px 12px; border-radius: var(--liv-radius-card); background: var(--liv-surface-muted); }
.kpis b { font-family: var(--liv-font-display); }
.tw { overflow-x: auto; }
.st { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.st th, .st td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--liv-border); }
.st .num { text-align: right; white-space: nowrap; }
.small { font-size: .875rem; }
.admin form.card{background:var(--liv-white);border:1px solid var(--liv-border);border-radius:var(--liv-radius-card);padding:var(--liv-space-4);margin-bottom:var(--liv-space-4)}
.admin [hidden]{display:none!important}
