.empty-state{margin:auto;padding:42px 24px;text-align:center;color:var(--muted)}
button:focus-visible{outline:3px solid #147d55;outline-offset:3px}
.empty-state h1,.empty-state strong{color:var(--ink)}
.signin-actions{display:grid;gap:12px;padding:24px}
.signin-actions a{text-decoration:none;text-align:center}
.secondary-action{padding:14px;border:1px solid var(--line);border-radius:16px;color:var(--ink);font-weight:800;background:#fff}
.sheet-dialog label{display:grid;gap:7px;margin:14px 0;font-weight:800;color:var(--ink);text-align:left}
.sheet-dialog input[type=password]{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;font:inherit}
.sheet-dialog .confirm-row{grid-template-columns:auto 1fr;align-items:start;font-weight:600;font-size:.88rem}
.composer{grid-template-columns:36px 36px minmax(0,1fr) 42px}
.composer-message-field{display:flex;align-items:flex-end;min-width:0;min-height:40px;padding:4px 5px 4px 12px;border-radius:20px;background:#f1f6f6}
.composer-message-field textarea{align-self:center;min-width:0;padding:5px 0}
.composer-mic-btn{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--teal-dark);cursor:pointer}
.composer-mic-btn:hover,.composer-mic-btn:focus-visible{background:#d9eeec;outline:2px solid rgba(8,121,138,.2)}
.composer-mic-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.voice-composer{grid-column:1/-1;display:grid;grid-template-columns:14px minmax(0,1fr) auto auto;gap:9px;align-items:center;min-height:44px;padding:6px 7px 6px 12px;border:1px solid #b7dcda;border-radius:18px;background:#f0f9f7}
.voice-composer-pulse{width:11px;height:11px;border-radius:50%;background:#d43d3d}
.voice-composer-pulse.recording{animation:voice-pulse 1.2s ease-in-out infinite}
.voice-composer>span:nth-child(2){display:flex;align-items:baseline;gap:8px;min-width:0}
.voice-composer strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.voice-composer time{color:var(--teal-dark);font-size:11px;font-weight:900}
.voice-cancel-btn,.voice-send-btn{min-height:32px;padding:0 11px;border-radius:12px;font-size:10px;font-weight:900;cursor:pointer}
.voice-cancel-btn{border:1px solid #e2bcbc;background:#fff;color:#a62f2f}.voice-send-btn{border:0;background:var(--teal);color:#fff}
.composer.recording>.attach-btn,.composer.recording>.location-btn,.composer.recording>.send-btn{display:none}
.activation-notice{background:#fff7d8;border-color:#e8cf75}.activation-notice>div{flex:1}.activation-notice button{margin-top:8px;padding:7px 10px;border:0;border-radius:9px;background:var(--teal);color:#fff;font-size:9px;font-weight:900;cursor:pointer}.composer textarea:disabled,.composer button:disabled{cursor:not-allowed;opacity:.55}
html,body{max-width:100%;overflow-x:hidden}.app-shell,.view,.chat-list-view{max-width:100%;overflow-x:hidden}.app-header{gap:10px}.brand,.brand>div:last-child,.header-actions,.greeting-card>div:first-child{min-width:0}.brand{flex:1}.brand strong,.brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{flex:0 0 auto}.greeting-card{gap:12px;overflow:hidden}.greeting-card h1{max-width:100%;font-size:clamp(20px,6vw,29px);overflow-wrap:anywhere;word-break:break-word}.secure-seal{flex:0 0 56px}.conversation-list,.search-box,.notification-card{max-width:100%}.bottom-nav{grid-template-columns:repeat(3,1fr)}.toast{bottom:82px;display:flex;align-items:center;gap:12px;width:min(390px,calc(100% - 28px));max-width:none;text-align:left;pointer-events:none}.toast.show{pointer-events:auto}.toast #toastMessage{flex:1;line-height:1.35}.toast button{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:transparent;color:#fff;font-size:20px;cursor:pointer}
@media(max-width:380px){.brand small{display:none}.brand-mark{width:40px;height:40px}.app-header{padding-inline:12px}.greeting-card{padding-inline:16px}.secure-seal{flex-basis:48px;width:48px;height:48px}.greeting-card h1{font-size:20px}}

/* NuGrow Chat brand artwork */
.brand-mark{overflow:hidden;background:#02090d;box-shadow:0 0 0 1px rgba(8,121,138,.22)}
.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}
.avatar-button{position:relative;overflow:hidden;padding:0}.avatar-button img,.conversation-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.dialog-action{display:block;width:100%;margin:12px 0 15px;cursor:pointer}.message-image{display:block;width:min(260px,100%);max-height:320px;margin:0 0 7px;border-radius:12px;object-fit:cover;background:#dfecec}.message.image-message{padding:6px}.message.image-message p:empty{display:none}.image-loading{display:grid;place-items:center;width:220px;height:140px;border-radius:12px;background:#dfecec;color:var(--muted);font-size:10px}.attach-btn:disabled{cursor:not-allowed;opacity:.55}
.message{position:relative}.message>p{padding-right:15px}.message-actions-btn{position:absolute;z-index:2;top:2px;right:3px;width:24px;height:22px;padding:0;border:0;border-radius:10px;background:transparent;color:#5f747d;font-size:16px;line-height:1;cursor:pointer;opacity:.65}.message-actions-btn:hover,.message-actions-btn:focus-visible{background:rgba(8,121,138,.1);opacity:1}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px;white-space:nowrap}.message-meta time{display:inline;margin:0}.message-status{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d79218;box-shadow:0 0 0 2px rgba(215,146,24,.12)}.message-status.delivered{background:#2589d8;box-shadow:0 0 0 2px rgba(37,137,216,.12)}.message-status.opened{background:#19a66b;box-shadow:0 0 0 2px rgba(25,166,107,.12)}.deleted-message p{color:#72858c;font-style:italic}.message-image{cursor:zoom-in}.message-image:focus-visible{outline:3px solid #28aeb8;outline-offset:2px}
.action-dialog .secondary-action{width:100%;margin-top:18px;cursor:pointer}.danger-action{color:#a72424;border-color:#efc5c5}.danger-primary{background:#bd3030}.image-viewer{width:min(96vw,980px);height:min(92vh,820px);padding:42px 12px 12px;border:0;border-radius:18px;background:rgba(3,22,31,.96);box-shadow:0 30px 90px rgba(0,0,0,.5)}.image-viewer::backdrop{background:rgba(0,16,23,.8);backdrop-filter:blur(4px)}.image-viewer img{display:block;width:100%;height:100%;object-fit:contain}.image-viewer button{position:absolute;z-index:2;top:8px;right:10px;width:34px;height:34px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:23px;cursor:pointer}
.launcher-dialog form{max-height:min(92vh,780px);overflow:auto}.launcher-section-title{margin:16px 0 8px!important;color:var(--teal-dark);font-size:10px!important;font-weight:900;text-align:left!important;text-transform:uppercase;letter-spacing:.08em}.nugrow-launcher-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nugrow-launcher-actions button{display:grid;grid-template-columns:42px minmax(0,1fr);gap:2px 10px;align-items:center;min-height:76px;padding:11px;border:1px solid #badfe0;border-radius:15px;background:#f2faf8;color:var(--ink);text-align:left;cursor:pointer}.nugrow-launcher-actions button:hover,.nugrow-launcher-actions button:focus-visible{border-color:var(--teal);background:#e2f6f1;outline:2px solid rgba(8,121,138,.15)}.nugrow-launcher-actions span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--teal);color:#fff;font-size:11px;font-weight:900}.nugrow-launcher-actions strong,.nugrow-launcher-actions small{display:block}.nugrow-launcher-actions strong{font-size:10px}.nugrow-launcher-actions small{color:var(--muted);font-size:8px;line-height:1.35}.launcher-privacy{margin:10px 0 0;color:var(--muted);font-size:9px;line-height:1.45;text-align:left}
@media(max-width:380px){.nugrow-launcher-actions{grid-template-columns:1fr}}
.attach-btn,.location-btn{display:grid;place-items:center;height:38px;padding:0;border-radius:50%;background:linear-gradient(145deg,#e3f5f3,#d5eeee);border:1px solid #b8dddd;color:var(--teal);cursor:pointer}.attach-btn span{font-size:26px;font-weight:400;line-height:1;transform:translateY(-1px)}.location-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.location-btn svg circle{fill:currentColor;stroke:none}.location-btn:hover,.location-btn:focus-visible{border-color:var(--teal);background:#d6f1eb;outline:2px solid rgba(8,121,138,.18)}.location-btn:disabled{cursor:not-allowed;opacity:.55}
.attachment-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.attachment-actions button{display:grid;place-items:center;gap:5px;min-height:126px;padding:15px 10px;border:1px solid #badfe0;border-radius:18px;background:#f1fbfa;color:var(--ink);cursor:pointer}.attachment-actions button:last-child:nth-child(odd){grid-column:1/-1;min-height:105px}.attachment-actions button:hover,.attachment-actions button:focus-visible{border-color:var(--teal);background:#e3f7f4;outline:0}.attachment-actions span{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:var(--teal);color:#fff;font-size:25px}.attachment-actions strong{font-size:13px}.attachment-actions small,.attachment-privacy,.location-privacy{color:var(--muted);font-size:9px;line-height:1.4}.attachment-dialog .attachment-privacy,.location-dialog .location-privacy{margin-top:12px}.location-dialog form{max-height:min(90vh,760px);overflow:auto}.location-purpose{margin:13px 0 9px!important;font-size:10px}.location-purpose select{width:100%;padding:10px 12px;border:1px solid #badfe0;border-radius:12px;background:#fff;color:var(--ink);font:inherit}.chat-location-map{width:100%;height:260px;border:1px solid #badfe0;border-radius:17px;background:#dceceb;overflow:hidden;text-align:left}.location-preview{display:grid;grid-template-columns:50px 1fr;gap:3px 11px;align-items:center;margin:10px 0;padding:11px;border:1px solid #badfe0;border-radius:15px;background:linear-gradient(145deg,#eefaf6,#f7fbff);text-align:left}.location-preview>span{grid-row:1/3;display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:#dff5ed;font-size:26px}.location-preview strong{font-size:12px}.location-preview small{color:var(--muted);font-size:9px;line-height:1.35}.location-dialog .secondary-action{width:100%;padding:12px;border:1px solid #8fcfd2;border-radius:13px;background:#effafa;color:var(--teal-dark);font-size:11px;font-weight:900;cursor:pointer}.location-dialog button:disabled{cursor:not-allowed;opacity:.55}.message.location-message{min-width:220px;padding:6px}.message-location-card{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;min-width:208px;padding:10px;border-radius:12px;background:linear-gradient(145deg,#e5f7ee,#d7f0ed);color:var(--ink);text-decoration:none}.message-location-card:hover,.message-location-card:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.message-location-pin{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#fff;font-size:27px;box-shadow:0 4px 12px rgba(8,121,138,.12)}.message-location-card strong,.message-location-card small{display:block}.message-location-card strong{font-size:12px}.message-location-card small{margin-top:4px;color:var(--teal-dark);font-size:9px;font-weight:800}
.load-earlier-btn{align-self:center;margin:8px auto 0;padding:7px 13px;border:1px solid #a9d5d7;border-radius:999px;background:#fff;color:var(--teal-dark);font-size:9px;font-weight:900;cursor:pointer}.load-earlier-btn:disabled{cursor:wait;opacity:.6}.message.unavailable-message{border:1px dashed #d5b45a;background:#fff8dc}.message.unavailable-message>p{color:#6d5b27;font-style:italic}
.attachment-actions .attachment-map-pin svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.attachment-actions .attachment-map-pin circle{fill:currentColor;stroke:none}
@keyframes voice-pulse{50%{box-shadow:0 0 0 8px rgba(212,61,61,.14)}}
.message.attachment-message{min-width:min(270px,82%);padding:7px}.attachment-loading{display:grid;place-items:center;min-width:210px;min-height:72px;padding:14px;border-radius:12px;background:#dfecec;color:var(--muted);font-size:10px}.message-audio-card{display:grid;gap:8px;min-width:235px;padding:10px;border-radius:12px;background:linear-gradient(145deg,#e5f7ee,#d9eff2)}.message-audio-card>div{display:flex;align-items:center;gap:9px}.message-audio-card>div>span:first-child{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff;font-size:20px}.message-audio-card strong,.message-audio-card small{display:block}.message-audio-card strong{font-size:11px}.message-audio-card small{margin-top:2px;color:var(--muted);font-size:9px}.message-audio{width:100%;height:34px}.message-file-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;min-width:235px;padding:11px;border-radius:12px;background:linear-gradient(145deg,#edf6ff,#e3f2f2);color:var(--ink);text-decoration:none}.message-file-card:hover,.message-file-card:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.message-file-card>span:first-child{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#fff;color:var(--teal-dark);font-size:9px;font-weight:900}.message-file-card strong,.message-file-card small{display:block;min-width:0}.message-file-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.message-file-card small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.35}
.bottom-nav{grid-template-columns:repeat(4,1fr)}.chat-tools-view{padding:18px 16px 92px}.tools-hero{margin-bottom:16px;padding:20px;border-radius:22px;background:linear-gradient(125deg,#075d6b,#08a09d);color:#fff}.tools-hero .eyebrow{color:#bff8e7}.tools-hero h1{margin:6px 0;font-size:24px}.tools-hero p:last-child{margin:0;font-size:11px;line-height:1.45;opacity:.9}.tools-launcher-actions{grid-template-columns:1fr}.tools-launcher-actions button{min-height:80px}.chat-tools-view>.launcher-privacy{margin-top:16px;padding:12px;border-radius:13px;background:#e8f5f2}.chat-tools-view .empty-state{padding:28px 18px;border:1px dashed #b9d9d7;border-radius:18px;background:#fff}
.settings-dialog form{max-height:min(92vh,780px);overflow:auto}.settings-section-title{margin:18px 0 7px;color:var(--teal-dark);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.settings-notification-card{margin:0;width:100%;text-align:left}.settings-notification-card.enabled{border-color:#75c8a9;background:#e0f8ed}.settings-notification-card:disabled{cursor:not-allowed;opacity:.65}.settings-dialog .security-list{margin-top:6px}
/* Cold-offline conversations retain the Chat visual language. */
.offline-chat{max-width:760px;margin:auto;padding:20px!important;text-align:left!important}
.offline-chat h2{font-size:1.35rem;margin:0 0 8px}
.offline-chat>p{font-size:.9rem;color:#526c78;line-height:1.45}
.offline-chat button{border:1px solid #bed6cf;border-radius:22px;padding:12px 18px;min-height:44px;background:#08634b;color:white;font:inherit;cursor:pointer}
.offline-chat .offline-chat-retry{background:white;color:#08634b;margin-bottom:16px}
.offline-chat-thread{display:flex;flex-direction:column;gap:10px;margin:12px 0 24px;padding:16px;background:white;border:1px solid #d6e5e2;border-radius:18px}
.offline-chat-bubble{align-self:flex-end;max-width:92%;background:#ddf3e5;border-radius:16px 16px 4px 16px;padding:14px;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.offline-chat-thread textarea{width:100%;box-sizing:border-box;border:1px solid #cadbdc;border-radius:16px;min-height:76px;padding:12px;font:inherit;resize:vertical}
.offline-chat-thread button{align-self:flex-end}
.message-status.pending{color:#986100;width:auto!important;height:auto;background:none;box-shadow:none;border-radius:0;white-space:nowrap}
.message-status.pending::before{content:'◷'!important;font-size:15px;line-height:1}
.message-status.sent{color:#087348;background:#087348;box-shadow:none}
#offlineNotice{display:none!important}
@media(max-width:759px){
  body.chat-mobile-viewport{overflow:hidden;min-height:0;padding:0}
  body.chat-mobile-viewport #networkBar{position:fixed;top:var(--chat-visible-top,0px);left:0;right:0}
  body.chat-mobile-viewport .app-shell{position:fixed;top:calc(var(--chat-visible-top,0px) + var(--chat-network-height,30px));left:0;width:100%;max-width:none;height:calc(var(--chat-visible-height,100dvh) - var(--chat-network-height,30px));min-height:0;margin:0;border-radius:0;display:flex;flex-direction:column}
  body.chat-mobile-viewport .view:not([hidden]){flex:1;height:auto;min-height:0;width:100%}
  body.chat-mobile-viewport .message-stream{min-height:0}
  body.chat-mobile-viewport .composer,body.chat-mobile-viewport .conversation-header,body.chat-mobile-viewport .encryption-strip{flex-shrink:0}
}
