*{box-sizing:border-box}:root{--ink: #1a2e2b;--muted: #5d736e;--bg0: #f2faf6;--bg1: #e7f3f8;--surface: #ffffff;--surface-soft: rgba(255, 255, 255, .78);--line: #d3e5df;--brand: #1f8a7a;--brand-deep: #176f62;--brand-soft: #dff3ee;--sky: #3d8fd4;--sky-soft: #e6f2fb;--danger: #c43c32;--radius: 16px;--shadow-sm: 0 1px 2px rgba(26, 46, 43, .05);--shadow-md: 0 10px 28px rgba(26, 46, 43, .08);--font: "Outfit", "Avenir Next", "Segoe UI", sans-serif;--forum-indent: 16px}body{margin:0;font-family:var(--font);background:radial-gradient(1200px 500px at 10% -10%,rgba(61,143,212,.14),transparent 55%),radial-gradient(900px 420px at 100% 0%,rgba(31,138,122,.16),transparent 50%),linear-gradient(180deg,var(--bg0) 0%,var(--bg1) 100%);background-attachment:fixed;color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}.app{max-width:920px;margin:0 auto;padding:0 18px;min-height:100vh;display:flex;flex-direction:column}.ui-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 16px;color:var(--muted);text-align:center}.ui-loading--page{min-height:42vh}.ui-loading--block{min-height:96px}.ui-loading--inline{flex-direction:row;gap:10px;padding:12px 4px;min-height:0;justify-content:flex-start}.ui-loading-spinner{width:28px;height:28px;border:2.5px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;animation:ui-loading-spin .7s linear infinite;flex-shrink:0}.ui-loading--inline .ui-loading-spinner{width:18px;height:18px;border-width:2px}.ui-loading-label{font-size:.95rem;font-weight:500;letter-spacing:-.01em}@keyframes ui-loading-spin{to{transform:rotate(360deg)}}.navbar{position:relative;z-index:40;display:flex;align-items:center;gap:10px;margin:10px 0 22px;border-bottom:none;background:var(--surface-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(211,229,223,.9);border-radius:999px;padding:10px 12px 10px 16px;box-shadow:var(--shadow-sm)}.navbar .brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:1.15rem;letter-spacing:-.02em;text-decoration:none;color:var(--brand);min-width:0;flex-shrink:1}.brand-icon{width:22px;height:22px;color:var(--sky);flex-shrink:0}.brand-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-menu{display:flex;align-items:center;gap:4px;margin-left:auto}.navbar-tools{display:flex;align-items:center;gap:2px;flex-shrink:0}.navbar-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:999px;background:transparent;color:var(--brand);cursor:pointer}.navbar-toggle:hover{background:var(--brand-soft)}.navbar-backdrop{display:none}.navbar-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--muted);font-weight:500;font-size:.92rem;padding:8px 12px;border-radius:999px;border:none;background:transparent;cursor:pointer;font-family:inherit;white-space:nowrap}.navbar-link:hover{color:var(--brand);background:rgba(31,138,122,.08)}.navbar-link--btn{color:var(--muted)}.navbar-link--cta{background:var(--brand);color:#fff!important;font-weight:600}.navbar-link--cta:hover{background:var(--brand-deep);color:#fff!important}.ui-icon{width:18px;height:18px;flex-shrink:0;display:block}.ui-action{display:inline-flex;align-items:center;justify-content:center;gap:6px}.ui-action-label{min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}.credit-progress{display:flex;flex-direction:column;gap:8px;margin:4px 0 14px}.credit-progress-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.credit-progress-pct{font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.credit-progress-track{height:10px;border-radius:999px;background:var(--brand-soft);overflow:hidden}.credit-progress-fill{height:100%;border-radius:inherit;background:var(--brand);transition:width .35s ease}.credit-progress-fill--warn{background:#d0891a}.credit-progress-fill--danger{background:var(--danger)}h1{margin-top:0;letter-spacing:-.03em}form{display:flex;flex-direction:column;gap:14px}label{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:.9rem}input{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;background:#fff}input:focus{outline:2px solid rgba(31,138,122,.35);border-color:var(--brand)}button{padding:10px 16px;border:none;border-radius:10px;background:var(--brand);color:#fff;font-size:1rem;font-family:inherit;font-weight:600;cursor:pointer;transition:background .15s ease,transform .15s ease}button:hover{background:var(--brand-deep)}button:disabled{opacity:.6;cursor:not-allowed}.error{background:#fdecea;color:#b42318;border:1px solid #f5c2c0;border-radius:10px;padding:10px 12px}.turnstile-wrap{margin:8px 0;min-height:78px}.btn-secondary{background:var(--brand-soft);color:var(--brand-deep)}.btn-secondary:hover{background:#cfeae3}.row{display:flex;gap:12px}.hero{text-align:center;padding:40px 0}.hero h1{font-size:2.4rem}.cards-page{padding:8px 0 28px;flex:1}.cards-hero{text-align:center;max-width:640px;margin:8px auto 28px;animation:cards-hero-in .55s ease-out both}@keyframes cards-hero-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.cards-brand{margin:0 0 10px;font-size:clamp(2rem,5vw,2.75rem);font-weight:800;letter-spacing:-.04em;line-height:1.1;color:var(--brand)}.cards-headline{margin:0 0 10px;font-size:clamp(1.35rem,3.2vw,1.7rem);font-weight:700;letter-spacing:-.02em;color:var(--ink)}.cards-lead{margin:0 auto;max-width:28rem;font-size:1.02rem;color:var(--muted);line-height:1.55}.cards-roles{margin-top:8px}.cards-status{text-align:center}.guest-signup-prompt{margin:28px auto 0;max-width:560px;padding:14px 18px;border-radius:14px;background:var(--sky-soft);border:1px solid #cfe0ef;font-size:.95rem;color:var(--muted);text-align:center}.cards-create-promo{margin-top:32px}.guest-signup-link{font-weight:700;color:var(--sky);text-decoration:none}.guest-signup-link:hover{text-decoration:underline}.auth-name-hint{margin-top:-8px;margin-bottom:12px;font-size:.88rem}.auth-legal-agree{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;gap:10px;margin:14px 0 8px;font-size:.92rem;line-height:1.45;color:var(--ink);cursor:pointer}.auth-legal-agree input[type=checkbox]{margin:.2em 0 0;flex-shrink:0;width:16px;height:16px;accent-color:var(--brand)}.auth-legal-agree>span{min-width:0;flex:1;white-space:normal;overflow-wrap:anywhere}.auth-legal-agree a{color:var(--brand);font-weight:600;text-decoration:underline}.sample-card{min-height:180px;border-radius:16px;background:linear-gradient(145deg,var(--brand-soft) 0%,var(--sky-soft) 100%);display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}.sample-card-empty{color:var(--muted);font-size:.9rem}.cards-hint{text-align:center;margin-top:8px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:8px 0 0}.role-card{display:flex;flex-direction:column;gap:8px;padding:20px;min-height:148px;border-radius:18px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;animation:role-card-in .45s ease-out both;animation-delay:calc(var(--card-i, 0) * 60ms)}@keyframes role-card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.role-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#b7dbd2}.role-card-shell{display:flex;flex-direction:column;gap:0}.role-card-shell .role-card{border-bottom-left-radius:0;border-bottom-right-radius:0}.role-card-reviews-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-top:none;border-radius:0 0 18px 18px;background:var(--surface);color:var(--muted, #667085);font:inherit;font-size:.85rem;font-weight:600;padding:8px 12px;cursor:pointer;transition:color .15s ease,background .15s ease}.role-card-reviews-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--surface) 88%,#b7dbd2)}.role-card-stats{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:8px;width:100%;font-size:.82rem;color:var(--muted, #667085);margin-top:auto}.role-card-stats-left{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:8px;min-width:0}.role-card-stat{display:inline-flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:3px}.role-card-stat--meta{gap:6px}.role-card-meta-icon{display:inline-flex;align-items:center;justify-content:center;gap:3px;color:var(--muted, #667085);line-height:1}.role-card-meta-svg{width:.95em;height:.95em;flex-shrink:0}.role-card-meta-count{font-variant-numeric:tabular-nums;font-size:.92em;line-height:1}.role-card-stat--tokens{margin-left:auto;gap:4px}.role-card-stat-star{color:#d4a017;font-size:.9em}.role-card-stat-count{opacity:.75}.role-card-stat-tokens-icon{width:.95em;height:.95em;flex-shrink:0}.review-modal-card{max-width:min(480px,94vw);max-height:min(88vh,720px);overflow:auto}.review-form{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.review-form textarea{width:100%;resize:vertical;min-height:72px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);font:inherit;background:var(--surface);color:var(--ink)}.review-stars{display:flex;gap:4px}.review-star{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#c5c9d0;font-size:1.55rem;line-height:1;cursor:pointer;padding:2px 4px;transition:color .12s ease,transform .12s ease}.review-star:hover:not(:disabled),.review-star--on{color:#d4a017}.review-star:hover:not(:disabled){transform:scale(1.08)}.review-star:disabled{cursor:default;opacity:.7}.review-list-title{margin:0 0 8px;font-size:.95rem}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.review-item{padding:10px 0;border-top:1px solid var(--line)}.review-item-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px}.review-item-stars{color:#d4a017;letter-spacing:1px;font-size:.9rem}.review-item-body{margin:4px 0;white-space:pre-wrap;word-break:break-word}.review-item-date{font-size:.78rem}.role-card-name{font-weight:700;font-size:1.12rem;letter-spacing:-.02em;color:var(--ink)}.role-card-desc{font-size:.9rem;color:var(--muted);line-height:1.45}.role-card-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#9fd5cb 0%,#7eb8e4 100%);color:#fff;font-weight:700;font-size:1.25rem;flex-shrink:0;box-shadow:inset 0 0 0 2px #ffffff59}.role-card-avatar img{width:100%;height:100%;object-fit:cover;display:block}.role-card-badges{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.role-card-badges .badge{font-size:.75rem;padding:2px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);border:1px solid #c5e6de}.role-card-badges .badge-memory{background:#fff4d6;color:#8a5a10;border-color:#f0dba0}:root{--tg-wallpaper: #aec9d9;--tg-wallpaper-gradient: linear-gradient( 165deg, #c5d8eb 0%, #b6cee3 28%, #aec9d9 58%, #9eb9cd 100% );--tg-wallpaper-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg transform='scale(1%20-1)%20translate(0%20-160)' fill='none' stroke='%237a92ab' stroke-width='1.2' stroke-opacity='0.32'%3E%3Cpath d='M20 92h16M28 84v16'/%3E%3Cpath d='M98 28h14M105 21v14'/%3E%3Cpath d='M44 72c8-6 16-6 24 0'/%3E%3Cpath d='M108 128c6-5 14-5 20 0'/%3E%3Crect x='86' y='70' width='12' height='12' rx='2'/%3E%3Cpath d='M18 128l10-4 4 10'/%3E%3Cpath d='M140 22l8 3-3 8'/%3E%3C/g%3E%3C/svg%3E");--tg-header-bg: #ffffff;--tg-header-border: #dfe5eb;--tg-header-icon: #0e1621;--tg-title: #0e1621;--tg-subtitle: #708499;--tg-avatar-a: #3390ec;--tg-avatar-b: #6db3f2;--tg-sender: #3390ec;--tg-in-bubble: #ffffff;--tg-in-text: #0e1621;--tg-in-border: rgba(16, 35, 47, .06);--tg-out-bubble: #effdde;--tg-out-text: #0e1621;--tg-out-border: rgba(16, 35, 47, .04);--tg-meta: #8d969f;--tg-ticks: #4fae4e;--tg-typing: #9aa3ad;--tg-accent: #3390ec;--tg-accent-hover: #2c7fd6;--tg-input-bg: #ffffff;--tg-input-clip: #e5e7ea;--tg-input-text: #0e1621;--tg-input-placeholder: #9aa3ad;--tg-composer-scrollbar: rgba(16, 35, 47, .28);--tg-icon: #7d8ca3;--tg-error-bg: #fdecea;--tg-error-text: #b42318;--tg-error-border: #f5c2c0;--tg-bubble-shadow: 0 1px 1px rgba(16, 35, 47, .08)}@media (prefers-color-scheme: dark){:root{--tg-wallpaper: #0e1621;--tg-wallpaper-gradient: linear-gradient(165deg, #121c28 0%, #0e1621 55%, #0b121b 100%);--tg-wallpaper-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg transform='scale(1%20-1)%20translate(0%20-160)' fill='none' stroke='%231c2a38' stroke-width='1.2' stroke-opacity='0.95'%3E%3Cpath d='M20 92h16M28 84v16'/%3E%3Cpath d='M98 28h14M105 21v14'/%3E%3Cpath d='M44 72c8-6 16-6 24 0'/%3E%3Cpath d='M108 128c6-5 14-5 20 0'/%3E%3Crect x='86' y='70' width='12' height='12' rx='2'/%3E%3Cpath d='M18 128l10-4 4 10'/%3E%3Cpath d='M140 22l8 3-3 8'/%3E%3C/g%3E%3C/svg%3E");--tg-header-bg: #17212b;--tg-header-border: #0f1a24;--tg-header-icon: #f5f5f5;--tg-title: #f5f5f5;--tg-subtitle: #8a99a8;--tg-avatar-a: #3ba1f2;--tg-avatar-b: #6db3f2;--tg-sender: #6ab3f3;--tg-in-bubble: #182533;--tg-in-text: #f5f5f5;--tg-in-border: #202c3b;--tg-out-bubble: #2b5278;--tg-out-text: #f5f5f5;--tg-out-border: #315f88;--tg-meta: #7d8b99;--tg-ticks: #a5cffb;--tg-typing: #7d8b99;--tg-accent: #3ba1f2;--tg-accent-hover: #2f8de0;--tg-input-bg: #17212b;--tg-input-clip: #0e1621;--tg-input-text: #f5f5f5;--tg-input-placeholder: #7d8b99;--tg-composer-scrollbar: rgba(245, 245, 245, .28);--tg-icon: #aab4c2;--tg-error-bg: #2b2020;--tg-error-text: #ff7676;--tg-error-border: #5c3b3b;--tg-up-bg: #1b2a44;--tg-up-border: #2f4770;--tg-up-text: #bcd3ff;--tg-up-primary-bg: #3b82f6}}.app--chat{position:fixed;top:var(--tg-vv-top, 0px);left:0;right:0;max-width:none;padding:0;min-height:0;height:var(--tg-vvh, 100dvh);max-height:var(--tg-vvh, 100dvh);overflow:hidden;background:var(--tg-wallpaper-gradient)}.tg-chat{display:flex;flex-direction:column;height:100%;min-height:0;max-height:100%;width:100%;max-width:none;margin:0;overflow:hidden;background:var(--tg-wallpaper-gradient);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.tg-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--tg-header-bg);border-bottom:1px solid var(--tg-header-border);box-shadow:0 1px 2px #0000000a;z-index:2;flex-shrink:0}.tg-back{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--tg-sender);text-decoration:none}.tg-back:hover{background:var(--tg-accent-hover);color:#fff}.tg-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.15rem;color:#fff;background:linear-gradient(135deg,var(--tg-avatar-a),var(--tg-avatar-b));flex-shrink:0}.tg-avatar--img{background:transparent}.tg-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.tg-head-info{display:flex;flex-direction:column;min-width:0;flex:1}.tg-head-meta{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap;overflow:hidden}.tg-auth-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.tg-auth-btn{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border-radius:999px;text-decoration:none;font-size:.82rem;font-weight:600;color:var(--tg-sender);background:transparent;border:1px solid var(--tg-header-border);white-space:nowrap}.tg-auth-btn:hover{background:var(--tg-input-clip)}.tg-auth-btn--primary{background:var(--tg-accent);border-color:var(--tg-accent);color:#fff}.tg-auth-btn--primary:hover{background:var(--tg-accent-hover);border-color:var(--tg-accent-hover);color:#fff}.tg-auth-btn .ui-icon{width:16px;height:16px}.tg-title{font-weight:700;color:var(--tg-title);font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-mode-switch{display:inline-flex;flex-shrink:0;border:1px solid var(--tg-header-border);border-radius:999px;overflow:hidden;margin-left:4px}.tg-mode-switch button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--tg-subtitle);font-size:.72rem;font-weight:700;letter-spacing:.01em;padding:5px 9px;line-height:1.1;cursor:pointer}.tg-mode-switch button+button{border-left:1px solid var(--tg-header-border)}.tg-mode-switch button.is-active{background:var(--tg-accent, #3390ec);color:#fff}.tg-subtitle{font-size:.82rem;color:var(--tg-subtitle);white-space:nowrap;flex-shrink:0}.tg-credit{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:.72rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--tg-subtitle);white-space:nowrap}.tg-credit-ring{width:16px;height:16px;transform:rotate(-90deg);flex-shrink:0}.tg-credit-ring-track,.tg-credit-ring-fill{fill:none;stroke-width:4;stroke-linecap:round}.tg-credit-ring-track{stroke:color-mix(in srgb,var(--tg-subtitle) 22%,transparent)}.tg-credit-ring-fill{stroke:var(--tg-sender, #3390ec);transition:stroke-dasharray .35s ease}.tg-credit--warn .tg-credit-ring-fill{stroke:#d0891a}.tg-credit--danger .tg-credit-ring-fill{stroke:var(--danger, #d14343)}.tg-credit-pct{font-weight:600;letter-spacing:-.02em}.tg-guest-quota{display:inline-block;margin-top:2px;font-size:.75rem;color:var(--tg-subtitle);background:rgba(51,144,236,.12);padding:2px 8px;border-radius:999px;align-self:flex-start}.tg-memory{display:inline-flex;align-items:center;gap:5px;flex-shrink:1;min-width:0;font-size:.72rem;line-height:1;color:var(--tg-subtitle);background:rgba(128,134,143,.12);padding:3px 8px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-memory-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tg-memory--generating .tg-memory-dot{background:#f2a33c;animation:tg-memory-pulse 1.2s ease-in-out infinite}.tg-memory--updated .tg-memory-dot{background:#4cbb6c}@keyframes tg-memory-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.tg-log{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:12px 12px 6px;background-color:var(--tg-wallpaper);background-image:radial-gradient(ellipse at 20% 90%,rgba(255,255,255,.28),transparent 45%),radial-gradient(ellipse at 80% 10%,rgba(60,110,140,.18),transparent 42%),var(--tg-wallpaper-pattern),var(--tg-wallpaper-gradient);background-size:auto,auto,160px 160px,cover;background-repeat:no-repeat,no-repeat,repeat,no-repeat;background-position:center,center,center,center}.tg-empty{margin:auto;color:var(--tg-subtitle);font-size:.95rem}.tg-msg{display:flex;flex-direction:column;max-width:82%;margin-bottom:8px;filter:drop-shadow(0 1px 1px rgba(16,35,47,.12))}.tg-msg.tg-out{align-self:flex-end;align-items:flex-end;gap:4px}.tg-msg.tg-in{align-self:flex-start;align-items:flex-start;gap:4px}.tg-sender{font-size:.8rem;font-weight:700;color:var(--tg-sender);margin:2px 14px 0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tg-bubble{position:relative;padding:7px 11px;border-radius:12px;font-size:.98rem;line-height:1.4;border:none;box-shadow:none;animation:tg-pop .28s ease-out}@keyframes tg-pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tg-in .tg-bubble{background:var(--tg-in-bubble);color:var(--tg-in-text)}.tg-out .tg-bubble{background:var(--tg-out-bubble);color:var(--tg-out-text)}.tg-in .tg-bubble--first{border-top-left-radius:0}.tg-in .tg-bubble{border-top-right-radius:12px;border-bottom-right-radius:12px;border-bottom-left-radius:12px}.tg-out .tg-bubble--first{border-top-right-radius:0}.tg-out .tg-bubble{border-top-left-radius:12px;border-bottom-left-radius:12px;border-bottom-right-radius:12px}.tg-in .tg-bubble--first:before{content:"";position:absolute;left:-6px;top:0;width:10px;height:14px;background:var(--tg-in-bubble);clip-path:polygon(100% 0,0 0,100% 100%);z-index:0;pointer-events:none}.tg-out .tg-bubble--first:before{content:"";position:absolute;right:-6px;top:0;width:10px;height:14px;background:var(--tg-out-bubble);clip-path:polygon(0 0,100% 0,0 100%);z-index:0;pointer-events:none}.tg-text{display:block;white-space:pre-wrap;word-break:break-word;position:relative;z-index:1}.tg-md{white-space:normal}.tg-md>:first-child{margin-top:0}.tg-md>:last-child{margin-bottom:0}.tg-md p{margin:.35em 0}.tg-md h1,.tg-md h2,.tg-md h3,.tg-md h4{margin:.45em 0 .25em;font-size:1.05em;font-weight:700;line-height:1.35}.tg-md ul,.tg-md ol{margin:.35em 0;padding-left:1.35em}.tg-md li{margin:.15em 0}.tg-md li>p{margin:.15em 0}.tg-md blockquote{margin:.4em 0;padding:.15em 0 .15em .75em;border-left:3px solid color-mix(in srgb,currentColor 28%,transparent);opacity:.92}.tg-md a{color:var(--tg-sender, #3390ec);text-decoration:underline;text-underline-offset:2px;word-break:break-all}.tg-md hr{margin:.55em 0;border:none;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent)}.tg-md code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;padding:.1em .35em;border-radius:4px;background:color-mix(in srgb,currentColor 8%,transparent)}.tg-md pre{margin:.45em 0;padding:.55em .65em;border-radius:8px;overflow-x:auto;background:color-mix(in srgb,currentColor 8%,transparent)}.tg-md pre code{padding:0;background:none;font-size:.86em;white-space:pre}.tg-md table{margin:.45em 0;border-collapse:collapse;font-size:.92em;max-width:100%;display:block;overflow-x:auto}.tg-md th,.tg-md td{border:1px solid color-mix(in srgb,currentColor 18%,transparent);padding:.25em .45em;text-align:left}.tg-md th{font-weight:700}.tg-md img{max-width:100%;height:auto;border-radius:6px}.tg-md del{opacity:.75}.tg-meta{float:right;display:inline-flex;align-items:center;gap:3px;font-size:.66rem;color:var(--tg-meta);margin:6px 0 0 10px;line-height:1;position:relative;z-index:1}.tg-check{display:inline-flex;align-items:center;color:var(--tg-ticks);margin-left:1px;line-height:0}.tg-checks{display:block;flex-shrink:0}.tg-typing{display:inline-flex;align-items:center;gap:6px;padding:10px 13px;min-width:62px}.tg-typing-label{font-size:.82rem;color:var(--tg-meta)}.tg-typing .tg-dot{width:7px;height:7px;border-radius:50%;background:var(--tg-typing);animation:tg-bounce 1.2s infinite ease-in-out}.tg-typing .tg-dot:nth-child(2){animation-delay:.18s}.tg-typing .tg-dot:nth-child(3){animation-delay:.36s}@keyframes tg-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.tg-sender-row{display:flex;align-items:center;gap:6px}.tg-revert{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:transparent;color:var(--tg-icon);cursor:pointer;padding:0}.tg-revert:hover:not(:disabled){background:var(--tg-input-clip);color:var(--tg-accent)}.tg-revert:disabled{cursor:not-allowed;opacity:.45}.tg-edit-row{display:flex;align-items:flex-end;gap:6px;max-width:100%}.tg-edit-bubbles{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0}.tg-edit{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;margin-bottom:2px;border:none;border-radius:50%;background:transparent;color:var(--tg-icon);cursor:pointer;padding:0}.tg-edit:hover:not(:disabled){background:var(--tg-input-clip);color:var(--tg-accent)}.tg-edit:disabled{cursor:not-allowed;opacity:.45}.tg-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);z-index:50;padding:20px}.tg-modal-card{max-width:380px;width:100%;background:var(--tg-header-bg);color:var(--tg-title);border-radius:14px;padding:20px;box-shadow:0 10px 30px #00000040}.tg-modal-title{margin:0 0 10px;font-size:1.1rem}.tg-modal-body{margin:0 0 18px;font-size:.95rem;line-height:1.45;color:var(--tg-subtitle)}.tg-edit-input{display:block;width:100%;box-sizing:border-box;margin:0 0 18px;padding:10px 12px;border:1px solid var(--tg-input-clip);border-radius:10px;background:var(--tg-composer-bg, var(--tg-header-bg));color:var(--tg-title);font:inherit;line-height:1.4;resize:vertical;min-height:96px}.tg-edit-input:focus{outline:2px solid var(--tg-accent);outline-offset:1px}.tg-modal-actions{display:flex;justify-content:flex-end;gap:10px}.tg-modal-btn{border:none;border-radius:10px;padding:9px 16px;font-size:.92rem;cursor:pointer}.tg-modal-cancel{background:var(--tg-input-clip);color:var(--tg-title)}.tg-modal-confirm{background:var(--tg-accent);color:#fff}.tg-modal-confirm:hover{background:var(--tg-accent-hover)}.tg-error{margin:0;padding:8px 16px;background:var(--tg-error-bg);color:var(--tg-error-text);font-size:.9rem;border-top:1px solid var(--tg-error-border)}.tg-upsell{--tg-up-bg: #eef5ff;--tg-up-border: #c9dcff;--tg-up-text: #1f4e9a;--tg-up-primary-bg: #2563eb;--tg-up-primary-text: #fff}.tg-upsell{margin:0;padding:12px 16px;background:var(--tg-up-bg);color:var(--tg-up-text);font-size:.9rem;border-top:1px solid var(--tg-up-border)}.tg-upsell-title{margin:0 0 4px;font-weight:600}.tg-upsell-body{margin:0 0 10px}.tg-upsell-actions{display:flex;gap:8px;flex-wrap:wrap}.tg-upsell a{text-decoration:none;padding:6px 14px;border-radius:6px;font-weight:500;font-size:.85rem}.tg-up-primary{background:var(--tg-up-primary-bg);color:var(--tg-up-primary-text)!important}.tg-up-secondary{background:transparent;color:var(--tg-up-primary-bg)!important;border:1px solid var(--tg-up-border)}.tg-input{display:flex;flex-direction:row;align-items:flex-end;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--tg-input-bg);border-top:1px solid var(--tg-input-clip);position:relative;flex-shrink:0}.tg-input .tg-composer,.tg-input input{flex:1 1 auto;min-width:0;padding:10px 14px;border:1px solid transparent;background:var(--tg-input-clip);color:var(--tg-input-text);border-radius:22px;font-family:inherit;font-size:1rem;line-height:1.35;outline:none;transition:border-color .15s ease}.tg-input .tg-composer{display:block;width:100%;min-height:40px;max-height:min(160px,36vh);resize:none;overflow-x:hidden;overflow-y:hidden;field-sizing:content;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--tg-composer-scrollbar) transparent}.tg-input .tg-composer::-webkit-scrollbar{width:4px}.tg-input .tg-composer::-webkit-scrollbar-track{background:transparent}.tg-input .tg-composer::-webkit-scrollbar-thumb{background-color:var(--tg-composer-scrollbar);border-radius:999px}.tg-input .tg-composer::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--tg-composer-scrollbar) 100%,#000 20%)}.tg-input .tg-composer::placeholder,.tg-input input::placeholder{color:var(--tg-input-placeholder)}.tg-input .tg-composer:focus,.tg-input input:focus{border-color:var(--tg-accent)}.tg-count{flex:0 0 auto;align-self:flex-end;font-size:.72rem;color:var(--tg-input-placeholder);padding:0 4px 12px;white-space:nowrap}.tg-input .tg-emoji-wrap,.tg-input .tg-send,.tg-input .tg-stop{margin-bottom:2px}.tg-emoji-wrap{position:relative;flex:0 0 auto}.tg-emoji,.tg-send,.tg-stop{display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;padding:0;flex:0 0 auto}.tg-emoji{width:40px;height:40px;border-radius:50%;background:transparent;color:var(--tg-icon)}.tg-emoji:hover,.tg-emoji--open{background:var(--tg-input-clip);color:var(--tg-accent)}.tg-emoji:disabled{opacity:.45;cursor:not-allowed}.tg-emoji-picker{position:absolute;left:0;bottom:calc(100% + 8px);z-index:5;display:grid;grid-template-columns:repeat(6,1fr);gap:2px;width:min(280px,calc(100vw - 24px));max-height:220px;overflow-y:auto;padding:8px;background:var(--tg-input-bg);border:1px solid var(--tg-input-clip);border-radius:14px;box-shadow:0 8px 24px #0000002e}.tg-emoji-item{width:40px;height:40px;border:none;background:transparent;border-radius:8px;font-size:1.35rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.tg-emoji-item:hover{background:var(--tg-input-clip)}.tg-send{width:44px;height:44px;border-radius:50%;background:var(--tg-accent);color:#fff}.tg-send:hover{background:var(--tg-accent-hover)}.tg-send:disabled{background:#9cc8f2;cursor:not-allowed}.tg-stop{width:44px;height:44px;border-radius:50%;background:#ff5c5c;color:#fff}.tg-stop:hover{background:#e44b4b}@media (max-width: 640px){.tg-msg{max-width:92%}}@media (max-width: 640px){.card-grid{grid-template-columns:1fr}}.muted{color:var(--muted)}.dashboard-home{padding-bottom:24px}.dashboard-notice{margin-top:16px;padding:14px 16px;border:1px solid #e2c97a;background:#fff8e6;border-radius:10px;color:#5c4a12}.dashboard-notice-title{display:block;font-size:.98rem;margin-bottom:6px}.dashboard-notice-body{margin:0;font-size:.92rem;line-height:1.45}.dashboard-notice-actions{margin:10px 0 0}.dashboard-notice-actions a{font-weight:600}.dashboard-section{margin-top:16px}.dashboard-section .card-grid{margin-top:12px}.dashboard-create-role{margin:18px 0 0;text-align:center}.dashboard-create-role-link{font-weight:700;color:var(--sky, #1a73e8);text-decoration:none}.dashboard-create-role-link:hover{text-decoration:underline}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}@media (max-width: 640px){.dashboard-grid{grid-template-columns:1fr}}.conversation-list{list-style:none;margin:12px 0 0;padding:0}.conversation-list li{border-bottom:1px solid #eef0f3}.conversation-list li:last-child{border-bottom:none}.conversation-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;text-decoration:none;color:#222}.conversation-list a:hover{background:var(--brand-soft)}.conv-title{font-weight:600}.conv-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;font-size:.82rem}.conv-rounds{white-space:nowrap}.conv-date{font-size:.82rem;white-space:nowrap}.conv-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.conv-head h3{margin:0}.role-sort-switch{display:inline-flex;flex-shrink:0;border:1px solid #dfe5eb;border-radius:999px;overflow:hidden}.role-sort-switch button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#5b6b7c;font-size:.78rem;font-weight:700;padding:6px 12px;line-height:1.1;cursor:pointer}.role-sort-switch button+button{border-left:1px solid #dfe5eb}.role-sort-switch button.is-active{background:var(--sky, #1a73e8);color:#fff}.conversation-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.conv-main{flex:1;display:flex;justify-content:space-between;align-items:center;gap:12px}.conv-actions{display:flex;align-items:center;gap:6px}.conv-rename{flex:1;display:flex;align-items:center;gap:8px;padding:6px 4px}.conv-rename input{flex:1;padding:8px 10px;border:1px solid #ccd2d9;border-radius:8px;font-size:.95rem;font-family:inherit}.conv-rename input:focus{outline:2px solid #1a73e8;border-color:#1a73e8}button.ghost{background:transparent;color:#1a73e8;border:1px solid #ccd2d9;padding:6px 12px;font-size:.85rem}button.ghost:hover{background:#f0f4fb}button.ghost.danger-text{color:#d92d20;border-color:#f0c4c0}button.ghost.danger-text:hover{background:#fdecea}.language-switcher{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:0;flex-shrink:0;color:var(--brand)}.language-globe{width:20px;height:20px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;color:var(--brand)}.language-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;max-width:none;margin:0;padding:0;opacity:0;cursor:pointer;border:none;border-radius:999px;font-size:.85rem;background:transparent;color:#222}.language-select option{color:#222;background:#fff}.language-select:focus{outline:2px solid rgba(31,138,122,.35);outline-offset:2px}.legal{max-width:720px;margin:0 auto;padding:24px 0 8px}.legal h1{font-size:1.9rem}.legal h2{font-size:1.05rem;margin:22px 0 6px;color:#2c2f3a}.legal p{color:#444}.footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:auto;padding:20px 4px}.footer-brand{font-weight:700;color:var(--brand);letter-spacing:-.02em}.footer-links{display:flex;gap:16px}.footer-links a{color:var(--muted);text-decoration:none;font-weight:500}.footer-links a:hover{color:var(--brand)}.ok{background:#e6f4ea;color:#1e7e34;border:1px solid #b7e1c3;border-radius:8px;padding:10px 12px}hr{border:none;border-top:1px solid #e3e6ea;margin:16px 0}select,textarea{padding:10px 12px;border:1px solid #ccd2d9;border-radius:8px;font-size:1rem;font-family:inherit}select:focus,textarea:focus{outline:2px solid rgba(31,138,122,.35);border-color:var(--brand)}.badge{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:600;vertical-align:middle}.badge-ok{background:#e6f4ea;color:#1e7e34}.badge-warn{background:#fef3e0;color:#b25e09}.card-danger{border-color:#f5c2c0}.btn-danger{background:#d93025}.btn-danger:hover{background:#c5221f}.forum-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.forum-list li.forum-row{padding:10px 4px}.forum-list li.forum-row.hidden a.conv-title{opacity:.6}.forum-hidden-tag{font-size:.82rem}.forum-topic-body{white-space:pre-wrap;margin-top:12px}.forum-reply{border-left:2px solid #eef0f3;padding:8px 0 8px 12px;margin-top:6px}.forum-reply-body{white-space:pre-wrap;margin:4px 0}.forum-reply-btn{padding:3px 10px;font-size:.82rem}.forum-hidden{color:#9aa2b1;font-style:italic;font-size:.85rem;padding:6px 0}.forum-reply-form textarea{width:100%;min-height:80px}.forum-hidden-once h1{margin-bottom:8px}.forum-reply-form h4,.forum-reply-form-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pagination{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:10000;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));pointer-events:none;background:linear-gradient(180deg,transparent,rgba(26,46,43,.12) 40%,rgba(26,46,43,.18))}.cookie-banner-inner{pointer-events:auto;max-width:920px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:16px;background:#fff;border:1px solid var(--line, #d3e5df);box-shadow:0 16px 40px #1a2e2b38}.cookie-banner-copy{flex:1;min-width:0}.cookie-banner-title{display:block;margin-bottom:4px;font-size:1rem;font-weight:700;color:var(--ink, #1a2e2b)}.cookie-banner-text{margin:0;font-size:.9rem;line-height:1.45;color:var(--muted, #5d736e)}.cookie-banner-link{color:var(--brand, #1f8a7a);font-weight:600;text-decoration:underline}.cookie-banner-accept{flex-shrink:0;padding:12px 22px;border:none;border-radius:999px;background:var(--brand, #1f8a7a);color:#fff;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer}.cookie-banner-accept:hover{background:var(--brand-deep, #176f62)}@media (max-width: 640px){.cookie-banner-inner{flex-direction:column;align-items:stretch}.cookie-banner-accept{width:100%}.navbar{border-radius:18px;padding:8px 8px 8px 12px;gap:6px}.navbar .brand{flex:1;min-width:0}.navbar-tools{margin-left:auto}.navbar-toggle{display:inline-flex}.navbar-menu{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;margin:0;flex-direction:column;align-items:stretch;gap:4px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);z-index:50}.navbar--open .navbar-menu{display:flex}.navbar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;border:none;padding:0;margin:0;background:rgba(26,46,43,.28);cursor:pointer}.navbar-link{width:100%;justify-content:flex-start;border-radius:12px;padding:12px 14px;white-space:normal}.navbar-link--cta{justify-content:center}.ui-action .ui-action-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.navbar-menu .ui-action-label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}button.ui-action.ghost,a.ui-action.ghost,.ui-action.ghost{padding:8px;min-width:36px;min-height:36px}.tg-auth-btn.ui-action{width:36px;height:36px;padding:0;border-radius:50%}.btn-secondary.ui-action{padding:8px;min-width:36px;min-height:36px}.tg-header{gap:8px;padding:8px 10px}.tg-count{display:none}.tg-credit,.tg-memory{font-size:.72rem}.tg-mode-switch button{padding:5px 7px;font-size:.68rem}.tg-modal-actions{flex-direction:column-reverse;align-items:stretch}.tg-modal-btn{width:100%}.conversation-row{flex-wrap:wrap;align-items:flex-start}.conv-main{flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.conv-meta{display:flex;flex-wrap:wrap;gap:6px 10px}.conv-actions{margin-left:auto}.conv-rename{flex-wrap:wrap;width:100%}.conv-rename input{flex:1 1 100%}.footer{flex-direction:column;align-items:flex-start;gap:10px;padding:16px 4px 24px}.footer-links{flex-wrap:wrap;gap:12px 16px}.forum-head{flex-wrap:wrap;align-items:center;gap:8px}.forum-head h1{flex:1 1 auto;min-width:0;font-size:1.55rem;margin:0}.forum-login-hint{flex:1 1 100%;font-size:.85rem}.forum-reply{--forum-indent: 10px;padding-left:8px}.forum-reply-form-head{flex-wrap:wrap}.app:not(.app--chat){padding:0 12px}.card{padding:18px 14px}.row{flex-wrap:wrap}.row>button,.row>.btn-secondary,.row>.btn-danger{flex:1 1 auto}.legal h1{font-size:1.55rem}.badge{margin-left:0;margin-top:4px}h1{font-size:1.55rem}}.my-roles-notice{margin-top:12px}.my-roles-form-card{max-width:560px;margin-top:16px}.my-roles-field-hint{margin-top:-8px}.my-roles-advanced{margin:12px 0 4px;padding:8px 12px 12px;border:1px solid var(--border, #e2e8f0);border-radius:10px}.my-roles-advanced>summary{cursor:pointer;font-weight:600;margin-bottom:8px}.my-roles-advanced .my-roles-field-hint{margin-top:4px}.my-roles-avatar-preview img{width:64px;height:64px;border-radius:50%;object-fit:cover;vertical-align:middle}.my-roles-keywords{margin-bottom:12px}.my-roles-form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.my-roles-list-section{margin-top:16px}.my-roles-list-section .card-grid{margin-top:12px}.my-roles-card-shell{display:flex;flex-direction:column;gap:8px}.my-roles-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.my-roles-create-link{background:none;border:none;padding:0;cursor:pointer;font:inherit}.my-roles-create-link:disabled{opacity:.6;cursor:not-allowed}
