/* UNI Night (aqua): the design system for the member app and the team app.
   Loaded after app.css and m.css, so it overrides their colours and shapes. Fonts are served by UNI itself (no Google Fonts, works in mainland China). */
@font-face{font-family:"Inter";src:url(/fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --bg:#0A0B10;--panel:#14161E;--panel2:#1A1D28;--line:#232634;--line2:#2E3242;
  --text:#F2F3F7;--sub:#C9CDD8;--muted:#9CA1B3;--dim:#7C8194;--ink:#0A0B10;
  --accent:#5EE6D0;--accent-2:#3CCFB8;--accent-soft:#11302B;--accent-line:#1F5A51;
  --amber:#F2B25C;--amber-soft:#2E2414;--green:#7EE2A1;--green-soft:#13291D;--red:#FF7A8A;--red-soft:#33181E;--cyan:#6FD3F0;--violet:#8E7CFF;
  --r:20px;
  --font:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,"Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;
  font-feature-settings:"cv11","ss01";
}
html,body{background:var(--bg);color:var(--text);font-family:var(--font);letter-spacing:-.006em}
a{color:var(--accent)}a:hover{color:#9DF3E4}
::selection{background:var(--accent);color:var(--ink)}
h1,h2,h3,.title{letter-spacing:-.025em}
h1.title{font-size:32px;letter-spacing:-.035em}
.eyebrow{color:var(--dim);letter-spacing:.12em}

/* controls */
.btn{border-radius:12px;border-color:var(--line2);color:var(--sub);font-weight:650}
.btn:hover{border-color:#454a5e;color:var(--text);background:rgba(255,255,255,.02)}
.btn.primary,.btn.accent{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:750}
.btn.primary:hover,.btn.accent:hover{background:#86F0DE;border-color:#86F0DE;color:var(--ink)}
.btn.danger{color:var(--red);border-color:#4a2530}
.btn.bk{background:var(--ink);color:var(--accent);border-color:var(--ink)}
.input,select.input,textarea.input{background:var(--panel);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;color:var(--text)}
.input::placeholder{color:#5C6174}
.input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(94,230,208,.10)}
label.field{color:var(--sub);font-size:13px;font-weight:600}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.tabs{background:var(--panel);border-color:var(--line);border-radius:14px}
.tab{border-radius:10px}.tab.on{background:var(--text);color:var(--ink)}
.chip{border-color:var(--line2);color:var(--sub);border-radius:999px}
button.chip:hover{border-color:#454a5e;color:var(--text)}
button.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.pill{border-radius:8px}
.st-regular{background:var(--accent-soft);color:var(--accent)}
.badge{background:var(--red)}
.avatar{color:var(--ink)}

/* surfaces */
.card{background:var(--panel);border-color:var(--line);border-radius:var(--r)}
.card.click:hover{border-color:var(--line2)}
.li.click:hover{background:var(--panel2)}
.empty{border-color:var(--line2);border-radius:16px}
.bar{background:#1E2130}.bar>i{background:var(--accent)}
table.t tr.click:hover td{background:var(--panel2)}
.kpi .big{letter-spacing:-.04em}
.lane{background:#0E1016}.tcard{background:var(--panel);border-radius:14px}
.modal,.drawer,.menu{background:var(--panel);border-color:var(--line2)}
.menu button:hover{background:var(--panel2)}
.overlay{background:rgba(4,5,8,.72)}
.toast{background:var(--accent);color:var(--ink)}
.bubble.me{background:var(--accent);color:var(--ink)}.bubble.ai{background:var(--panel2)}
.fileblock{background:var(--panel2)}
.editor{background:var(--panel)}
.cal{background:var(--panel)}.cal .day.out{background:#0E1016}.cal .day.today .dn{background:var(--accent);color:var(--ink)}
.dropzone.drop{background:var(--accent-soft)}

/* team app shell */
.rail{background:#08090D;border-right-color:var(--line)}
.logo{background:var(--accent);color:var(--ink);border-radius:10px}
.nav{color:var(--muted);border-radius:12px}
.nav:hover{background:var(--panel);color:var(--text)}
.nav.on{background:var(--accent-soft);color:var(--accent)}
.navgroup{color:#5C6174}
.me{background:var(--panel)}
.top{border-bottom-color:var(--line);background:rgba(10,11,16,.85);backdrop-filter:blur(12px)}
.venture,.askbar{background:var(--panel);border-color:var(--line);border-radius:14px}
.ch:hover{background:var(--panel2)}.ch.on{background:var(--accent-soft);color:var(--accent)}
.rs-dot{border-color:#3a3f52}.rs.now{background:var(--accent-soft)}.rs.now .rs-dot{border-color:var(--accent);background:var(--accent)}.rs.now .rs-t{color:var(--accent)}

/* ================= member app ================= */
#m{max-width:520px}
.mtop{padding:18px 22px 6px}
.mbody{padding:12px 22px 124px;gap:16px}
.brandm{font-size:21px;font-weight:800;letter-spacing:-.045em;color:var(--text)}.brandm i{font-style:normal;color:var(--accent)}
.lang{border:1px solid #2A2D3A;border-radius:999px;padding:6px 12px;color:#B9BDCB;font-weight:600;font-size:13px}
.mono-date{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
.mhi{font-size:28px;font-weight:800;letter-spacing:-.04em;line-height:1.05}
.ringav{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--accent);border-radius:50%}
.glow{position:fixed;top:-230px;left:50%;width:460px;height:460px;transform:translateX(-50%);background:radial-gradient(circle,rgba(94,230,208,.16) 0%,transparent 62%);pointer-events:none;z-index:0}
.mtop,.mbody{position:relative;z-index:1}

/* floating tab bar */
.mnav{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));background:rgba(22,24,33,.94);border:1px solid var(--line);border-radius:24px;padding:8px;max-width:492px;margin:0 auto;backdrop-filter:blur(16px);box-shadow:0 12px 34px rgba(0,0,0,.45)}
.mnav .in{max-width:none}
.mnav button{color:var(--dim);border-radius:16px;padding:8px 6px;font-weight:650;font-size:10.5px;min-width:58px}
.mnav button.on{background:var(--accent);color:var(--ink)}
.mnav .badge{top:2px;right:8px}

/* cards */
.hero{background:var(--panel);border:1px solid var(--line);border-radius:24px}
.mcard{background:var(--panel);border-color:var(--line);border-radius:20px}
.mcard.click:hover{border-color:var(--line2)}
.datebox{background:var(--panel2);border-radius:14px}.datebox span{color:var(--muted)}
.big-btn{height:58px;padding:0 18px;border-radius:18px;font-size:17px;font-weight:800}
.askbar-m{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:16px;padding:15px 16px;font-weight:500}
.askbar-m svg{color:var(--accent)}.askbar-m span{color:var(--muted)}
.extile,.sparkcard{background:var(--panel);border-color:var(--line)}
.extile svg{color:var(--accent)}
.photogrid .ph{background:var(--panel2)}
.mb{background:var(--panel2)}.mb.me{background:var(--accent);color:var(--ink)}
.mcompose{background:rgba(10,11,16,.96)}
.steps i{background:#232634}.steps i.on{background:var(--accent)}
.check{background:var(--accent);color:var(--ink)}

/* next-event ticket */
.ticket{display:block;border-radius:26px;background:var(--accent);color:var(--ink);padding:18px;text-decoration:none;position:relative;overflow:hidden}
.ticket:hover{color:var(--ink)}
.ticket .tk-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.ticket .tk-mid{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:16px}
.ticket .tk-title{font-size:27px;font-weight:800;letter-spacing:-.04em;line-height:1}
.ticket .tk-day{font-size:70px;font-weight:800;letter-spacing:-.06em;line-height:.75;flex:none}
.ticket .tk-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1.5px dashed rgba(10,11,16,.35);font-size:13px;font-weight:600}
.ticket .tk-btn{height:34px;padding:0 14px;border-radius:12px;background:var(--ink);color:var(--accent);display:inline-flex;align-items:center;font-size:13px;font-weight:750;white-space:nowrap;flex:none}

/* scanned-event card on the join and landing screens */
.scanned{display:flex;gap:14px;align-items:center;border-radius:22px;background:var(--accent);color:var(--ink);padding:16px}
.scanned .sd{width:58px;height:62px;border-radius:14px;background:rgba(10,11,16,.10);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}
.scanned .sd span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.scanned .sd b{font-size:26px;font-weight:800;line-height:1}
.scanned .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.scanned .nm{display:block;font-size:20px;font-weight:800;letter-spacing:-.025em;line-height:1.15}
.scanned .meta{font-size:12.5px;font-weight:550}
.twotone{margin:0;font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1.05}.twotone span{color:var(--dim)}
.seg{display:inline-flex;padding:4px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.seg button{border:0;background:none;padding:8px 14px;border-radius:10px;font-weight:650;font-size:13.5px;color:var(--muted);cursor:pointer}
.seg button.on{background:var(--text);color:var(--ink)}

/* event list in one card */
.evlist{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.evrow{display:flex;gap:14px;align-items:center;padding:13px 14px;text-decoration:none;color:inherit;border-top:1px solid var(--line)}
.evrow:first-child{border-top:0}.evrow:hover{background:var(--panel2);color:inherit}
.evrow .d{width:44px;display:flex;flex-direction:column;align-items:center;flex:none}
.evrow .d span{font-family:var(--mono);font-size:10.5px;text-transform:uppercase}.evrow .d b{font-size:22px;font-weight:800;line-height:1;letter-spacing:-.03em}
.evrow .t{font-size:15px;font-weight:700;display:block;letter-spacing:-.015em}
.evrow .s{font-size:12.5px;color:var(--muted)}
.evrow .p{font-size:12.5px;font-weight:700;flex:none;text-align:right}
.secthead{display:flex;justify-content:space-between;align-items:baseline}.secthead b{font-size:17px;font-weight:700;letter-spacing:-.02em}.secthead a{font-size:13.5px;font-weight:600}

/* event page */
.evhero{margin:0 -22px;padding:0 22px 22px;min-height:260px;display:flex;flex-direction:column;justify-content:flex-end;color:var(--ink);position:relative;overflow:hidden;border-radius:0 0 28px 28px}
.evhero::before{content:"";position:absolute;right:-70px;top:10px;width:300px;height:300px;border-radius:50%;border:40px solid rgba(10,11,16,.10)}
.evhero .lbl{position:relative;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.evhero h1{position:relative;margin:8px 0 0;font-size:36px;font-weight:800;letter-spacing:-.045em;line-height:.98}
.evtop{position:absolute;left:0;right:0;top:0;padding:18px 20px;display:flex;justify-content:space-between;z-index:3;pointer-events:none}
.evtop>*{pointer-events:auto}
.roundbtn{width:42px;height:42px;border-radius:50%;background:rgba(10,11,16,.85);color:#F2F3F7;display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tile{border-radius:16px;background:var(--panel);border:1px solid var(--line);padding:12px;min-width:0}
.tile span{font-family:var(--mono);font-size:10.5px;color:var(--dim);letter-spacing:.08em;text-transform:uppercase}
.tile b{display:block;font-size:17px;font-weight:700;margin-top:4px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile em{font-style:normal;font-size:11.5px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.placerow{display:flex;align-items:center;gap:12px;border-radius:16px;background:var(--panel);border:1px solid var(--line);padding:12px 14px;color:inherit;text-decoration:none}
.placerow svg{color:var(--accent);flex:none}
.facepile{display:flex}.facepile>*{margin-left:-9px;box-shadow:0 0 0 2px var(--bg);border-radius:50%}.facepile>*:first-child{margin-left:0}
.actionbar{position:fixed;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));max-width:492px;margin:0 auto;min-height:76px;border-radius:24px;background:rgba(22,24,33,.96);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 18px;z-index:22;backdrop-filter:blur(16px);box-shadow:0 12px 34px rgba(0,0,0,.45)}
.actionbar .pr b{font-size:20px;font-weight:800;letter-spacing:-.03em}.actionbar .pr span{display:block;font-size:12px;color:var(--dim)}
.actionbar .btn{height:56px;padding:0 26px;border-radius:18px;font-size:16px}
.has-actionbar .mnav{display:none}

/* pass */
.passcard{background:var(--text);color:var(--ink)}
.passcard .pc-ring{border-color:var(--accent)}
.passcard .pc-pill{background:var(--ink);color:var(--accent)}
.nextev{background:var(--accent);color:var(--ink);border-radius:26px}
