:root{--bg-app: #0B1220;--bg-sidebar: #0d1622;--bg-chat: #0B1220;--bg-head: #0B3D91;--bg-bubble-them: #1a2a44;--bg-bubble-me: #1f6fd1;--text: #e9edef;--text-muted: #9fb0c8;--accent: #1f6fd1;--border: #1e2b3d;--bg-composer: #0f1a30;--bg-input: #1a2a44;--tick-blue: #9fd0ff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-app);color:var(--text);overscroll-behavior:none}.app{display:grid;grid-template-columns:360px 1fr;grid-template-rows:100dvh;height:100dvh;width:100vw;overflow:hidden}.sidebar{display:flex;flex-direction:column;background:var(--bg-sidebar);border-right:1px solid var(--border);min-width:0;min-height:0;height:100%;overflow:hidden}.sb-head{display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top,24px)) 14px 10px;background:var(--bg-head);border-bottom:1px solid var(--border);flex-shrink:0}.sb-head .title{font-weight:600;font-size:17px}.campanella{position:relative;display:inline-flex;align-items:center;margin-left:6px;color:#ffd166}.campanella-numero{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#e53935;color:#fff;font-size:11px;font-weight:700;line-height:16px;text-align:center}.sb-search{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-head);border-bottom:1px solid var(--border);flex-shrink:0}.sb-search input{flex:1;background:#16233a;border:none;border-radius:8px;padding:8px 12px;color:inherit;font-size:14px;outline:none}.sb-search-clear{background:none;border:none;color:inherit;font-size:20px;cursor:pointer;opacity:.7}.sb-list{flex:1;overflow-y:auto;min-height:0}.sb-item{width:100%;text-align:left;background:transparent;border:0;color:var(--text);display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #1f2a30}.sb-item:hover,.sb-item.active{background:#16233a}.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#1f6fd1,#0b3d91);display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.sb-meta{flex:1;min-width:0}.sb-row1,.sb-row2{display:flex;justify-content:space-between;align-items:center;gap:6px}.sb-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.sb-time{font-size:12px;color:var(--text-muted);flex-shrink:0}.sb-rowtitle{font-size:13px;font-weight:400;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.sb-last{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.sb-del{color:#6b7c84;cursor:pointer;padding:0 6px;font-size:18px;line-height:1}.sb-del:hover{color:#e57373}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden;background:repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 2px,transparent 2px 20px),var(--bg-chat)}.ch-head{display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top,24px)) 14px 8px;background:var(--bg-head);border-bottom:1px solid var(--border);flex-shrink:0}.ch-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#1f6fd1,#0b3d91);display:flex;align-items:center;justify-content:center;font-weight:600}.ch-meta{flex:1;min-width:0}.ch-name{font-weight:600;font-size:15px}.ch-sub{font-size:12px;color:var(--text-muted)}.iconbtn{background:transparent;border:0;color:#aebac1;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.iconbtn:hover{background:#ffffff0f;color:var(--text)}.iconbtn.primary-btn{background:var(--accent);color:#fff}.iconbtn.primary-btn:hover{background:#2b82ea}.gear-wrap{display:flex;flex-direction:column;align-items:center;gap:1px}.ver-tag{font-size:9px;color:var(--muted);line-height:1;opacity:.7;-webkit-user-select:none;user-select:none}.reader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:1500;display:flex;align-items:center;justify-content:center;padding:16px}.reader-card{background:var(--panel, #1f2329);border-radius:16px;max-width:600px;width:100%;max-height:80vh;position:relative;box-shadow:0 20px 60px #0009;display:flex;flex-direction:column;overflow:hidden}.reader-head{flex:0 0 auto;height:40px;position:relative}.reader-close{position:absolute;top:6px;right:8px;background:transparent;border:none;color:var(--text);font-size:24px;cursor:pointer;padding:4px 10px;line-height:1}.reader-text{font-size:18px;line-height:1.55;margin-bottom:18px;word-wrap:break-word;white-space:pre-wrap;padding:0 22px;overflow-y:auto;flex:1 1 auto;min-height:0}.reader-hl{background:#ffe600;color:#000;padding:1px 4px;border-radius:3px}.reader-mic{color:#f57;font-size:14px;margin-bottom:14px;text-align:center;font-weight:500;padding:0 22px}.reader-controls{display:flex;gap:10px;justify-content:center;padding:0 22px 22px;flex:0 0 auto}.reader-controls button{background:var(--accent);color:#fff;border:none;padding:10px 20px;border-radius:999px;font-size:18px;cursor:pointer;min-width:64px}.reader-controls button:disabled{opacity:.35;cursor:not-allowed}.bubble-tts{background:transparent;border:none;cursor:pointer;padding:0 6px;font-size:13px;opacity:.55;line-height:1}.bubble-tts:hover{opacity:1}.modal-close{background:#ffffff14;border:none;color:var(--text);font-size:22px;line-height:1;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.modal-close:hover{background:#ffffff29}.dictation-bar{display:flex;align-items:center;gap:10px;background:#2a3940;color:#e8f5f0;padding:10px 14px;border-top:1px solid rgba(255,255,255,.08);font-size:14px}.dictation-bar .pulse{animation:dict-pulse 1s ease-in-out infinite;font-size:18px}.dictation-bar button{margin-left:auto;background:#f57;color:#fff;border:none;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer}@keyframes dict-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.6}}.only-mobile,.only-mobile-back{display:none}.ch-body{flex:1;min-height:0;overflow-y:auto;padding:14px 6%;display:flex;flex-direction:column;gap:4px}.day-sep{display:flex;justify-content:center;margin:12px 0 6px}.day-sep span{background:#0f1a30;color:#c8d0d4;padding:4px 10px;border-radius:8px;font-size:12px}.row{display:flex;margin:1px 0}.row.from-me{justify-content:flex-end}.row.from-them{justify-content:flex-start}.bubble{max-width:70%;padding:6px 9px 8px;border-radius:8px;font-size:14.5px;line-height:1.4;word-wrap:break-word;position:relative;box-shadow:0 1px .5px #00000021}.row.from-me .bubble{background:var(--bg-bubble-me);border-top-right-radius:0}.row.from-them .bubble{background:var(--bg-bubble-them);border-top-left-radius:0}.bubble .text{white-space:pre-wrap;word-break:break-word}.bubble .meta{display:flex;align-items:center;gap:4px;justify-content:flex-end;margin-top:2px;margin-left:6px;float:right;margin-bottom:-3px}.bubble .time{font-size:11px;color:#ffffff80}.bubble .tick{display:inline-flex}.bubble:after{content:"";display:block;clear:both}.atts{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.att-img{max-width:280px;max-height:320px;border-radius:6px;cursor:pointer;object-fit:cover}.att-audio{width:240px}.att-file{color:#b8d8ff;text-decoration:underline;font-size:13px}.att-doc{display:flex;align-items:center;gap:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;text-decoration:none;color:var(--text);min-width:200px;max-width:280px}.att-doc:hover{background:#ffffff1a}.att-doc-icon{font-size:28px;line-height:1;flex-shrink:0}.att-doc-info{min-width:0;flex:1}.att-doc-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-doc-meta{font-size:11px;color:var(--muted, rgba(255,255,255,.5));margin-top:2px}.bubble.typing{padding:14px 12px}.bubble.typing span{display:inline-block;width:6px;height:6px;background:var(--text-muted);border-radius:50%;margin:0 1px;animation:bounce 1.2s infinite}.bubble.typing span:nth-child(2){animation-delay:.2s}.bubble.typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}.composer{display:flex;align-items:flex-end;gap:6px;padding:8px 10px;padding-bottom:calc(12px + env(safe-area-inset-bottom,16px));background:var(--bg-composer);flex-shrink:0}.composer-input{flex:1;background:var(--bg-input);border:0;color:var(--text);resize:none;padding:10px 14px;border-radius:22px;font-size:15px;font-family:inherit;max-height:200px;overflow-y:auto;outline:none}.composer-input::placeholder{color:var(--text-muted)}.rec-bar{display:flex;align-items:center;flex:1;gap:12px;padding:8px 10px}.rec-cancel{color:#e57373}.rec-dot{width:12px;height:12px;border-radius:50%;background:#e53935;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.rec-time{font-variant-numeric:tabular-nums;font-weight:500}.iconbtn.rec-active{background:#e53935!important;color:#fff;animation:pulse 1s infinite}.rec-hint{color:var(--text-muted);font-size:13px;flex:1}.att-strip{display:flex;gap:6px;padding:8px 12px;background:#0f1a30;border-top:1px solid var(--border);overflow-x:auto;flex-shrink:0}.att-chip{background:#1a2a44;border-radius:8px;padding:6px 8px;display:flex;align-items:center;gap:6px;font-size:13px;flex-shrink:0}.att-chip img{width:40px;height:40px;border-radius:4px;object-fit:cover}.att-chip button{background:transparent;color:var(--text-muted);border:0;cursor:pointer;font-size:16px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-sidebar);border-radius:8px;width:90vw;max-width:420px;max-height:80vh;overflow-y:auto;border:1px solid var(--border)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:16px}.modal-body{padding:12px 16px;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.row{flex-direction:row;justify-content:space-between;align-items:center}.field>span{font-size:13px;color:var(--text-muted)}.field select,.field input[type=text]{background:var(--bg-input);color:var(--text);border:0;border-radius:6px;padding:8px 10px;font-size:14px}.field a{color:#53bdeb;word-break:break-all}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions button,.modal-body button,.empty button.primary{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:8px 14px;font-size:14px;cursor:pointer}.row-actions button:hover{background:#2b82ea}.row-actions button:disabled{opacity:.6;cursor:not-allowed}.muted{color:var(--text-muted);font-size:12px}.empty{color:var(--text-muted);padding:30px 14px;text-align:center;font-size:14px}.empty.centered{margin:auto;display:flex;flex-direction:column;gap:14px;align-items:center}.img-viewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:zoom-out}.img-viewer img{max-width:95vw;max-height:95vh;border-radius:4px}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#1a2a44;color:var(--text);padding:10px 16px;border-radius:22px;font-size:14px;z-index:200;box-shadow:0 4px 12px #0000004d}@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;transform:translate(-100%);transition:transform .2s ease}.app.list-open .sidebar{transform:translate(0)}.only-mobile{display:inline-flex}.ch-body{padding:10px 12px}.bubble{max-width:85%}.att-img{max-width:220px;max-height:240px}.sb-title{max-width:60vw}.sb-last{max-width:65vw}}.ch-sub{display:flex;align-items:center;gap:6px;min-width:0}.ch-sub-testo{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-badge{flex-shrink:0;color:#0b141a;background:#3ecf6a;font-size:11px;font-weight:700;line-height:13px;padding:1px 6px;border-radius:8px}.iconbtn.mic-attivo{background:#e53935;animation:pulse 1s infinite}.usage-box{margin-top:6px}.usage-header{display:flex;justify-content:space-between;align-items:center;font-size:14px}.usage-pct{font-weight:700}.usage-track{height:8px;border-radius:4px;background:#ffffff1f;margin-top:5px;overflow:hidden}.usage-fill{height:8px;border-radius:4px}.usage-sub{color:var(--text-muted);font-size:12px;margin-top:4px}.row-actions button.btn-rosso{background:#b3261e}.ascolto{color:#e0b64f;font-size:13px}.alias-riga{display:flex;align-items:center;gap:10px;font-size:13px}.alias-testo{flex:1;color:#a9e8c4;line-height:18px;word-break:break-word}.alias-testo b{color:var(--text)}.modal-body .alias-riga button{background:transparent;padding:0;font-size:13px;font-weight:600}.modal-body .alias-riga .alias-modifica{color:#6fb1e0}.modal-body .alias-riga .alias-elimina{color:#e07a72}.app.con-anteprima{grid-template-rows:100dvh}.anteprima-barra .iconbtn{font-size:18px;text-decoration:none}.iconbtn.iconbtn-attivo{color:var(--accent)}.working-bar{display:flex;align-items:center;gap:8px;padding:4px 12px;background:#0f1a30;border-top:1px solid var(--border);flex-shrink:0}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,168,132,.25);border-top-color:#7cb8ff;animation:gira .8s linear infinite}@keyframes gira{to{transform:rotate(360deg)}}.working-text{flex:1;color:var(--text-muted);font-size:13px;font-style:italic}.stop-btn{background:#d11f1f;border:0;padding:6px 12px;border-radius:14px;color:#fff;font-size:12px;font-weight:700;letter-spacing:.5px;cursor:pointer}.tts-bar{display:flex;align-items:center;justify-content:center;gap:6px;padding:3px 8px;background:#0f1a30;border-top:1px solid var(--border);flex-shrink:0}.tts-btn{width:38px;height:38px;border-radius:50%;border:0;background:#1a2a44;color:#fff;font-size:16px;cursor:pointer}.tts-btn-primary{background:var(--accent)}.tts-btn:disabled{opacity:.35;cursor:default}.tts-counter{color:var(--text-muted);font-size:12px;margin-left:6px}.frase-letta{background:#ffd87a;color:#1a1a1a;border-radius:3px}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:360px;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}.login-card h2{margin:0}.login-card input{background:var(--bg-input);color:var(--text);border:0;border-radius:8px;padding:10px 12px;font-size:15px;outline:none}.login-card button{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:10px;font-size:15px;cursor:pointer}.login-card button:disabled{opacity:.5}.login-errore{color:#e57373;font-size:14px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:6px;vertical-align:middle}.dot-on{background:#3ecf6a}.dot-off{background:#e04e4e}.avviso{background:#c0392b;color:#fff;padding:8px 14px;font-size:13px;cursor:pointer;flex-shrink:0}.tick{font-size:12px}.tick-sending{color:#fff6}.tick-sent{color:#ffffffb3}.tick-read{color:var(--tick-blue);font-weight:700}.iconbtn{font-size:20px}.modal-body textarea{background:var(--bg-input);color:var(--text);border:0;border-radius:6px;padding:8px;font-family:inherit;font-size:14px;resize:vertical}.att-doc{text-decoration:none}.divisore{cursor:col-resize;background:var(--border)}.divisore:hover{background:var(--accent)}body.trascino{-webkit-user-select:none;user-select:none;cursor:col-resize}body.trascino iframe{pointer-events:none}.anteprima{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-sidebar)}.anteprima-barra{display:flex;align-items:center;gap:4px;padding:calc(8px + env(safe-area-inset-top,24px)) 8px 8px;background:var(--bg-head);border-bottom:1px solid var(--border)}.anteprima-barra input{flex:1;min-width:0;background:var(--bg-input);color:var(--text);border:0;border-radius:8px;padding:8px 12px;font-size:14px;outline:none}.anteprima-barra .iconbtn{text-decoration:none}.anteprima-cornice{flex:1;width:100%;border:0;background:#fff}.iconbtn.iconbtn-attivo{color:#9fd0ff}@media(max-width:760px){.app.con-anteprima{grid-template-columns:1fr!important}.divisore{display:none}.anteprima{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}}.non-letti{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#25d366;color:#0b1220;font-size:12px;font-weight:800;line-height:20px;text-align:center;flex-shrink:0}.menu-con-numero{position:relative}.non-letti-menu{position:absolute;top:0;right:-4px}
