:root{--bg: #0e1016;--bg-2: #161a24;--surface: #1b2030;--surface-2: #222838;--surface-3: #2b3346;--border: #303a52;--border-soft: #262e42;--text: #eef1f8;--text-dim: #aab3c8;--text-faint: #6f7a94;--primary: #7c5cff;--on-primary: #ffffff;--primary-soft: #211c44;--accent: #2fd9c6;--on-accent: #062a26;--accent-soft: #10322f;--warn: #ffb020;--danger: #ff5d6c;--success: #34d977;--gold: #ffcc4d;--radius: 14px;--radius-sm: 9px;--shadow: 0 10px 30px rgba(0, 0, 0, .45);--shadow-sm: 0 4px 14px rgba(0, 0, 0, .35);--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Rajdhani", "Inter", system-ui, sans-serif;--font-brand: "Orbitron", "Rajdhani", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--text-faint);font-size:12.5px}.link{color:var(--accent);font-weight:600;cursor:pointer}.btn{font-family:var(--font-ui);font-weight:600;font-size:13.5px;border:none;border-radius:10px;padding:10px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:filter .12s,transform .12s;white-space:nowrap}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-accent{background:var(--accent);color:var(--on-accent)}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-soft{background:var(--surface-2);color:var(--text)}.btn-gold{background:var(--gold);color:#2a1d00}.btn-danger{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 45%,transparent)}.btn-sm{padding:7px 12px;font-size:12.5px;border-radius:8px}.btn-icon{padding:7px 9px}.btn svg{width:16px;height:16px;flex:0 0 auto}.field{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:11px 13px;color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;outline:none;transition:border-color .12s,box-shadow .12s}.field::placeholder{color:var(--text-faint)}.field:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}textarea.field{resize:vertical;min-height:64px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.panel h4{margin:0 0 4px;font-family:var(--font-display);font-weight:700;font-size:17px}.panel .sub{color:var(--text-faint);font-size:12.5px;margin:0 0 14px}.head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.head h3{font-family:var(--font-display);font-weight:700;font-size:21px;margin:0}.pill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill-online{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}.pill-game{color:var(--primary);background:var(--primary-soft)}.pill-away{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.pill-offline{color:var(--text-faint);background:var(--surface-3)}.tag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px}.tag-genre{background:var(--surface-3);color:var(--text-dim)}.tag-realtime{background:var(--primary-soft);color:var(--primary)}.tag-turn{background:var(--accent-soft);color:var(--accent)}.av-wrap{position:relative;display:inline-grid}.av-wrap .stat{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid var(--bg-2)}.s-online{background:var(--success)}.s-game{background:var(--primary)}.s-away{background:var(--warn)}.s-offline{background:var(--text-faint)}.av{border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff}.av-sm{width:32px;height:32px;font-size:11px}.av-md{width:34px;height:34px;font-size:13px}.av-lg{width:44px;height:44px;font-size:14px}.appbar{display:flex;align-items:center;gap:16px;padding:0 22px;height:62px;background:var(--bg-2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.brand{font-family:var(--font-brand);font-weight:800;font-size:20px;letter-spacing:.04em;cursor:pointer}.brand .dot{color:var(--primary)}.nav{display:flex;gap:4px;margin-left:6px}.nav a{color:var(--text-dim);padding:7px 13px;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer}.nav a.active{color:var(--text);background:var(--surface-2)}.nav a:hover{color:var(--text)}.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 12px;width:230px;color:var(--text-faint);font-size:13px}.search input{border:none;background:none;outline:none;color:var(--text);font-family:inherit;font-size:13px;width:100%}.wallet{display:flex;align-items:center;gap:7px;font-weight:700;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 12px;cursor:pointer}.wallet .coin{color:var(--gold)}.icon-btn{position:relative;width:38px;height:38px;border-radius:10px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;cursor:pointer;font-size:16px;color:var(--text-dim)}.icon-btn:hover{color:var(--text)}.badge{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}.shell{display:grid;grid-template-columns:1fr 286px;gap:22px;padding:22px;max-width:1340px;margin:0 auto}@media (max-width: 1080px){.shell{grid-template-columns:1fr}.dock{display:none}}section{margin-bottom:24px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 760px){.grid{grid-template-columns:repeat(2,1fr)}}.game-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .14s,border-color .14s}.game-card:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:var(--shadow-sm)}.game-art{height:116px;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.05em;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5)}.art-ludo{background:linear-gradient(135deg,#e2444a,#f2c14e 35%,#36c46b 65%,#3d7bff)}.art-sling{background:linear-gradient(135deg,#3a2bd0,#7c5cff 55%,#2fd9c6)}.art-rts{background:linear-gradient(135deg,#6b2f12,#ff7a1a 60%,#ffc043)}.art-cards{background:linear-gradient(135deg,#5a1138,#ff2e97 60%,#ffc23d)}.art-puzzle{background:linear-gradient(135deg,#11507a,#22c1a4 60%,#56b8ff)}.art-pool{background:linear-gradient(135deg,#0c3b2e,#1fb6a8 60%,#9be7d8)}.art-rogue{background:linear-gradient(135deg,#243018,#7bbf3a 60%,#b4ff39)}.art-ttt{background:linear-gradient(135deg,#3a1d5e,#7c5cff 60%,#c9b8ff)}.art-c4{background:linear-gradient(135deg,#7a1020,#e2444a 50%,#f2c14e)}.art-gomoku{background:linear-gradient(135deg,#102a4a,#3d7bff 60%,#9bd0ff)}.art-snakes{background:linear-gradient(135deg,#0c3b2e,#36c46b 55%,#f2c14e)}.game-body{padding:12px 13px 14px}.game-title{font-weight:700;font-size:14.5px;margin:0 0 3px}.game-meta{display:flex;gap:8px;color:var(--text-faint);font-size:12px;margin-bottom:11px}.game-foot{display:flex;align-items:center;justify-content:space-between}.players{color:var(--text-dim);font-size:12px;display:flex;align-items:center;gap:5px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 22%,transparent)}.seats{display:flex;flex-direction:column;gap:9px}.seat{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.seat.turn{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.seat .nm{font-weight:600;font-size:13px}.seat .role{font-size:11px;color:var(--text-faint)}.seat .right{margin-left:auto;display:flex;align-items:center;gap:8px}.ctrl{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:6px}.ctrl-remote{background:var(--primary-soft);color:var(--primary)}.ctrl-local{background:var(--accent-soft);color:var(--accent)}.ctrl-ai{background:var(--surface-3);color:var(--text-dim)}.ctrl-open{background:transparent;color:var(--text-faint);border:1px dashed var(--border)}.dock .panel{padding:14px;position:sticky;top:84px}.fr-row{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:9px;cursor:pointer}.fr-row:hover{background:var(--surface-2)}.fr-row .nm{font-weight:600;font-size:13px;line-height:1.2}.fr-row .st{font-size:11px;color:var(--text-faint)}.fr-row .st.game{color:var(--primary)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{padding:10px 14px;font-weight:600;font-size:13px;color:var(--text-dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:7px}.tab.active{color:var(--text);border-bottom-color:var(--primary)}.tab .cnt{background:var(--surface-3);color:var(--text-dim);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px}.tab.active .cnt{background:var(--primary-soft);color:var(--primary)}.flist{display:flex;flex-direction:column}.fcard{display:flex;align-items:center;gap:13px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:9px}.fcard .info{min-width:0}.fcard .nm{font-weight:700;font-size:14px}.fcard .meta{font-size:12px;color:var(--text-faint)}.fcard .meta.game{color:var(--primary)}.fcard .right{margin-left:auto;display:flex;align-items:center;gap:8px}.add-bar{display:flex;gap:10px;margin-bottom:18px}.add-bar .inp{flex:1;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text-faint)}.add-bar .inp input{flex:1;border:none;background:none;outline:none;color:var(--text);font-family:inherit;font-size:13px}.empty{text-align:center;padding:48px 20px;color:var(--text-faint)}.empty .ic{font-size:34px;opacity:.6}.empty b{display:block;color:var(--text-dim);margin:10px 0 4px;font-size:15px}.kebab{position:relative}.kebab .pop{position:absolute;right:0;top:38px;width:184px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:30}.kebab .mi{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px;color:var(--text-dim);font-size:12.5px;font-weight:500;cursor:pointer}.kebab .mi:hover{background:var(--surface-2);color:var(--text)}.kebab .mi.danger{color:var(--danger)}.pf-hero{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);margin-bottom:22px}.pf-cover{height:120px;background:radial-gradient(120% 160% at 10% 0%,var(--primary-soft),transparent 55%),radial-gradient(120% 160% at 100% 0%,var(--accent-soft),transparent 55%),var(--surface-2)}.pf-body{display:flex;align-items:flex-end;gap:18px;padding:0 22px 18px;margin-top:-44px;flex-wrap:wrap}.pf-av{width:96px;height:96px;border-radius:24px;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:34px;color:#fff;border:4px solid var(--surface)}.pf-id{flex:1;padding-bottom:4px;min-width:180px}.pf-id h2{font-family:var(--font-display);font-weight:700;font-size:26px;margin:0}.pf-id .handle{color:var(--text-faint);font-size:13px}.pf-id .lvl{display:inline-flex;align-items:center;gap:6px;margin-top:6px;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:12px;padding:4px 10px;border-radius:999px}.pf-actions{display:flex;gap:8px;padding-bottom:6px;flex-wrap:wrap}.pf-av-dice{position:absolute;bottom:2px;right:2px;padding:2px 6px;font-size:13px;line-height:1;border-radius:8px}.stat-table{width:100%;border-collapse:collapse;font-size:13.5px}.stat-table th{text-align:left;color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:600}.stat-table td{padding:11px 14px;border-bottom:1px solid var(--border-soft)}.stat-table tbody tr:last-child td{border-bottom:none}.stat-table tbody tr:hover{background:var(--surface-2)}.stat-table td:first-child{font-weight:600}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}@media (max-width: 760px){.stats{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat .v{font-family:var(--font-display);font-weight:700;font-size:26px}.stat .v.accent{color:var(--accent)}.stat .v.gold{color:var(--gold)}.stat .l{color:var(--text-faint);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.hist-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-soft)}.hist-row:last-child{border-bottom:none}.res{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:12px}.res.w{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}.res.l{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.game-stage{display:grid;grid-template-columns:1fr 300px;gap:18px}@media (max-width: 1080px){.game-stage{grid-template-columns:1fr}}.game-mount{width:100%;aspect-ratio:16 / 10;background:#0a0c12;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.game-mount canvas{display:block;width:100%;height:100%}.game-canvas-wrap{position:relative}.hud-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;border-radius:var(--radius);overflow:hidden}.hud-overlay>*{pointer-events:auto}.hud-scrim{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#080a129e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.hud-dialog{text-align:center;max-width:340px;background:color-mix(in srgb,var(--surface) 86%,transparent);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 60px #00000080;padding:26px 24px;display:flex;flex-direction:column;align-items:center;gap:8px}.hud-dialog h3{font-family:var(--font-display);font-weight:700;font-size:21px;margin:4px 0 0;color:var(--text)}.hud-dialog p{margin:0;font-size:12.5px}.hud-dialog .hud-status{font-size:11.5px;color:var(--text-faint);text-transform:capitalize}.hud-dialog-actions{display:flex;gap:10px;margin-top:10px}.hud-dialog .btn{margin-top:6px}.hud-spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--primary);animation:hud-spin .8s linear infinite;margin-bottom:6px}.hud-trophy{font-size:40px;line-height:1}@keyframes hud-spin{to{transform:rotate(360deg)}}.hud-next{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:12.5px}.mock-ad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#060810d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mock-ad-card{width:min(420px,88vw);text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:30px 26px;box-shadow:0 24px 60px #0009}.mock-ad-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);border:1px solid var(--border);border-radius:5px;padding:1px 6px;margin-bottom:14px}.mock-ad-title{font-size:13.5px;color:var(--text-dim);margin-bottom:6px}.mock-ad-count{font-family:var(--font-display);font-weight:800;font-size:44px;color:var(--primary);margin-bottom:10px}.mock-ad-note{font-size:11px;color:var(--text-faint);line-height:1.4}.invite-code{margin:8px 0 2px;padding:10px 18px;font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:8px;color:var(--text);background:color-mix(in srgb,var(--primary) 16%,transparent);border:1px dashed color-mix(in srgb,var(--primary) 55%,transparent);border-radius:12px;cursor:pointer;-webkit-user-select:all;user-select:all}.invite-code:hover{background:color-mix(in srgb,var(--primary) 24%,transparent)}.hud-banner{position:absolute;top:14px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--text);pointer-events:none}.hud-banner .hud-dot{width:9px;height:9px;border-radius:50%;background:var(--turn-color, var(--accent));box-shadow:0 0 8px var(--turn-color, var(--accent))}.hud-banner .hud-timer{margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-dim);font-size:12px;font-variant-numeric:tabular-nums}.hud-banner .hud-timer.low{background:color-mix(in srgb,var(--danger) 22%,transparent);color:var(--danger)}.dice-dock{position:absolute;left:80%;top:72%;transform:translate(-50%,-50%)}.dice-3d{position:relative;perspective:620px;pointer-events:auto;filter:drop-shadow(0 12px 20px rgba(0,0,0,.55))}.dice-3d.rollable{cursor:pointer;animation:dice-bob 1.8s ease-in-out infinite}.dice-3d.rollable:hover{filter:drop-shadow(0 14px 24px rgba(124,92,255,.5))}.dice-cube{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.75,.2,1)}.dice-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:10%;background:linear-gradient(150deg,#fff,#e3e7f4);border:1px solid rgba(120,110,160,.35);border-radius:16%;backface-visibility:hidden}.dice-3d.rollable .dice-face{border-color:var(--dice-accent, #7c5cff);box-shadow:0 0 0 1px var(--dice-accent, #7c5cff)}.dice-3d.rollable{filter:drop-shadow(0 12px 20px rgba(0,0,0,.5)) drop-shadow(0 0 5px color-mix(in srgb,var(--dice-accent, #7c5cff) 40%,transparent))}.dice-face .pip{align-self:center;justify-self:center;width:32%;height:32%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#34304a,#0b0912);box-shadow:inset 0 -1px 1px #ffffff40,0 1px 1px #00000080}.dice-hint{position:absolute;left:50%;bottom:-20px;transform:translate(-50%);white-space:nowrap;font-size:11px;color:var(--text-faint)}@keyframes dice-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.menu{position:absolute;top:54px;right:22px;width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;z-index:50}.menu .mi{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:13px;font-weight:500}.menu .mi:hover{background:var(--surface-2);color:var(--text)}.menu .mi.danger{color:var(--danger)}.menu .sep{height:1px;background:var(--border-soft);margin:6px 4px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ca8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:60;padding:20px}.modal{width:440px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.modal h3{font-family:var(--font-display);font-weight:700;font-size:20px;margin:0 0 4px}.modal p.sub{color:var(--text-dim);font-size:13px;margin:0 0 16px}.modal .field{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:11px 13px;color:var(--text);font-family:inherit;font-size:14px;outline:none;margin-bottom:14px}.modal .field:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}.modal .warnbox{display:flex;gap:11px;padding:12px;border-radius:10px;background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);margin-bottom:16px}.modal .warnbox .ic{font-size:20px}.modal .warnbox span{font-size:12.5px;color:var(--text-dim)}.modal .invite-list{max-height:240px;overflow-y:auto;margin-bottom:14px}.modal .chk{display:flex;align-items:center;gap:11px;padding:9px;border-radius:9px;cursor:pointer}.modal .chk:hover{background:var(--surface-2)}.modal .chk .box{margin-left:auto;width:20px;height:20px;border-radius:6px;border:1px solid var(--border);display:grid;place-items:center;color:var(--on-primary);font-size:12px}.modal .chk.sel .box{background:var(--primary);border-color:var(--primary)}.close-x{float:right;cursor:pointer;color:var(--text-faint);font-size:18px;line-height:1}.consent{position:fixed;bottom:16px;left:16px;right:16px;max-width:1300px;margin:0 auto;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:13px 18px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow);z-index:55}.consent p{margin:0;font-size:12.5px;color:var(--text-dim);flex:1}.consent a{color:var(--accent);text-decoration:underline}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%) translateY(20px);background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:10px;padding:12px 16px;box-shadow:var(--shadow);font-size:13px;opacity:0;transition:.25s;z-index:70;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.dm-layout{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}@media (max-width: 720px){.dm-layout{grid-template-columns:1fr}}.dm-list{max-height:70vh;overflow-y:auto}.dm-peer{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;cursor:pointer}.dm-peer:hover{background:var(--surface-2)}.dm-peer.active{background:var(--primary-soft)}.dm-peer .nm{font-size:14px;font-weight:600}.dm-thread{display:flex;flex-direction:column;height:70vh;padding:0}.dm-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.dm-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}.dm-bubble{max-width:72%;align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);padding:8px 12px;border-radius:14px 14px 14px 4px;font-size:14px;line-height:1.4;word-break:break-word}.dm-bubble.mine{align-self:flex-end;background:var(--primary);color:#fff;border-color:transparent;border-radius:14px 14px 4px}.dm-compose{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border)}.dm-compose .field{flex:1}.qc-bar{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:6px;background:#0e1320d1;border:1px solid var(--border);border-radius:999px;padding:6px 8px;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.qc-bar button{background:transparent;border:none;font-size:18px;cursor:pointer;padding:2px 6px;border-radius:8px;line-height:1}.qc-bar button:hover{background:var(--surface-3)}.qc-feed{position:absolute;bottom:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}.qc-pop{background:#0e1320e6;border:1px solid var(--border);border-radius:14px;padding:6px 12px;font-size:14px;animation:qc-rise .25s ease}@keyframes qc-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.site-footer{border-top:1px solid var(--border);margin-top:48px;background:var(--surface)}.ft-inner{max-width:1340px;margin:0 auto;padding:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.ft-brand{font-family:var(--font-display);font-weight:800}.ft-brand .dot{color:var(--accent)}.ft-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap;flex:1}.ft-links a{color:var(--text-dim);text-decoration:none;font-size:13.5px}.ft-links a:hover{color:var(--text)}.ft-sep{width:1px;height:16px;background:var(--border)}.ft-copy{color:var(--text-faint);font-size:12.5px}
