@charset "UTF-8";
:root{--blue:#2563eb;--blue-dark:#1d4ed8;--blue-deep:#173b8f;--blue-light:#eff6ff;--cyan:#0891b2;--violet:#7c3aed;--ink:#10213f;--text:#334155;--muted:#6b7b93;--line:#e2e9f3;--surface:#fff;--background:#f7faff;--success:#059669;--danger:#dc2626;--shadow-sm:0 2px 10px rgba(37,99,235,.05);--shadow:0 16px 45px rgba(30,64,175,.10);--shadow-lg:0 30px 80px rgba(30,64,175,.16);--radius:14px;--radius-lg:24px;--header:76px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--text);background:var(--background);font-family:Inter,"SF Pro Display","Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}body,button,input,textarea,select{font-family:inherit}button,input,textarea,select{font-size:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-dark)}img,svg{display:block}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink);line-height:1.2;letter-spacing:-.025em}p{margin-bottom:1rem}button:disabled{opacity:.58;cursor:not-allowed}input,textarea,select{width:100%;border:1px solid #d9e2ef;border-radius:10px;background:#fff;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s,background .2s}input,select{height:46px;padding:0 13px}textarea{padding:12px;resize:vertical}input::placeholder,textarea::placeholder{color:#9aa9bc}input:focus,textarea:focus,select:focus{border-color:#7aa7f8;box-shadow:0 0 0 4px rgba(37,99,235,.09)}input:disabled{background:#f4f7fb;color:#8795a8}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2364748b' stroke-linecap='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}[dir=rtl] select{background-position:left 12px center;padding-right:13px;padding-left:34px}button:focus-visible,a:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:3px}.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:-60px;left:16px;background:var(--blue);color:#fff;padding:10px 18px;z-index:9999;border-radius:8px}.skip-link:focus{top:12px}.muted{color:var(--muted)}.text-danger{color:var(--danger)!important}.text-success{color:var(--success)!important}.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:650}.text-link svg{width:17px}.eyebrow{display:inline-block;color:var(--blue);font-size:11px;letter-spacing:.18em;font-weight:800;margin-bottom:13px}.eyebrow.light{color:#bfdbfe}.button{border:1px solid transparent;border-radius:10px;min-height:44px;padding:10px 20px;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--blue);color:#fff;font-weight:650;line-height:1.35;box-shadow:0 5px 14px rgba(37,99,235,.16);transition:transform .2s,background .2s,box-shadow .2s}.button:hover{background:var(--blue-dark);color:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,99,235,.23)}.button svg{width:18px;height:18px}.button-small{min-height:38px;padding:8px 15px;font-size:13px;border-radius:9px}.button-large{min-height:52px;padding:14px 24px}.button-full{width:100%}.button-ghost{background:#fff;color:var(--blue);border-color:var(--line);box-shadow:none}.button-ghost:hover{background:var(--blue-light);border-color:#bfdbfe;box-shadow:none}.button-danger-ghost{background:#fff;color:var(--danger);border-color:#fecaca;box-shadow:none}.button-danger-ghost:hover{background:#fef2f2;box-shadow:none}.icon-button{width:40px;height:40px;border:1px solid transparent;border-radius:10px;background:transparent;color:#64748b;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:.2s}.icon-button:hover{color:var(--blue);background:var(--blue-light);border-color:#dbeafe}.field{margin-bottom:17px}.field label{display:block;font-size:13px;color:#34435c;font-weight:650;margin-bottom:7px}.field small{display:block;color:#8492a6;font-size:11px;line-height:1.55;margin-top:6px}.field-full{grid-column:1/-1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid.compact{gap:0 12px}.label-row{display:flex;align-items:center;justify-content:space-between}.label-row a{font-size:12px;font-weight:600}.alert{padding:12px 15px;border-radius:10px;font-size:13px;margin-bottom:18px;border:1px solid}.alert-error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.alert-success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.form-error{display:none;color:#b91c1c;background:#fef2f2;border-radius:8px;padding:9px 12px;font-size:12px;margin-bottom:12px}.form-error:not(:empty){display:block}.section-heading{margin-bottom:25px}.section-heading h2{font-size:29px;margin-bottom:8px}.section-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:25px}.section-title-row h2{font-size:29px;margin:0}.section-title-row .eyebrow{margin-bottom:8px}.center-heading{text-align:center;max-width:650px;margin:0 auto 45px}.center-heading h2{font-size:37px;margin-bottom:15px}.center-heading p{color:var(--muted);font-size:16px}
/* Navigation */
.site-header{height:var(--header);background:rgba(255,255,255,.9);border-bottom:1px solid rgba(226,232,240,.8);position:relative;z-index:50;backdrop-filter:blur(18px)}.nav-wrap{height:100%;display:flex;align-items:center}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--ink);flex:none}.brand:hover{color:var(--ink)}.brand-mark{width:34px;height:34px;color:var(--blue);stroke:none}.brand-name{font-weight:800;font-size:20px;letter-spacing:-.04em}.brand-dot{width:5px;height:5px;background:#60a5fa;border-radius:50%;margin-left:-5px;margin-top:15px}.main-nav{display:flex;align-items:center;gap:26px;flex:1;margin-left:48px;font-size:13px}.main-nav>a{color:#53647c;font-weight:550;white-space:nowrap}.main-nav>a:hover{color:var(--blue)}.main-nav .button{color:#fff}.nav-spacer{flex:1}.language-select{display:flex;align-items:center;position:relative}.language-select svg{width:17px;color:#7c8ca3;position:absolute;left:5px;pointer-events:none}.language-select select{border:0;background-color:transparent;box-shadow:none;width:102px;height:38px;padding-left:25px;padding-right:19px;color:#5c6e85;font-size:12px;background-position:right 1px center}.nav-login{font-weight:650!important;color:var(--ink)!important}.user-chip{display:flex;align-items:center;gap:8px;max-width:145px;white-space:nowrap;overflow:hidden}.user-chip span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e0ecff;color:var(--blue);font-weight:750}.mobile-menu-button{display:none;margin-left:auto}.site-footer{border-top:1px solid var(--line);background:#fff;padding:30px 0}.footer-wrap{display:flex;align-items:center;gap:25px}.brand-footer .brand-mark{width:27px;height:27px}.brand-footer .brand-name{font-size:17px}.footer-wrap p{margin:0;color:#8492a6;font-size:12px}.footer-security{margin-left:auto;display:flex;align-items:center;gap:7px;color:#7b8ba0;font-size:12px}.footer-security svg{width:14px}
/* Home */
.hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#f8fbff 5%,#f3f7ff 55%,#edf4ff 100%);padding:70px 0 65px;min-height:665px}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(80,130,210,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(80,130,210,.035) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(to right,#000,transparent 75%)}.hero-glow{position:absolute;width:600px;height:600px;right:-180px;top:-220px;border-radius:50%;background:radial-gradient(circle,rgba(147,197,253,.25),transparent 70%)}.hero-layout{position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:65px}.hero-copy{padding:28px 0 0}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #dbeafe;border-radius:30px;padding:6px 12px;color:#4c6fa8;font-size:11px;font-weight:650;box-shadow:var(--shadow-sm)}.hero-badge>span{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}.hero-badge svg{width:13px;color:#3b82f6}.hero h1{font-size:58px;letter-spacing:-.055em;margin:24px 0 22px;max-width:620px}.hero h1 br{display:block}.hero-description{max-width:520px;color:#667b99;font-size:16px;line-height:1.9}.hero-trust{display:flex;align-items:center;gap:21px;margin-top:25px;flex-wrap:wrap}.hero-trust span{display:flex;align-items:center;gap:6px;color:#6d819e;font-size:11px}.hero-trust svg{width:14px;height:14px;color:#5282cf}.create-card-wrap{position:relative;max-width:475px;width:100%;justify-self:end}.create-card-glow{position:absolute;inset:15% -10% -8%;background:linear-gradient(145deg,rgba(96,165,250,.17),rgba(196,181,253,.15));filter:blur(35px);border-radius:50%}.create-card{position:relative;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.9);border-radius:22px;padding:29px 31px 22px;box-shadow:0 25px 65px rgba(41,81,148,.14),0 2px 6px rgba(41,81,148,.04)}.card-heading{display:flex;align-items:center;gap:13px;padding-bottom:21px;margin-bottom:21px;border-bottom:1px solid #edf1f7}.heading-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:linear-gradient(145deg,#e8f1ff,#f0f5ff);color:var(--blue);flex:none}.card-heading h2{font-size:21px;margin:0 0 4px}.card-heading p{font-size:11px;color:#8a99ad;margin:0}.create-card .field{margin-bottom:14px}.create-card .button{margin-top:3px}.create-submit{justify-content:space-between;padding-left:23px}.encryption-caption{display:flex;align-items:flex-start;justify-content:center;gap:5px;color:#98a5b7;font-size:10px;line-height:1.5;margin:12px 0 0}.encryption-caption svg{width:11px;height:11px;margin-top:1px;flex:none}.captcha-field{margin-bottom:14px}.captcha-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.captcha-row img{border-radius:8px;border:1px solid #dbe7f7;width:145px;height:44px;object-fit:cover}.captcha-refresh{height:40px;width:40px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;color:var(--blue);font-size:23px}.captcha-field input[name=captcha_answer]{height:40px}.conversation-art{position:relative;height:135px;max-width:430px;margin-top:34px;opacity:.85}.art-bubble{position:absolute;background:#fff;border:1px solid #e6edf7;border-radius:14px;box-shadow:0 10px 25px rgba(50,85,140,.07);padding:12px;display:flex;align-items:center;gap:10px}.art-bubble-one{left:4px;top:5px;width:225px}.art-bubble-two{right:10px;top:66px;width:200px}.art-bubble>div{flex:1}.art-bubble i{display:block;height:5px;background:#e6edf6;border-radius:5px;margin:5px}.art-bubble i:last-child{width:65%}.art-avatar{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;font-size:11px;font-weight:750}.avatar-blue{background:#dbeafe;color:#2563eb}.avatar-lilac{background:#ede9fe;color:#7c3aed}.art-bubble>svg{width:12px;color:#94a3b8}.art-doodle{position:absolute;left:232px;top:-9px;transform:rotate(-7deg);color:#7997c5;text-align:center}.art-doodle svg{width:100px;height:60px;stroke:#8aa9d7;stroke-width:2}.art-doodle span{font-family:ui-rounded,cursive;font-size:11px}.recent-section{padding:55px 0;background:#fff;border-bottom:1px solid var(--line)}.room-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.room-card{border:1px solid var(--line);border-radius:16px;padding:21px;background:#fff;transition:.2s}.room-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c8dbfa}.room-card-top{display:flex;justify-content:space-between;align-items:center}.room-card-top>svg{width:16px;color:#94a3b8}.room-card h3{font-size:18px;margin:18px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-card-meta{display:flex;gap:15px;margin-bottom:20px;color:#7d8da3;font-size:11px}.room-card-meta span{display:flex;align-items:center;gap:5px}.room-card-meta svg{width:13px}.status-badge{display:inline-flex;align-items:center;border-radius:20px;padding:4px 9px;font-size:10px;font-weight:700;background:#f1f5f9;color:#64748b;white-space:nowrap}.status-active{background:#ecfdf5;color:#059669}.status-locked{background:#fff7ed;color:#d97706}.status-expired,.status-deleted{background:#f1f5f9;color:#64748b}.features-section{padding:85px 0 95px;background:#fff}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.feature-card{position:relative;border:1px solid #e6edf6;border-radius:18px;padding:30px;background:linear-gradient(150deg,#fff,#fbfdff);overflow:hidden;transition:.25s}.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#cfe0fa}.feature-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:24px}.feature-icon svg{width:23px;height:23px}.feature-icon.blue{background:#eaf2ff;color:#2563eb}.feature-icon.cyan{background:#e6f9fb;color:#0891b2}.feature-icon.violet{background:#f0ebff;color:#7c3aed}.feature-number{position:absolute;right:24px;top:27px;color:#edf2f9;font-size:38px;font-weight:800}.feature-card h3{font-size:19px;margin-bottom:12px}.feature-card p{font-size:13px;line-height:1.85;color:#75869c;min-height:73px}.feature-detail{border-top:1px solid #edf1f7;padding-top:17px;margin-top:22px;color:#8292a9;font-size:9px;font-weight:700;letter-spacing:.08em;display:flex;align-items:center;gap:7px}.feature-detail svg{width:14px}.pulse-dot{width:6px;height:6px;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 4px #dbeafe}
/* Authentication */
.auth-page .site-header,.install-page .site-header,.chat-page .site-header,.auth-page .site-footer,.install-page .site-footer,.chat-page .site-footer{display:none}.auth-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(360px,.85fr) minmax(550px,1.15fr);background:#fff}.auth-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#173f9b,#2563eb 60%,#4f83ed);display:flex;align-items:center;justify-content:center;padding:60px;color:#fff}.auth-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:42px 42px}.auth-orb{position:absolute;border-radius:50%;filter:blur(2px);border:1px solid rgba(255,255,255,.15)}.orb-one{width:440px;height:440px;top:-190px;left:-170px;background:rgba(255,255,255,.035)}.orb-two{width:360px;height:360px;bottom:-150px;right:-100px;background:rgba(125,211,252,.09)}.auth-quote{position:relative;max-width:390px}.auth-quote>svg{width:48px;height:48px;stroke:none;color:#fff;margin-bottom:40px}.auth-quote blockquote{font-size:32px;font-weight:650;line-height:1.55;letter-spacing:-.03em;margin:0 0 38px}.auth-security{display:flex;gap:22px}.auth-security span{display:flex;gap:7px;align-items:center;color:#dbeafe;font-size:11px}.auth-security svg{width:15px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:50px 35px;background:linear-gradient(145deg,#fff,#fbfdff)}.auth-card{width:100%;max-width:420px}.auth-card h1{font-size:34px;margin-bottom:12px}.auth-card>.muted{font-size:13px;margin-bottom:28px}.auth-form{margin-top:20px}.auth-switch{text-align:center;font-size:12px;color:#8290a3;margin:23px 0 0}.auth-switch a{font-weight:700}.password-wrap{position:relative}.password-wrap input{padding-right:44px}.password-wrap button{position:absolute;right:4px;top:4px;width:38px;height:38px;border:0;background:transparent;color:#94a3b8}.password-meter{display:flex;gap:5px;margin-top:8px}.password-meter i{height:3px;flex:1;border-radius:3px;background:#e8edf4}.password-meter[data-strength="1"] i:nth-child(1){background:#ef4444}.password-meter[data-strength="2"] i:nth-child(-n+2){background:#f59e0b}.password-meter[data-strength="3"] i:nth-child(-n+3){background:#3b82f6}.password-meter[data-strength="4"] i{background:#10b981}
/* Installer */
.install-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(350px,.75fr) minmax(580px,1.25fr)}.install-intro{position:sticky;top:0;height:100dvh;background:linear-gradient(155deg,#153c93,#2563eb);color:#fff;padding:50px;display:flex;flex-direction:column;justify-content:space-between}.install-intro .brand{color:#fff}.install-intro .brand-mark{color:#fff}.install-intro h1{font-size:43px;color:#fff;line-height:1.25;margin:18px 0}.install-intro p{color:#dbeafe;max-width:360px}.brand-large .brand-mark{width:42px;height:42px}.brand-large .brand-name{font-size:24px}.install-promise{display:flex;gap:13px;align-items:flex-start;color:#bfdbfe;font-size:11px;line-height:1.7}.install-promise svg{flex:none;width:22px}.install-main{padding:55px 40px;background:#f9fbff}.install-form{max-width:650px;margin:auto}.requirement-box{border:1px solid var(--line);border-radius:13px;background:#fff;padding:15px 20px;margin-bottom:25px}.requirement-box legend{padding:0 8px;color:var(--ink);font-weight:700;font-size:13px}.requirement{display:flex;justify-content:space-between;padding:5px 0;font-size:12px}.requirement strong{font-size:11px}.database-note{display:flex;gap:12px;background:#eff6ff;border:1px solid #dbeafe;border-radius:12px;padding:14px 16px;margin:5px 0 22px}.database-note>svg{color:var(--blue);flex:none;margin-top:2px}.database-note strong{color:var(--ink);font-size:12px}.database-note p{font-size:11px;color:#6b7f9c;margin:3px 0 0}.smtp-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:15px 0 25px;padding:15px 0}.smtp-details summary{cursor:pointer;color:var(--ink);font-weight:650;font-size:13px}.smtp-details>p{font-size:11px;color:var(--muted);margin-top:12px}.smtp-details .form-grid{margin-top:18px}
/* Dashboard and admin */
.page-hero{background:linear-gradient(145deg,#eff5ff,#f9fbff);padding:52px 0 42px;border-bottom:1px solid #e2eaf6}.page-hero h1{font-size:37px;margin-bottom:12px}.page-hero p{color:var(--muted);margin:0}.page-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.dashboard-content,.admin-content{padding-top:32px;padding-bottom:70px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:30px}.compact-stats{grid-template-columns:repeat(3,1fr)}.stat-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px;display:flex;align-items:center;gap:15px;box-shadow:var(--shadow-sm)}.stat-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:#eaf2ff;color:var(--blue);flex:none}.stat-icon.cyan{background:#e6f9fb;color:#0891b2}.stat-icon.violet{background:#f0ebff;color:#7c3aed}.stat-icon.green{background:#e9faf2;color:#059669}.stat-card strong{display:block;color:var(--ink);font-size:23px;line-height:1.2}.stat-card span:not(.stat-icon){font-size:11px;color:#8492a6}.dashboard-tabs{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto}.dashboard-tabs button,.dashboard-tabs a{display:flex;align-items:center;gap:8px;padding:12px 18px;border:0;border-bottom:2px solid transparent;background:transparent;color:#76869b;font-weight:600;font-size:13px;white-space:nowrap}.dashboard-tabs button.active,.dashboard-tabs a.active{color:var(--blue);border-bottom-color:var(--blue)}.dashboard-tabs button span{background:#edf2f8;border-radius:10px;padding:0 7px;font-size:10px}.dashboard-tabs svg{width:16px}.dashboard-panel{display:none}.dashboard-panel.active{display:block}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:#fff}.data-table{border-collapse:collapse;width:100%;min-width:760px;font-size:12px}.data-table th{text-align:left;background:#f8fafd;color:#7c8ba0;font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:13px 18px;border-bottom:1px solid var(--line)}.data-table td{padding:15px 18px;border-bottom:1px solid #edf1f6;color:#5f7087}.data-table tbody tr:last-child td{border:0}.data-table tbody tr:hover{background:#fbfdff}.data-table strong{color:var(--ink);font-size:12px}.data-table small{color:#8a99ab}.room-name-cell{display:flex;align-items:center;gap:10px}.room-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#eef5ff;color:#4c7cd0}.room-icon svg{width:15px}.table-actions{display:flex;gap:3px}.table-actions .icon-button{width:33px;height:33px}.table-actions svg{width:16px}.empty-state{text-align:center;background:#fff;border:1px dashed #cdd9e9;border-radius:17px;padding:60px 25px}.empty-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#eff6ff;color:#3b82f6;margin:0 auto 20px}.empty-icon svg{width:26px;height:26px}.empty-state h3{font-size:19px;margin-bottom:10px}.empty-state p{color:var(--muted);font-size:13px;margin-bottom:22px}.settings-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;margin-bottom:25px}.settings-card h2{font-size:23px}.settings-card>.button{margin-top:6px}.admin-tabs a{padding-inline:20px}.inline-actions{display:flex;gap:7px;align-items:center}.inline-actions select{height:36px;width:140px;font-size:11px}.inline-actions .button{white-space:nowrap}.checkbox-field{display:flex;align-items:flex-end;padding-bottom:20px}.checkbox-field label{display:flex;align-items:center;gap:8px}.checkbox-field input{width:17px;height:17px}.error-shell{text-align:center;padding:100px 0}.error-code{font-size:100px;line-height:1;color:#dbeafe;font-weight:850}.error-shell h1{font-size:30px}
/* Chat */
.chat-page{background:#fff;overflow:hidden}.chat-app{height:100dvh;display:flex;flex-direction:column;background:#f8faff}.chat-header{height:72px;flex:none;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:20px;z-index:20}.chat-header-left,.chat-header-actions{display:flex;align-items:center;gap:14px;min-width:0}.chat-brand .brand-mark{width:30px;height:30px}.chat-brand .brand-name{font-size:18px}.header-divider{height:29px;width:1px;background:var(--line);margin:0 4px}.chat-room-title{min-width:0}.chat-room-title h1{font-size:15px;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.chat-room-title>div{display:flex;align-items:center;gap:6px;color:#8a98aa;font-size:9px}.chat-room-title>div>span{display:flex;align-items:center;gap:4px}.chat-room-title svg{width:10px;height:10px}.status-dot{width:6px;height:6px;border-radius:50%;background:#94a3b8}.status-dot.status-active{background:#10b981;box-shadow:0 0 0 3px #d1fae5}.status-dot.status-locked{background:#f59e0b}.connection-state{display:flex;align-items:center;gap:5px;color:#73869e;font-size:10px;margin-right:4px}.connection-state>span{width:5px;height:5px;background:#10b981;border-radius:50%}.connection-state svg{width:13px}.connection-state b{font-weight:550}.connection-state.offline{color:#d97706}.connection-state.offline>span{background:#f59e0b}.chat-layout{display:grid;grid-template-columns:260px minmax(0,1fr);flex:1;min-height:0}.members-panel{background:#fff;border-right:1px solid var(--line);padding:22px 16px 17px;display:flex;flex-direction:column;min-height:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:0 7px 17px}.panel-heading h2{font-size:12px;margin:0;text-transform:uppercase;letter-spacing:.08em;color:#687b95}.count-badge{background:#eff4fb;color:#6c7f99;border-radius:10px;font-size:10px;padding:1px 8px}.member-list{overflow-y:auto;flex:1}.member-item{display:flex;align-items:center;gap:10px;padding:9px 7px;border-radius:10px;position:relative}.member-item:hover{background:#f6f9fd}.member-avatar{width:34px;height:34px;border-radius:11px;background:#e5efff;color:#3672d5;display:grid;place-items:center;font-weight:750;font-size:12px;position:relative;flex:none}.member-avatar .presence{position:absolute;width:8px;height:8px;border:2px solid #fff;background:#94a3b8;border-radius:50%;right:-2px;bottom:-1px}.member-avatar .presence.online{background:#10b981}.member-info{flex:1;min-width:0}.member-info strong{display:block;font-size:11px;color:#3c4f69;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-info span{font-size:9px;color:#94a3b8}.member-role{color:#d69b16}.member-role svg{width:13px}.member-controls{display:none;position:relative}.member-item:hover .member-controls{display:block}.member-controls>button{border:0;background:transparent;color:#64748b}.member-menu{position:absolute;right:0;top:27px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);z-index:10;width:145px;padding:5px}.member-menu button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:7px 9px;border-radius:5px;font-size:10px;color:#52647d}.member-menu button:hover{background:#eff6ff;color:var(--blue)}.room-privacy-note{border-top:1px solid var(--line);padding:18px 6px 0;display:flex;gap:9px;color:#8293aa}.room-privacy-note>svg{width:17px;flex:none;color:#6190db;margin-top:2px}.room-privacy-note strong{font-size:10px;color:#59708f}.room-privacy-note p{font-size:9px;line-height:1.6;margin:4px 0 0}.conversation-panel{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;background:linear-gradient(180deg,#f8faff,#f5f8fd)}.conversation-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#cbd8eb 0.6px,transparent .6px);background-size:20px 20px;opacity:.2}.encryption-banner{position:relative;z-index:2;height:34px;display:flex;align-items:center;justify-content:center;gap:6px;background:#eef5ff;color:#6b87ae;border-bottom:1px solid #e3edfb;font-size:9px}.encryption-banner svg{width:11px}.encryption-banner i{height:10px;width:1px;background:#cbd9ec;margin:0 4px}.banner-key{font-size:8px;letter-spacing:.06em}.message-list{position:relative;z-index:1;flex:1;overflow-y:auto;padding:28px max(24px,calc((100% - 800px)/2));scroll-behavior:smooth;overscroll-behavior:contain}.empty-chat{text-align:center;margin:12vh auto 0;max-width:360px}.empty-chat-icon{position:relative;width:74px;margin:0 auto 22px}.empty-chat-icon>svg{width:70px;height:70px;stroke:none;color:#bfd5f7}.empty-chat-icon>span{position:absolute;display:grid;place-items:center;right:-2px;bottom:0;width:28px;height:28px;border-radius:9px;background:#fff;border:1px solid #dbeafe;color:#3b82f6;box-shadow:var(--shadow-sm)}.empty-chat-icon>span svg{width:13px}.empty-chat h2{font-size:18px;margin-bottom:10px}.empty-chat p{color:#8a99ae;font-size:11px;line-height:1.8}.message-row{display:flex;gap:10px;margin-bottom:20px;align-items:flex-end;animation:message-in .18s ease-out}.message-row.own{flex-direction:row-reverse}.message-avatar{width:29px;height:29px;border-radius:9px;background:#e1ebfb;color:#4d76b5;display:grid;place-items:center;font-size:10px;font-weight:750;flex:none;margin-bottom:21px}.message-row.own .message-avatar{background:#dbeafe;color:#2563eb}.message-content{max-width:min(70%,570px);min-width:80px}.message-meta{display:flex;align-items:center;gap:8px;font-size:9px;color:#91a0b3;margin:0 0 5px 3px}.message-row.own .message-meta{justify-content:flex-end;margin-right:3px}.message-meta strong{color:#627793;font-weight:650}.message-bubble{position:relative;display:inline-block;padding:10px 14px;border:1px solid #e0e8f3;border-radius:5px 15px 15px 15px;background:#fff;color:#34465f;font-size:13px;line-height:1.7;box-shadow:0 3px 10px rgba(45,75,120,.035);word-break:break-word;white-space:pre-wrap}.message-row.own .message-bubble{background:linear-gradient(145deg,#2e6ce4,#2563eb);color:#fff;border-color:#2563eb;border-radius:15px 5px 15px 15px;box-shadow:0 5px 14px rgba(37,99,235,.13)}.message-row.own .message-meta .message-lock{color:#7499d9}.message-lock{width:10px;height:10px}.message-delete{border:0;background:transparent;color:#a2afbf;padding:0;margin-left:4px}.message-delete svg{width:11px}.message-doodle{display:block;width:360px;max-width:60vw;height:auto;border-radius:10px;background:#fff}.message-bubble:has(.message-doodle){padding:6px;background:#fff;border-color:#d9e4f3}.message-system{text-align:center;color:#8b9bb0;font-size:10px;margin:12px}.typing-indicator{position:relative;z-index:2;padding:0 max(24px,calc((100% - 800px)/2)) 6px;color:#7790b3;font-size:10px;height:20px}.composer-wrap{position:relative;z-index:5;padding:10px max(24px,calc((100% - 800px)/2)) 13px;background:linear-gradient(transparent,#f5f8fd 20%)}.composer{display:flex;align-items:flex-end;gap:9px;border:1px solid #d8e2f0;background:#fff;border-radius:15px;padding:8px;box-shadow:0 6px 20px rgba(50,80,130,.07);transition:.2s}.composer:focus-within{border-color:#94b8f3;box-shadow:0 0 0 4px rgba(37,99,235,.06),0 6px 20px rgba(50,80,130,.07)}.composer-tools{display:flex;align-items:center;padding-bottom:1px}.tool-button{width:34px;height:35px;border:0;background:transparent;color:#8092ab;border-radius:8px;display:grid;place-items:center}.tool-button:hover,.tool-button.active{background:#eff6ff;color:#2563eb}.tool-button svg{width:18px}.composer textarea{border:0;box-shadow:none;resize:none;min-height:36px;max-height:120px;padding:8px 2px;background:transparent;line-height:20px;font-size:13px;overflow-y:auto}.composer textarea:focus{box-shadow:none}.send-button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:11px;background:var(--blue);color:#fff;flex:none;transition:.2s}.send-button:hover{background:var(--blue-dark);transform:scale(1.04)}.send-button svg{width:17px}.composer-meta{display:flex;justify-content:space-between;align-items:center;color:#9aa8ba;font-size:8px;padding:7px 5px 0}.composer-meta>span{display:flex;align-items:center;gap:4px}.composer-meta svg{width:9px}.composer-meta kbd{font:inherit;border:1px solid #d8e0eb;background:#fff;border-radius:3px;padding:0 3px}.emoji-picker{position:absolute;left:max(24px,calc((100% - 800px)/2));bottom:91px;width:290px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-picker button{font-size:20px;border:0;background:transparent;border-radius:6px;padding:5px}.emoji-picker button:hover{background:#eff6ff}.join-overlay{position:fixed;inset:0;z-index:100;background:rgba(238,244,253,.88);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;padding:25px}.join-overlay[hidden]{display:none}.join-card{width:100%;max-width:410px;background:#fff;border:1px solid #fff;border-radius:22px;padding:33px;box-shadow:var(--shadow-lg);text-align:center}.join-icon{display:grid;place-items:center;width:56px;height:56px;background:#eaf2ff;color:#2563eb;border-radius:17px;margin:0 auto 20px}.join-icon svg{width:25px}.join-card h2{font-size:25px;margin-bottom:10px}.join-card>p{font-size:12px;color:var(--muted);margin-bottom:24px}.join-card .field{text-align:left}.join-card [data-key-field][hidden]{display:none}
/* Dialogs and doodle */
.modal{border:1px solid #e0e8f3;border-radius:20px;padding:25px;width:min(570px,calc(100% - 30px));max-height:90dvh;overflow:auto;background:#fff;color:var(--text);box-shadow:var(--shadow-lg)}.modal::backdrop{background:rgba(15,35,70,.35);backdrop-filter:blur(5px)}.modal-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:22px}.modal-heading>div:nth-child(2):not(.heading-icon){flex:1}.modal-heading h2{font-size:21px;margin:0 0 7px}.modal-heading p{font-size:11px;color:var(--muted);margin:0;line-height:1.7}.modal-heading>.icon-button{margin-left:auto}.invite-link-box{display:flex;gap:8px}.invite-link-box input{font-size:11px;color:#52709e;background:#f8fafd}.invite-link-box .button{white-space:nowrap;font-size:11px}.security-tip{display:flex;gap:9px;background:#fffbeb;border:1px solid #fef3c7;border-radius:10px;padding:12px;margin-top:18px;color:#92701c}.security-tip svg{width:17px;flex:none;margin-top:2px}.security-tip p{font-size:10px;line-height:1.6;margin:0}.moderation-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.moderation-actions .button{font-size:11px;padding:9px}.not-owner-note{display:flex;gap:10px;background:#f8fafc;padding:15px;border-radius:10px;color:#7b8ba0}.not-owner-note p{font-size:12px;margin:0}.doodle-modal{width:min(780px,calc(100% - 24px))}.doodle-toolbar{display:flex;align-items:center;gap:15px;margin-bottom:15px;flex-wrap:wrap}.color-swatches{display:flex;gap:7px}.color-swatch{width:27px;height:27px;border:3px solid #fff;outline:1px solid #e2e8f0;border-radius:50%;background:var(--swatch)}.color-swatch.active{outline:2px solid #2563eb;outline-offset:2px}.color-swatch[data-doodle-color="#2563eb"]{--swatch:#2563eb}.color-swatch[data-doodle-color="#7c3aed"]{--swatch:#7c3aed}.color-swatch[data-doodle-color="#e11d48"]{--swatch:#e11d48}.color-swatch[data-doodle-color="#f97316"]{--swatch:#f97316}.color-swatch[data-doodle-color="#059669"]{--swatch:#059669}.color-swatch[data-doodle-color="#0f172a"]{--swatch:#0f172a}.brush-control{display:flex;align-items:center;gap:7px;color:#71839b}.brush-control svg{width:16px}.brush-control input{width:90px;height:20px;padding:0;border:0;box-shadow:none}.doodle-toolbar>.icon-button{width:32px;height:32px}.doodle-canvas-wrap{border:1px solid #d9e3f0;border-radius:13px;overflow:hidden;background:#fff}.doodle-canvas-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:12/7;touch-action:none;cursor:crosshair}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.toast-region{position:fixed;right:22px;top:90px;z-index:1000;display:flex;flex-direction:column;gap:9px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}.toast{background:#10213f;color:#fff;border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 35px rgba(15,35,70,.2);border-radius:11px;padding:11px 16px;font-size:12px;animation:toast-in .25s ease-out}.toast-success{background:#047857}.toast-error{background:#b91c1c}.mobile-members-toggle{display:none}[hidden]{display:none!important}
@keyframes message-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:1050px){.main-nav{gap:16px;margin-left:28px}.main-nav>a:first-child{display:none}.hero-layout{gap:35px}.hero h1{font-size:49px}.create-card{padding:25px}.chat-layout{grid-template-columns:225px minmax(0,1fr)}.chat-brand .brand-name{display:none}.connection-state b{display:none}.message-content{max-width:78%}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){:root{--header:66px}.container{width:min(100% - 32px,650px)}.mobile-menu-button{display:inline-flex}.main-nav{display:none;position:absolute;top:65px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);margin:0;padding:18px 24px;flex-direction:column;align-items:stretch;gap:12px}.main-nav.open{display:flex}.main-nav>a:first-child{display:block}.nav-spacer{display:none}.language-select select{width:100%;height:42px;border:1px solid var(--line);padding-left:32px}.language-select svg{left:11px}.main-nav .user-chip{max-width:none}.hero{padding:45px 0 50px}.hero-layout{grid-template-columns:1fr;gap:40px}.hero-copy{padding-top:0;text-align:center}.hero-description{margin-inline:auto}.hero-trust{justify-content:center}.hero-badge{margin:auto}.conversation-art{display:none}.create-card-wrap{justify-self:center;max-width:520px}.hero h1{font-size:46px}.features-section{padding:60px 0}.feature-grid{grid-template-columns:1fr}.feature-card p{min-height:0}.center-heading h2{font-size:30px}.room-card-grid{grid-template-columns:1fr}.recent-section{padding:40px 0}.footer-wrap{flex-wrap:wrap;gap:12px 20px}.footer-wrap p{order:3;width:100%}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{padding:45px 24px}.install-shell{grid-template-columns:1fr}.install-intro{position:relative;height:auto;padding:32px;gap:35px}.install-intro>div:nth-child(2){display:none}.install-promise{max-width:450px}.install-main{padding:35px 24px}.page-title-row{align-items:flex-start}.page-hero h1{font-size:30px}.chat-header{height:64px;padding:0 12px;gap:8px}.chat-header-left,.chat-header-actions{gap:5px}.header-divider,.connection-state,.chat-header-actions .button span{display:none}.chat-header-actions .button{width:39px;padding:0;min-height:38px}.chat-room-title h1{max-width:180px;font-size:13px}.chat-layout{grid-template-columns:1fr}.members-panel{position:fixed;right:0;top:64px;bottom:0;width:min(290px,85vw);z-index:40;box-shadow:-15px 0 35px rgba(30,60,110,.12);transform:translateX(105%);transition:transform .25s}.members-panel.open{transform:none}.mobile-members-toggle{display:inline-flex}.message-list{padding:20px 16px}.composer-wrap{padding:8px 12px 10px}.encryption-banner{height:30px}.typing-indicator{padding-inline:16px}.emoji-picker{left:12px;bottom:87px}.message-content{max-width:80%}.empty-chat{margin-top:9vh}.stats-grid,.compact-stats{grid-template-columns:1fr}.stat-card{padding:15px}.dashboard-tabs button,.dashboard-tabs a{padding-inline:12px}.settings-card{padding:20px}.invite-link-box{flex-direction:column}.doodle-toolbar{gap:10px}.color-swatches{width:100%}.room-privacy-note{margin-top:auto}}
@media(max-width:520px){.container{width:calc(100% - 24px)}.brand-name{font-size:18px}.hero{padding-top:34px}.hero h1{font-size:38px;margin-top:20px}.hero-description{font-size:14px}.hero-trust{gap:12px}.hero-trust span{font-size:9px}.create-card{padding:22px 18px;border-radius:18px}.card-heading{margin-bottom:17px}.form-grid.compact{grid-template-columns:1fr 1fr;gap:0 9px}.create-card .field label{font-size:12px}.section-title-row{align-items:flex-start}.section-title-row h2{font-size:24px}.center-heading h2{font-size:27px}.footer-security{margin-left:0}.form-grid:not(.compact){grid-template-columns:1fr}.install-intro{padding:24px}.install-main{padding:28px 17px}.install-form .form-grid{grid-template-columns:1fr}.page-title-row{flex-direction:column}.page-hero{padding:35px 0}.page-hero h1{font-size:27px}.dashboard-tabs{margin-inline:-12px;padding-inline:6px}.chat-brand{display:none}.chat-room-title h1{max-width:145px}.chat-room-title>div>span:nth-last-child(2){display:none}.chat-header-actions .button{display:none}.message-content{max-width:83%}.message-avatar{width:25px;height:25px}.message-bubble{font-size:12px;padding:9px 12px}.composer-tools{gap:0}.tool-button{width:30px}.composer-meta>span:last-child{display:none}.composer-meta{justify-content:center}.banner-key,.encryption-banner i{display:none}.join-card{padding:27px 20px}.modal{padding:20px 16px}.moderation-actions{grid-template-columns:1fr}.emoji-picker{width:calc(100vw - 24px);grid-template-columns:repeat(8,1fr)}.message-doodle{max-width:67vw}.toast-region{top:15px;right:16px}.doodle-toolbar .brush-control{flex:1}.auth-panel{padding:35px 20px}.auth-card h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
[dir=rtl] .members-panel{border-right:0;border-left:1px solid var(--line)}[dir=rtl] .message-row.own{flex-direction:row}[dir=rtl] .message-meta{margin-left:0;margin-right:3px}[dir=rtl] .member-menu{right:auto;left:0}[dir=rtl] .member-menu button{text-align:right}[dir=rtl] .footer-security{margin-left:0;margin-right:auto}
