/* CHAT SOMAN Premium v2 · animated glass, violet / coral / mint */
:root{--ink:#282444;--muted:#817c9d;--line:#e4dff3;--blue:#7b50e8;--soft:#f7f4ff;--panel:#fff;--bg:#f2effa;--accent:#8757ec;--accent-two:#ed6da1;--mint:#3cbaaa;--glass:rgba(255,255,255,.8);--shadow:0 12px 40px #54417b0b;--hero:linear-gradient(115deg,#f3eaff 0%,#fceaf2 52%,#e5f9f6 100%)}
body{font-family:'Segoe UI',Arial,sans-serif;background:radial-gradient(ellipse at 10% 0%,#e2d3ff99,transparent 45%),radial-gradient(ellipse at 95% 80%,#c5f3ea88,transparent 50%),var(--bg);isolation:isolate}body::before,body::after{content:'';position:fixed;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(60px);opacity:.3;animation:ambientDrift 16s ease-in-out infinite alternate}body::before{width:30vw;height:30vw;left:20%;top:-15%;background:#bc92f1}body::after{width:26vw;height:26vw;right:-7%;bottom:5%;background:#96e0d4;animation-delay:-7s}button,input,textarea,select{font-family:inherit}button{border-radius:11px;transition:background .2s,box-shadow .2s,transform .2s;border-color:var(--line)}button:hover{background:#f1eafb;border-color:#bda5ef;box-shadow:0 4px 12px #7353ae12;transform:translateY(-1px)}button:active{transform:translateY(0)}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ba98f2;outline-offset:2px}header,.dark header{height:82px;background:var(--glass);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:0 28px}.brand{font-weight:400;font-size:21px;letter-spacing:2px}.brand b{font-weight:850}.brand small{font-size:8px;color:var(--muted);letter-spacing:2.4px}.logo{background:linear-gradient(140deg,#b284f3,#7b4ae2 55%,#5630ac);border-radius:15px;box-shadow:0 6px 16px #8a59d73b;transform:rotate(-5deg);font-family:'Segoe UI',sans-serif;font-size:27px}.logo span{color:#bcffeb}.header-right .coin,.dark .header-right .coin{background:linear-gradient(110deg,#fff6e0,#fff0e1);border-color:#ecd2a1;color:#94642e;box-shadow:0 3px 12px #dba14c13}.status{font-size:11px;background:#ddf8ed;color:#329679;padding:6px 10px;border-radius:30px}.status:before{animation:onlinePulse 2s infinite}.app{padding:18px;gap:18px;grid-template-columns:210px minmax(300px,1fr) 300px}main,aside{border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow)}main{background:var(--panel)}.rail{padding:10px 2px}.rail-label{font-size:9px;letter-spacing:2px;color:#9285ac}.room-btn{padding:14px 12px;border-radius:13px;gap:12px}.room-btn .symbol{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#eae2ff;color:#8860bd;font-size:18px}.room-btn:nth-child(2) .symbol{background:#fce6ee;color:#d77a9b}.room-btn:nth-child(3) .symbol{background:#dcf4ee;color:#43a08b}.room-btn.active,.dark .room-btn.active{background:var(--panel);border-color:#cbb5f4;box-shadow:0 5px 17px #7050ad10;position:relative}.room-btn.active:after{content:'';position:absolute;right:10px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.room-btn small{font-size:10px;margin-top:3px;font-weight:400}.rail-note{margin:auto 12px;color:var(--muted)}.rail-note>span{color:#ba9cd5;animation:starTurn 14s linear infinite;display:inline-block}.rail-note h3{font:600 20px/1.4 'Segoe UI',sans-serif;letter-spacing:-.6px;color:#7a648c}.rail-bottom{padding:17px 7px 0;border-color:var(--line)}.rail-bottom small{color:#9b79bc}.room-header,.dark .room-header{background:var(--hero);padding:26px 28px;position:relative;overflow:hidden;min-height:142px}.room-header:after{content:'✦';position:absolute;right:130px;top:20px;color:#c4a4e8;font-size:24px;animation:starTurn 18s linear infinite;opacity:.6}.eyebrow{color:#a076b6;font-size:9px;letter-spacing:2px}h1{font:750 36px/1.2 'Segoe UI',sans-serif;letter-spacing:-1.7px;margin:8px 0 5px}.room-header p{color:#8e7f9c;font-size:12px}.room-icon,.dark .room-icon{background:#ffffff90;border:1px solid #ffffffb0;box-shadow:0 10px 25px #78508815;width:68px;height:68px;line-height:68px;animation:floatGentle 5s ease-in-out infinite}.welcome,.dark .welcome{margin:20px 24px;background:linear-gradient(115deg,#f7f2ff,#ffeff6);border:1px solid #e9dcf7;border-radius:14px;padding:13px 16px}.welcome>span{color:#bc80d0;font-size:28px}.welcome b{color:#80518f;font-size:12px}.welcome p{color:#a080a7;font-size:11px}.welcome button,.dark .welcome button{background:var(--panel);border-color:#e6d4ed;color:#a06ba6;border-radius:9px;font-size:10px}.conversation-head{padding:12px 26px;border-color:var(--line);background:var(--panel)}.conversation-head b{font-size:12px;color:#9a79b7}.conversation-head>span{color:#aa9bbb;font-size:9px;letter-spacing:.3px}.conversation-head>span:before{content:'●';font-size:7px;color:#57c4a7;margin-right:6px}#messages,.dark #messages{background:radial-gradient(ellipse at 100% 100%,#f5edff80,transparent 65%),var(--panel);padding:22px 26px}.avatar{border-radius:13px;background:linear-gradient(130deg,#e6ddff,#d4c6f4);border:2px solid #fff;color:#8861ae;box-shadow:0 2px 9px #9377b51a;font-weight:600}.message{animation:messageSlide .24s ease-out;margin-bottom:21px}.message-meta button,.dark .message-meta button{color:var(--ink);background:none;letter-spacing:.1px}.message-meta time{color:#b4a8c2;font-size:9px}.badge{border-radius:5px;font-size:7px;padding:3px 5px;letter-spacing:.8px;background:#f1ebf8;color:#a085b4}.badge.owner{background:linear-gradient(100deg,#ffdf98,#ffeecb);color:#9c691c}.badge.admin{background:linear-gradient(100deg,#edd1ff,#f4e3ff);color:#a15aca}.badge.mod{background:linear-gradient(100deg,#c9f3ed,#e0faf5);color:#349b89}.badge.vip{background:#fff1cb;color:#b88c37}.bubble,.dark .bubble{background:var(--soft);border-color:var(--line);border-radius:0 14px 14px 14px;padding:11px 15px;font-size:13px}.message.own .bubble,.dark .message.own .bubble{background:linear-gradient(115deg,#eee5fd,#f4eafb);border-color:#dfcff5}.bubble.gift,.dark .bubble.gift{background:linear-gradient(120deg,#fff3d7,#ffeaf2);border-color:#edd6aa;color:#a57236}.gift-art{animation:giftPop .65s cubic-bezier(.3,1.8,.5,1);font-size:42px}.empty{padding:64px 12px;font-size:12px;color:#a094b1}.empty strong{font:600 23px 'Segoe UI',sans-serif;letter-spacing:-.6px;color:#aa8dc1}.composer{padding:12px 22px 12px;border-color:var(--line);background:var(--panel)}.tools button,.dark .tools button{border-radius:8px;color:#9074a6;background:transparent;font-size:16px}.tools button:hover{background:#f0e6fc}.tools button span{font-size:10px}.tools-right{color:#b2a2c2}.composer textarea,.dark .composer textarea{background:var(--soft);border-color:var(--line);border-radius:13px;font-size:13px;padding:14px}.primary,.dark .primary{background:linear-gradient(110deg,#a077ec,#8150dd);border:1px solid #9366d9;box-shadow:0 5px 14px #9063d42b;color:#fff;border-radius:11px}.primary:hover,.dark .primary:hover{background:linear-gradient(110deg,#ad7ff7,#8a52ed);box-shadow:0 8px 20px #9063d43b}.composer-footer{font-size:9px;color:#b4a6c1}.composer-footer #charCount{color:#b79fc9}#sendButton{min-width:85px;font-size:12px}aside,.dark aside{background:var(--glass);backdrop-filter:blur(14px)}.side-tabs{border-color:var(--line);padding-top:9px}.side-tabs button,.dark .side-tabs button{font-size:11px;color:#a08bad;background:none}.side-tabs button.active{color:#9c64cb;border-color:#b37add}.side-tabs span{background:#eae0f9;color:#9864c1}.side-search input,.dark .side-search input{border-radius:11px;background:var(--panel);border-color:var(--line);font-size:11px;padding:11px 12px}.person,.dark .person{background:var(--panel);border-color:var(--line);border-radius:14px;padding:12px;transition:transform .2s,box-shadow .2s}.person:hover{transform:translateY(-2px);box-shadow:0 7px 20px #8c64b51a;border-color:#c6a4e3}.person-info b{font-size:12px}.person-info small{font-size:9px;color:#b29cbe}.online-dot{background:#67cfb2;box-shadow:0 0 0 3px #67cfb218}.person .present,.dark .person .present{background:none}.person .present:hover{animation:giftWiggle .45s ease-in-out}.gift-promo,.dark .gift-promo{margin:13px;padding:22px;background:linear-gradient(135deg,#eee1fc,#fce4ef 65%,#ffe7d1);border:1px solid #e9d4ef;border-radius:15px;overflow:hidden}.gift-promo>div{font-size:8px;letter-spacing:2px;color:#b080b2}.gift-promo h3{font:700 26px/1.15 'Segoe UI',sans-serif;letter-spacing:-1px;color:#98659d}.gift-promo>span{top:49px;font-size:28px;animation:floatGentle 5s ease-in-out infinite}.gift-promo button,.dark .gift-promo button{font-size:10px;background:#ffffffbd;border-color:#e6c9e7;color:#a571aa}.side-footer{color:#b19fc0;font-size:8px;letter-spacing:1px}#adminButton,.dark #adminButton{background:linear-gradient(100deg,#e7d9fc,#f6e3f0);color:#9561ba;border-color:#dcc6ef;font-size:11px;padding:11px}.rail-bottom .avatar{border:1px solid #dcc6ef}#authDialog{border-radius:23px;border:1px solid #e4d4f2;box-shadow:0 30px 100px #42205040}dialog::backdrop{background:#27183f88;backdrop-filter:blur(9px)}.auth-art,.dark .auth-art{background:linear-gradient(145deg,#eee0fc,#f9e4f1 60%,#d9f4ed);padding:45px 35px}.auth-art h2{font:750 36px/1.15 'Segoe UI',sans-serif;letter-spacing:-1.6px;color:#865f9c}.auth-art p{color:#ab8ab3}.auth-art .eyebrow{color:#ae82be}.auth-art .logo{animation:floatGentle 5s ease-in-out infinite}.auth-bubbles{animation:floatGentle 6s ease-in-out infinite;letter-spacing:5px;font-size:29px}.auth-form{background:var(--panel);padding:35px}.auth-form h2{font:700 24px/1.3 'Segoe UI',sans-serif;letter-spacing:-.7px}.auth-form input{padding:12px;background:var(--soft);border-color:var(--line)}.auth-form button{border-radius:11px}.auth-form small{font-size:10px;color:#b39ac0}.divider{color:#c4aecb}dialog,.dark dialog{background:var(--panel);border-color:var(--line)}#panelDialog{width:620px;border-radius:21px;padding:30px}#panelContent h2{font:700 27px/1.25 'Segoe UI',sans-serif;letter-spacing:-1px}#panelContent .muted{line-height:1.8}#panelContent label{display:block;margin:15px 0 7px;font-size:11px;font-weight:600;color:var(--muted)}#panelContent input,#panelContent select{display:block;margin-top:7px;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--soft);font-size:12px}#panelContent .panel-actions button{padding:11px 15px}.gift-grid button,.dark .gift-grid button{background:linear-gradient(145deg,#fcf4ff,#f5e9fb);border-color:#e5ceee;color:#9360a8;border-radius:15px}.gift-grid button:hover{transform:translateY(-4px);box-shadow:0 9px 25px #ab73c326}.gift-grid span{font-size:40px}.pack-grid button,.dark .pack-grid button{background:linear-gradient(140deg,#fff8e8,#ffeeda);border-color:#ebd3b0;color:#a5753c;padding:18px}.pack-grid strong{font-size:30px;color:#b7874b}.wallet-total{font:750 43px 'Segoe UI',sans-serif;color:#b99153}.wallet-total small{font-size:17px}.danger,.dark .danger{background:linear-gradient(120deg,#ed7994,#dc547c);border-color:#e47797;color:white}.warning-box{background:#fff5e8;border:1px solid #f0d6b2;color:#b37e43;padding:14px;border-radius:12px;font-size:11px;line-height:1.8;margin:18px 0}#panelDialog.studio-dialog{width:880px}.studio-eyebrow{color:#b485d0;font-size:9px;letter-spacing:2px;font-weight:bold;margin-bottom:10px}.studio-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.studio-stats>div{background:linear-gradient(130deg,#efe5fc,#f8effd);padding:17px 20px;border-radius:14px;border:1px solid #e7d5f3}.studio-stats>div:nth-child(2){background:linear-gradient(130deg,#ffe9f1,#fff2f5);border-color:#f4d7e5}.studio-stats>div:nth-child(3){background:linear-gradient(130deg,#dff6ee,#edfbf7);border-color:#d2eee4}.studio-stats b{display:block;font-size:26px;color:#a572c6;font-weight:700}.studio-stats span{font-size:10px;color:#b190c2}.studio-stats>div:nth-child(2) b,.studio-stats>div:nth-child(2) span{color:#d38aaa}.studio-stats>div:nth-child(3) b,.studio-stats>div:nth-child(3) span{color:#66ab97}.studio-tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid var(--line);padding-bottom:10px}.studio-tabs button{border:0;background:transparent;font-size:11px;color:var(--muted);white-space:nowrap}.studio-tabs button.selected,.dark .studio-tabs button.selected{background:#ede0fb;color:#9e65c5}.studio-toolbar{display:flex;gap:12px;align-items:center;margin:16px 0}.studio-toolbar input{margin:0!important;flex:1}.studio-toolbar button{white-space:nowrap;font-size:11px;padding:12px}.staff-card{border:1px solid var(--line);border-radius:15px;padding:16px;margin:12px 0;background:var(--soft)}.staff-identity{display:flex;gap:11px;align-items:center}.staff-identity b{font-size:13px}.staff-identity small{display:block;font-size:10px;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.staff-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.staff-controls button{font-size:10px;padding:7px 10px;background:var(--panel)}.staff-controls select{width:auto!important;display:inline-block!important;margin:0!important;padding:6px!important;font-size:10px!important}.staff-controls .warning-button{background:#fff0f3;color:#d47491;border-color:#f1d4df}.protected-label{font-size:9px;color:#af99c3;margin-top:10px}.audit-row{padding:14px 0;border-bottom:1px solid var(--line);font-size:11px}.audit-row>b{color:#a578c3}.audit-row>span{margin:0 10px;color:var(--muted)}.audit-row small{color:var(--muted);font-size:9px}.audit-row p{font-size:10px;color:#ac9cbb;word-break:break-word}.admin-row{padding:15px 0}#callPanel{background:linear-gradient(135deg,#34234f,#25304d);border:1px solid #80629c70;border-radius:20px;box-shadow:0 15px 65px #30203e55}#toast{background:linear-gradient(115deg,#8e62b1,#6e4c93);border:1px solid #d4b9eb60;border-radius:14px;color:#fff;box-shadow:0 8px 35px #62408033}#celebration{position:fixed;left:50%;top:35%;z-index:30;pointer-events:none;font-size:100px;filter:drop-shadow(0 12px 24px #bd77aa55);animation:celebrateGift 2.2s ease-out forwards}
/* Night mode keeps the same colour language and readable contrast. */
.dark{--ink:#eee8fa;--muted:#a395ba;--line:#423252;--soft:#2b203b;--panel:#21192e;--bg:#17121f;--glass:rgba(34,26,46,.9);--hero:linear-gradient(115deg,#392444,#34223c 50%,#1f3c3a);--shadow:0 12px 35px #05020920}.dark header,.dark aside{background:var(--glass)}.dark button{background:#30233f;color:#d7bce9;border-color:#503960}.dark .room-header h1{color:#efdffb}.dark .room-header p{color:#bda3c9}.dark .room-btn .symbol{background:#49335c}.dark .room-btn:nth-child(2) .symbol{background:#51303d}.dark .room-btn:nth-child(3) .symbol{background:#25493e}.dark .welcome{background:linear-gradient(115deg,#36243f,#392636);border-color:#51345a}.dark .welcome b{color:#d1a7e2}.dark .welcome p{color:#aa86b7}.dark .welcome button{background:#37283f;border-color:#5b3c61;color:#d7b0e4}.dark .message.own .bubble{background:linear-gradient(115deg,#402a52,#382542);border-color:#563568}.dark .bubble.gift{background:linear-gradient(115deg,#49382c,#4b2d41);border-color:#685137;color:#e9c39b}.dark .avatar{background:linear-gradient(140deg,#553969,#38284b);border-color:#604176;color:#d2afe7}.dark .message:nth-child(3n) .avatar,.dark .person:nth-child(3n) .avatar{background:#443457;color:#d6b9f0}.dark .message:nth-child(3n+1) .avatar,.dark .person:nth-child(3n+1) .avatar{background:#294b42;color:#a7dcc7}.dark .gift-promo{background:linear-gradient(140deg,#40274c,#462838,#493628);border-color:#593b5c}.dark .gift-promo h3{color:#dcaed8}.dark .gift-promo button{background:#543756;color:#ebc0e5;border-color:#76516f}.dark #adminButton{background:linear-gradient(110deg,#402952,#432c43);color:#d0a4e2;border-color:#694279}.dark .auth-art{background:linear-gradient(145deg,#42254d,#472b3f 60%,#284b42)}.dark .auth-art h2{color:#e3bee9}.dark .auth-art p{color:#b792c3}.dark .auth-form input{background:var(--soft)}.dark .studio-stats>div{background:#3a274a;border-color:#543264}.dark .studio-stats>div:nth-child(2){background:#472b3c;border-color:#624054}.dark .studio-stats>div:nth-child(3){background:#23463d;border-color:#2f5e52}.dark .warning-box{background:#443125;border-color:#67503a;color:#dbb38a}.dark .staff-controls .warning-button{background:#4b2a3c;border-color:#6e3e54;color:#e8a0b8}.dark .gift-grid button{background:#392644;border-color:#60436e;color:#dfb7eb}.dark .pack-grid button{background:#49382a;border-color:#6f5539}.dark .badge.owner{background:#72562c;color:#ffe1a5}.dark .badge.admin{background:#59346b;color:#ecc1ff}.dark .badge.mod{background:#24564a;color:#b9f6df}.dark .badge{background:#49384f;color:#c7afda}.dark .status{background:#254b3f;color:#9cd9bc}.dark #authDialog{border-color:#60426c}
@keyframes ambientDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(8vw,6vh,0)}}@keyframes floatGentle{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}@keyframes onlinePulse{0%,100%{opacity:1}50%{opacity:.45}}@keyframes starTurn{to{transform:rotate(360deg)}}@keyframes messageSlide{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes giftPop{from{transform:scale(.65)}to{transform:scale(1)}}@keyframes giftWiggle{0%,100%{transform:rotate(0)}30%{transform:rotate(-13deg)}70%{transform:rotate(13deg)}}@keyframes celebrateGift{0%{opacity:0;transform:translate(-50%,20px) scale(.4)}20%,60%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-80px) scale(1.2)}}
@media(min-width:1600px){.app{grid-template-columns:225px minmax(300px,1fr) 325px;padding:22px;gap:22px}.room-header{padding:30px 32px}.welcome{margin:22px 28px}.composer{padding:15px 25px}}@media(max-width:1100px){.app{grid-template-columns:165px minmax(280px,1fr) 245px;padding:12px;gap:12px}.brand{font-size:18px}.room-btn{padding:11px 8px}.room-btn .symbol{width:27px;height:27px}.room-header{padding:23px}.welcome{margin:15px}.gift-promo{padding:18px}.gift-promo h3{font-size:24px}}@media(max-width:760px){header,.dark header{height:66px;padding:0 12px}.brand{font-size:14px;letter-spacing:1px}.brand small{font-size:6px;letter-spacing:1px}.app{height:calc(100dvh - 66px);grid-template-columns:minmax(0,1fr) 162px;grid-template-rows:auto minmax(0,1fr);padding:7px;gap:7px}.rail{padding:0}.room-btn{padding:9px 10px;border-radius:10px;font-size:10px}.room-btn.active:after{display:none}.rail .room-btn .symbol{display:none}.rail #adminButton{padding:8px;font-size:9px}main,aside{border-radius:15px}.room-header{min-height:105px;padding:15px}.room-header h1{font-size:26px;letter-spacing:-1px}.room-header .eyebrow{font-size:7px}.room-header p{font-size:10px;line-height:1.6}.room-header:after{right:20px;top:18px;font-size:20px}.conversation-head{padding:10px;font-size:10px}.conversation-head b{font-size:10px}#messages,.dark #messages{padding:15px 10px}.bubble,.dark .bubble{padding:9px;font-size:12px;border-radius:0 10px 10px}.composer{padding:8px}.composer textarea{padding:10px;font-size:12px}#sendButton{min-width:50px;font-size:10px;padding:9px}.tools button{padding:5px;font-size:14px}.tools button span{display:none}.side-tabs button,.dark .side-tabs button{font-size:9px}.side-search{padding:8px}.side-search input,.dark .side-search input{padding:9px;font-size:10px}.person,.dark .person{padding:8px 6px;gap:6px;border-radius:11px}.person-info b{font-size:10px}.person-info small{font-size:8px}.gift-promo,.dark .gift-promo{padding:12px;margin:7px;border-radius:12px}.gift-promo h3{font-size:20px}.gift-promo>div{font-size:7px}.gift-promo button{font-size:9px;padding:7px}.side-footer{font-size:6px;letter-spacing:.5px}#panelDialog{padding:23px;max-width:96vw}#panelContent h2{font-size:23px}.studio-stats{gap:7px;margin:18px 0}.studio-stats>div{padding:12px}.studio-stats b{font-size:23px}.studio-stats span{font-size:8px}.studio-tabs{gap:2px}.studio-tabs button{padding:8px;font-size:10px}.staff-card{padding:12px}.staff-controls button{font-size:9px;padding:7px}.staff-identity small{font-size:9px}.studio-toolbar{gap:8px}.studio-toolbar button{padding:10px;font-size:10px}#celebration{font-size:70px}.composer-footer{font-size:8px}.auth-form{padding:28px}.auth-form h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){body::before,body::after,*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#celebration{display:none!important}}

/* Stronger contrast for small labels without changing the palette. */
body:not(.dark) .room-header p,body:not(.dark) .person-info small,body:not(.dark) .composer-footer,body:not(.dark) .side-footer{color:#85718f}body:not(.dark) .welcome p{color:#986fa3}body:not(.dark) .studio-stats span{color:#8b659c}body:not(.dark) .studio-stats>div:nth-child(2) span{color:#a56382}body:not(.dark) .studio-stats>div:nth-child(3) span{color:#3a8a74}
