/* Member pages (/account/, /me/, /post/, /admin/): the events page's look. Night navy, taxi yellow as the one accent,
   Archivo throughout (125% width for headings), "&" from Figtree. Dark by default; data-theme="light" for day. */
:root{
  color-scheme:dark;
  --bg:#0C1230; --surface:#141B3F; --surface-2:#1B2450;
  --ink:#EEF1FB; --ink-2:#B3BBDA; --muted:#8089AE;
  --line:rgba(238,241,251,.08); --line-2:rgba(238,241,251,.17);
  --taxi:#FFD23F; --taxi-hover:#FFE071; --taxi-ink:#0C1230;
  --focus:#9DB6FF; --free:#4FE0A8; --free-soft:rgba(79,224,168,.12);
  --warn:#FDBA74; --warn-soft:#3A2410; --bad:#FF8A8A; --bad-soft:rgba(255,92,92,.12);
  --t-shows:#7D93FF; --t-art:#FF72B6; --t-learn:#F6C453; --t-meet:#FF7A52; --t-active:#39DA9E; --t-food:#3FC6F2; --t-kids:#B98CFF;
  --shadow:0 24px 60px -24px rgba(3,6,20,.75);
  --head:60px; --gut:clamp(16px,3vw,40px); --safe:env(safe-area-inset-top,0px);
  --f:"Figtree","Archivo","PingFang TC","Noto Sans TC","Noto Sans CJK TC","Microsoft JhengHei",system-ui,-apple-system,"Segoe UI",sans-serif;
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#F3F5FA; --surface:#FFFFFF; --surface-2:#E7EBF5;
  --ink:#0C1230; --ink-2:#3B4570; --muted:#687196;
  --line:rgba(12,18,48,.08); --line-2:rgba(12,18,48,.16);
  --taxi:#FFCB2E; --taxi-hover:#FFD65C;
  --focus:#2E55E6; --free:#08845A; --free-soft:rgba(8,132,90,.1);
  --warn:#9A3412; --warn-soft:#FFEAD5; --bad:#B42318; --bad-soft:rgba(180,35,24,.08);
  --t-shows:#3E5BE8; --t-art:#D02F80; --t-learn:#B07A00; --t-meet:#E04A22; --t-active:#0C9A6E; --t-food:#0785B8; --t-kids:#7A4BD6;
  --shadow:0 24px 60px -28px rgba(12,18,48,.35);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
html.i18n-pending body{visibility:hidden}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-wrap:pretty}
:root[data-lang="zh"] body{font-family:"PingFang TC","Noto Sans TC","Noto Sans CJK TC","Microsoft JhengHei",var(--f)}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.top{position:sticky;top:0;z-index:40;background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:var(--safe)}
.top .in{display:flex;align-items:center;gap:8px;height:var(--head);max-width:1180px;margin:0 auto;padding-inline:var(--gut)}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:800;font-stretch:125%;font-size:23px;letter-spacing:-.04em;line-height:1;margin-right:auto}
.brand svg{width:22px;height:22px;color:var(--taxi)}
.nav{display:flex;gap:4px;margin-right:6px}
.nav a{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.nav a:hover{color:var(--ink);background:var(--surface)}
.nav a[aria-current="page"]{color:var(--ink);background:var(--surface-2)}
.lang{position:relative;flex:none;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;border:1px solid var(--line-2);border-radius:999px;isolation:isolate;--i:0}
:root[data-lang="zh"] .lang{--i:1}
.lang::before{content:"";position:absolute;z-index:-1;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/2);border-radius:999px;background:var(--taxi);transform:translateX(calc(100% * var(--i)));transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.lang>button{min-width:40px;height:32px;padding:0 9px;border:0;border-radius:999px;background:none;font:800 12px/1 var(--f);font-stretch:125%;letter-spacing:.08em;color:var(--ink-2);cursor:pointer}
.lang>button[lang^="zh"]{font-size:13px;font-weight:700;font-stretch:100%}
.lang>button[aria-checked="true"]{color:var(--taxi-ink);cursor:default}
.theme{flex:none;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--ink-2);cursor:pointer}
.theme:hover{color:var(--ink);border-color:var(--ink-2)}
.theme .sun,:root[data-theme="light"] .theme .moon{display:none}
:root[data-theme="light"] .theme .sun{display:block}
@media (max-width:640px){.nav a{padding:0 9px;font-size:13px}.nav .wide{display:none}}

/* page */
.page{max-width:1180px;margin:0 auto;padding:clamp(28px,5vw,64px) var(--gut) 80px}
.narrow{max-width:560px}
.mid{max-width:820px}
h1,.h1{margin:0;font-size:clamp(32px,4.4vw,52px);font-weight:800;font-stretch:125%;line-height:1.04;letter-spacing:-.035em}
:root[data-lang="zh"] h1,:root[data-lang="zh"] h2{font-stretch:100%;letter-spacing:0}
h2{margin:0 0 14px;font-size:22px;font-weight:800;font-stretch:115%;letter-spacing:-.02em}
.lede{margin:14px 0 0;font-size:17px;color:var(--ink-2)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3vw,30px);box-shadow:var(--shadow)}
.stack>*+*{margin-top:18px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.muted{color:var(--muted)}
.small{font-size:14px}

/* forms */
.field{display:block}
.field>span,.label{display:block;margin-bottom:7px;font-size:14px;font-weight:700;color:var(--ink)}
.field>span em,.label em{font-style:normal;font-weight:500;color:var(--muted)}
.input,select.input,textarea.input{width:100%;min-height:50px;border:1px solid var(--line-2);border-radius:14px;padding:12px 15px;background:var(--bg);color:var(--ink);font-size:16px;transition:border-color .15s,box-shadow .15s}
textarea.input{min-height:140px;resize:vertical;line-height:1.5}
.input:focus{outline:none;border-color:var(--ink-2);box-shadow:0 0 0 4px color-mix(in oklab,var(--focus) 22%,transparent)}
.input[aria-invalid="true"]{border-color:var(--bad)}
.hint{margin-top:6px;font-size:13px;color:var(--muted)}
.err{margin-top:6px;font-size:13px;font-weight:600;color:var(--bad)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--taxi);flex:none}
.seg{display:inline-flex;max-width:100%;padding:3px;border:1px solid var(--line-2);border-radius:999px;gap:2px}
.seg button{flex:1 1 auto;border:0;background:none;height:38px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:700;color:var(--ink-2);cursor:pointer;white-space:nowrap}
@media (max-width:560px){.seg{display:flex}.seg button{padding:0 10px;font-size:13px}}
.seg button[aria-pressed="true"],.seg button[aria-selected="true"]{background:var(--taxi);color:var(--taxi-ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,transform .1s}
.btn:hover{border-color:var(--ink-2)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--taxi);border-color:var(--taxi);color:var(--taxi-ink);box-shadow:0 10px 30px -12px color-mix(in oklab,var(--taxi) 80%,transparent)}
.btn.primary:hover{background:var(--taxi-hover)}
.btn.danger{border-color:color-mix(in oklab,var(--bad) 55%,transparent);color:var(--bad)}
.btn.small{min-height:38px;padding:0 15px;font-size:14px}
.btn.wide{width:100%}
.btn[disabled]{opacity:.55;cursor:default;transform:none}
.btn.google{background:#fff;color:#1f1f1f;border-color:#dadce0}
.btn.google:hover{background:#f6f8fc}
.link{border:0;background:none;padding:0;color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--taxi);text-decoration-thickness:2px;text-underline-offset:4px;cursor:pointer}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line-2)}

/* notices and statuses */
.note{border-radius:16px;padding:14px 16px;font-size:15px;background:var(--surface-2);border:1px solid var(--line-2)}
.note.good{background:var(--free-soft);border-color:color-mix(in oklab,var(--free) 40%,transparent)}
.note.warn{background:var(--warn-soft);border-color:color-mix(in oklab,var(--warn) 40%,transparent)}
.note.bad{background:var(--bad-soft);border-color:color-mix(in oklab,var(--bad) 40%,transparent)}
.note b{font-weight:700}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);color:var(--ink-2)}
:root[data-lang="zh"] .chip{letter-spacing:.02em}
.chip.pending{background:color-mix(in oklab,var(--taxi) 20%,transparent);color:var(--taxi)}
:root[data-theme="light"] .chip.pending{color:#8a6400}
.chip.approved{background:var(--free-soft);color:var(--free)}
.chip.declined,.chip.removed,.chip.banned{background:var(--bad-soft);color:var(--bad)}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}

/* event cards (my events, admin) */
.ev{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--bg)}
.ev+.ev{margin-top:12px}
.ev h3{margin:8px 0 4px;font-size:19px;font-weight:800;line-height:1.25;letter-spacing:-.01em;overflow-wrap:anywhere}
.ev .meta{font-size:14px;color:var(--ink-2)}
.ev .desc{margin:10px 0 0;font-size:15px;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere}
.ev .reason{margin-top:12px}
.ev dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:14px 0 0;font-size:14px}
.ev dt{color:var(--muted)}
.ev dd{margin:0;overflow-wrap:anywhere}
.ev .actions{margin-top:16px}
.ev h3 a{text-decoration:none}
.ev h3 a:hover{text-decoration:underline;text-decoration-color:var(--taxi);text-decoration-thickness:2px;text-underline-offset:4px}
.ev.past{opacity:.62}
.card h3.sub{margin:26px 0 12px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.card h2+h3.sub{margin-top:4px}
:root[data-lang="zh"] .card h3.sub{font-size:14px;letter-spacing:.04em}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:18px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 18px}
.tabs button,.tabs a{display:inline-flex;text-decoration:none;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);background:transparent;font-size:15px;font-weight:700;color:var(--ink-2);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tabs .n{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--taxi);color:var(--taxi-ink);font-size:12px;display:inline-grid;place-items:center}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line-2)}
.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
.scroll{overflow-x:auto}
.toast{position:fixed;left:50%;bottom:24px;z-index:60;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 18px;border-radius:14px;background:var(--ink);color:var(--bg);font-weight:600;box-shadow:var(--shadow)}
dialog{border:1px solid var(--line-2);border-radius:22px;background:var(--surface);color:var(--ink);padding:24px;width:min(520px,calc(100% - 32px));box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(5,8,25,.6);backdrop-filter:blur(3px)}
.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* /privacy/ and /terms/: long text in both languages, one shown at a time */
:root[data-lang="zh"] [data-only="en"],:root:not([data-lang="zh"]) [data-only="zh"]{display:none}
.prose h2{margin:34px 0 10px;font-size:20px}
.prose p{margin:0 0 14px;font-size:16px;line-height:1.65;color:var(--ink-2)}
.prose .lede{margin:14px 0 8px}
.prose a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.prose ul{margin:0 0 14px;padding-left:22px;color:var(--ink-2);font-size:16px;line-height:1.65}
.prose li{margin:0 0 8px}
.prose b{color:var(--ink);font-weight:700}
.prose code{font-size:14px;padding:1px 6px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line)}
.prose .fine{font-size:14px;color:var(--muted)}
.agree{margin:18px auto 0;max-width:440px;text-align:center}
.agree a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* /admin/approvals/ */
.back{color:var(--muted);text-decoration:none}
.back:hover{color:var(--ink)}
h1 .n{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border-radius:999px;background:var(--taxi);color:var(--taxi-ink);font-size:22px;vertical-align:middle}
.decide{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
