:root{--bg:#07101d;--panel:#101b2d;--panel2:#16243a;--text:#edf4ff;--muted:#8ea1bb;--accent:#47d7a2;--danger:#ff5d73;--line:#253650}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#132641,#07101d 48%);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}button,input,textarea{font:inherit}header{height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#081321cc;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px}.brand small,.profile small{display:block;color:var(--muted)}.logo,.avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--accent),#5f8cff);display:grid;place-items:center;color:#06121b;font-weight:800}.status{font-size:13px;color:var(--muted)}main{min-height:calc(100vh - 72px)}.auth-grid{max-width:920px;margin:8vh auto;display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:20px}.card{background:#101b2de8;border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 24px 80px #0007}.card h2{margin-top:0}.card form{display:grid;gap:16px}label{display:grid;gap:7px;color:var(--muted);font-size:14px}input,textarea{width:100%;border:1px solid var(--line);background:#0a1525;color:var(--text);border-radius:12px;padding:13px;outline:none}input:focus,textarea:focus{border-color:var(--accent)}button{border:0;border-radius:12px;padding:12px 15px;background:var(--accent);color:#07111b;font-weight:750;cursor:pointer}.secondary{background:#20334d;color:var(--text)}.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.layout{display:grid;grid-template-columns:300px 1fr;height:calc(100vh - 72px)}.sidebar{background:#0b1626;border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:18px}.profile{display:flex;gap:12px;align-items:center}.contacts{display:grid;gap:8px;overflow:auto}.contact{background:#111f33;color:var(--text);text-align:left}.contact small{display:block;color:var(--muted)}.sidebar .ghost{margin-top:auto}.chat{display:grid;grid-template-rows:auto auto 1fr auto;min-width:0}.chat-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.chat-head h2{margin:0 0 4px}.chat-head small{color:var(--muted)}.actions{display:flex;gap:8px}.actions button{background:#172941;color:var(--text)}.actions .active{background:var(--accent);color:#07111b}.messages{padding:22px;overflow:auto;display:flex;flex-direction:column;gap:10px}.empty{margin:auto;color:var(--muted);text-align:center;max-width:520px}.msg{max-width:70%;padding:11px 14px;border-radius:16px;background:#172941}.msg.me{align-self:flex-end;background:#1c594d}.msg small{display:block;color:#a9bbd1;margin-top:5px}.composer{padding:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:end}.composer textarea{resize:none;max-height:140px}.video-stage{position:relative;background:#02070d;min-height:260px;max-height:46vh;display:grid;place-items:center}.video-stage.hidden,.hidden{display:none!important}#remoteVideo{width:100%;height:100%;max-height:46vh;object-fit:contain}#localVideo{position:absolute;right:14px;bottom:14px;width:170px;aspect-ratio:16/9;object-fit:cover;border-radius:12px;border:1px solid var(--line)}.hangup{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:var(--danger);color:white}.modal{position:fixed;inset:0;background:#000a;display:grid;place-items:center;padding:20px}.modal-card{position:relative;width:min(520px,100%)}.close{position:absolute;right:16px;top:12px;background:transparent;color:var(--muted);font-size:24px}.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.share-grid a{padding:12px;border-radius:12px;text-decoration:none;text-align:center;background:#20334d;color:var(--text)}.alert{padding:12px;border-radius:12px;background:#5c2330;margin-bottom:14px}.install{display:grid;place-items:center;padding:20px}.install-card{width:min(600px,100%)}.install-card small{display:block;margin-top:18px;color:var(--muted)}.guest-note{color:var(--muted);line-height:1.5}@media(max-width:760px){.auth-grid{grid-template-columns:1fr;margin:20px auto}.layout{grid-template-columns:1fr}.sidebar{display:none}.chat{height:calc(100vh - 72px)}.chat-head{padding:10px}.actions button{padding:10px}.msg{max-width:86%}#localVideo{width:110px}}.mobile-toolbar{display:none;padding:10px;border-bottom:1px solid var(--line);gap:8px}.connection-prompt,.active-invite{margin:12px 16px 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#10233a;display:flex;align-items:center;justify-content:space-between;gap:12px}.connection-prompt div,.active-invite div{min-width:0}.connection-prompt strong,.connection-prompt span,.active-invite strong,.active-invite span{display:block}.connection-prompt span,.active-invite span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-line{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}#inviteResult small{display:block;color:var(--muted);margin-top:12px}.actions{flex-wrap:wrap}.actions #connectBtn{background:var(--accent);color:#07111b}
@media(max-width:760px){header{height:62px;padding:0 12px}.brand small{display:none}main{min-height:calc(100vh - 62px)}.layout{height:calc(100vh - 62px)}.mobile-toolbar{display:flex;justify-content:space-between}.mobile-toolbar #newChatMobileBtn{flex:1}.sidebar{display:none;position:fixed;z-index:20;inset:62px 0 0 0;width:min(340px,88vw);box-shadow:20px 0 70px #000b}.sidebar.mobile-open{display:flex}.chat{height:calc(100vh - 62px);grid-template-rows:auto auto auto auto 1fr auto}.chat-head{align-items:flex-start;gap:8px}.chat-head h2{font-size:17px}.actions{justify-content:flex-end}.actions button{padding:9px 10px;font-size:13px}.connection-prompt,.active-invite{margin:8px 10px 0;align-items:stretch;flex-direction:column}.connection-prompt button,.active-invite button{width:100%}.composer{padding:8px;gap:7px}.composer button{padding:11px}.messages{padding:12px}.modal{align-items:end;padding:0}.modal-card{border-radius:22px 22px 0 0;width:100%;max-height:90vh;overflow:auto}.invite-line{grid-template-columns:1fr}.share-grid{grid-template-columns:1fr}}

/* LifeChat 1.9 - esperienza mobile semplificata */
.sidebar-backdrop{display:none}
.action-icon{font-size:18px;line-height:1}.action-label{font-size:11px;line-height:1}
@media(max-width:760px){
 body{background:#07101d;overflow:hidden}
 body.menu-open{overflow:hidden}
 header{height:54px;padding:0 14px;position:relative;z-index:31}
 .logo{width:36px;height:36px;border-radius:12px}.brand strong{font-size:17px}.status{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
 main,.layout,.chat{height:calc(100dvh - 54px);min-height:0}
 .layout{display:block}
 .chat{display:grid;grid-template-rows:52px auto auto auto minmax(0,1fr) auto;background:#07101d}
 .mobile-toolbar{height:52px;padding:7px 10px;align-items:center;background:#0b1626;position:relative;z-index:10}
 .mobile-peer{display:flex;align-items:center;gap:7px;font-weight:700;font-size:14px}.mobile-online-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #47d7a21a}
 .mobile-toolbar #newChatMobileBtn{flex:0 1 auto;margin-left:auto;padding:10px 13px;font-size:13px}
 .menu-icon{width:42px;height:42px;padding:0;font-size:21px;color:var(--text)}
 .sidebar-backdrop{display:block;position:fixed;inset:54px 0 0;z-index:39;background:#0008;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-backdrop.show{opacity:1;pointer-events:auto}
 .sidebar{display:flex;position:fixed;z-index:40;top:54px;bottom:0;left:0;inset:auto;width:min(330px,88vw);padding:20px 16px calc(18px + env(safe-area-inset-bottom));transform:translateX(-105%);transition:transform .22s ease;box-shadow:20px 0 70px #000c;border-radius:0 22px 22px 0}
 .sidebar.mobile-open{display:flex;transform:translateX(0)}
 .profile{padding:4px 4px 14px;border-bottom:1px solid var(--line)}.sidebar>.secondary{min-height:48px;font-size:15px}.contacts{padding-right:2px}.contact{padding:13px;border-radius:14px}.sidebar .ghost{min-height:48px}
 .chat-head{padding:10px 12px 9px;display:block;background:#0b1626;border-bottom:0}
 .chat-head>div:first-child{min-width:0;margin-bottom:10px}.chat-head h2{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-head small{font-size:12px}
 .actions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;width:100%}.actions button{min-width:0;height:51px;padding:6px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:14px;background:#14263d}.actions #connectBtn{background:var(--accent)}
 .connection-prompt,.active-invite{margin:8px 10px 0;padding:12px;border-radius:16px;gap:10px}.connection-prompt span,.active-invite span{white-space:normal;line-height:1.35}.connection-prompt button,.active-invite button{min-height:46px}
 .messages{min-height:0;padding:14px 10px 22px;gap:8px;scroll-behavior:smooth}.empty{font-size:13px;line-height:1.5;padding:20px}.msg{max-width:88%;padding:10px 13px;border-radius:18px 18px 18px 5px;font-size:15px;line-height:1.35}.msg.me{border-radius:18px 18px 5px 18px}.msg small{font-size:10px}
 .composer{position:relative;padding:8px 9px calc(8px + env(safe-area-inset-bottom));gap:7px;background:#0b1626;border-top:1px solid var(--line);align-items:end}.composer textarea{min-height:44px;max-height:110px;border-radius:22px;padding:11px 14px;line-height:20px}.composer button{height:44px;min-width:44px;padding:0 12px;border-radius:22px}.composer #attachBtn{font-size:24px;background:#172941;color:var(--text)}.composer #sendBtn{font-size:13px;padding:0 16px}
 .video-stage{min-height:190px;max-height:38vh}.video-stage #remoteVideo{max-height:38vh}#localVideo{right:9px;bottom:9px;width:96px;border-radius:10px}.hangup{bottom:12px;min-height:44px}
 .modal{z-index:60}.modal-card{padding:24px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 70px #000b}.modal-card h2{font-size:21px}.modal-card input{min-height:48px}.modal-card form button{min-height:48px}
}
@media(max-width:390px){
 .mobile-toolbar #newChatMobileBtn{font-size:0;width:42px;height:42px;padding:0}.mobile-toolbar #newChatMobileBtn::after{content:'＋';font-size:23px}
 .actions button{height:48px}.action-icon{font-size:17px}.action-label{font-size:10px}
 .chat-head h2{font-size:16px}.composer #sendBtn{font-size:0;width:44px;padding:0}.composer #sendBtn::after{content:'➤';font-size:18px}
}


/* LifeChat 2.0 - scheda invito mobile stabile */
.active-invite{min-width:0;max-width:100%;overflow:hidden}
.active-invite-copy{min-width:0;flex:1}
.active-invite-copy strong,.active-invite-copy span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){
 .chat{width:100%;max-width:100vw;overflow:hidden;grid-template-rows:52px auto auto minmax(0,1fr) auto}
 .chat-head,.mobile-toolbar,.messages,.composer,.active-invite,.connection-prompt{width:auto;min-width:0;max-width:100%}
 .active-invite{margin:8px 10px 0;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px}
 .active-invite-copy{overflow:hidden}
 .active-invite-copy strong{font-size:15px;line-height:1.25}
 .active-invite-copy span{font-size:12px;margin-top:4px}
 .active-invite button{width:auto!important;min-width:92px;max-width:120px;min-height:40px;padding:9px 12px;white-space:nowrap;font-size:12px}
 .connection-prompt{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;flex-direction:unset}
 .connection-prompt button{width:auto;min-width:112px;max-width:150px;white-space:normal}
 .connection-prompt div{overflow:hidden}
 .connection-prompt strong,.connection-prompt span{overflow-wrap:anywhere}
 .actions{overflow:hidden}
 .actions button{width:100%;max-width:100%;overflow:hidden}
 .invite-line input{min-width:0}
 .invite-line button{width:100%}
 .empty{max-width:100%;overflow-wrap:anywhere}
}
@media(max-width:390px){
 .active-invite{grid-template-columns:minmax(0,1fr) 86px}
 .active-invite button{min-width:0;width:86px!important;padding:8px;font-size:11px}
}

/* LifeChat 2.2 - chiamata in arrivo con squillo e risposta */
.call-response-actions{display:flex;gap:9px;flex:0 0 auto}
.call-response-actions button{min-width:104px}
button.danger{background:var(--danger);color:#fff}
body.incoming-call .connection-prompt{border-color:#47d7a2;box-shadow:0 0 0 3px #47d7a21f,0 14px 40px #0006;animation:incomingPulse 1.2s ease-in-out infinite}
@keyframes incomingPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.008)}}
@media(max-width:760px){
 .connection-prompt{grid-template-columns:minmax(0,1fr)!important}
 .call-response-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
 .call-response-actions button{width:100%!important;max-width:none!important;min-width:0!important;min-height:48px}
 body.incoming-call .connection-prompt{position:relative;z-index:15}
}
