/* Shared symbols remain hidden outside the explicit Tesla layout. */
.tesla-only{display:none!important}
.radio.web-modern .tesla-only{display:flex!important}
.tesla-icon{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.radio.web-modern .hardware{align-items:center;justify-content:center;gap:7px}
.radio.web-modern .tesla-status{grid-column:1/-1;grid-row:1;justify-content:space-between;gap:8px;font:700 10px monospace;color:var(--lit);letter-spacing:.4px}
.tesla-status span{opacity:.3}.tesla-status span.lit{opacity:1}
.tesla-dialog .tesla-field{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0}
.tesla-dialog select,.tesla-dialog input[type=file]{max-width:65%;min-height:44px}
.tesla-dialog input[type=checkbox]{width:24px;height:24px}
.tesla-dialog input[type=range]{width:55%;min-height:44px}
.tesla-dialog .tesla-avatar-preview{width:120px;height:90px;object-fit:contain}
.radio.web-modern .settings-fields>.tesla-only{min-height:44px}
.radio.web-modern .privacy-controls label:has(#cameraEnabled){display:none}
.radio.web-modern #channelDialog>.tesla-only{display:inline-flex!important;min-height:44px;margin:5px}
.radio.web-modern .tesla-people-panel{flex:1;min-height:0;overflow:hidden;border:1px solid #496067;border-radius:12px;background:#142228;padding:12px;display:flex;flex-direction:column;gap:8px}
.radio.web-modern .tesla-people-panel[hidden]{display:none}
.radio.web-modern .tesla-people-panel h2{font-size:14px;letter-spacing:1px;margin:0;color:var(--lit)}
.radio.web-modern .tesla-people-panel #members{flex:1;min-height:0;overflow:auto}
.radio.web-modern .workspace[data-focus=people] .panel-chat,.radio.web-modern .workspace[data-focus=people] .map-wrap{display:none}
.radio.web-modern #teslaPeople[aria-pressed=true]{border-color:var(--lit);color:var(--lit);box-shadow:inset 0 0 0 1px var(--lit)}
.radio.web-modern .signal .timerrow{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;gap:2px}
.radio.web-modern #speakerLabel{grid-column:1/-1;max-width:none;font-size:10px}
.radio.web-modern #teslaImageIndicator,.radio.web-modern #teslaAudio{padding:4px;min-height:44px;min-width:44px;border:0;background:none;box-shadow:none;color:var(--lit)}
.radio.web-modern #teslaImageIndicator{opacity:.3}.radio.web-modern #teslaImageIndicator.image-ready{opacity:1}
.radio.web-modern .tesla-speaker-caption{font-size:10px;letter-spacing:1.3px;color:var(--lit)}
.radio.web-modern .tesla-speaker-name{font-size:17px;font-weight:700;color:var(--lit);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.radio.web-modern .tesla-speaker-client{font-size:11px;color:#a7b8bd}
.radio.web-modern #teslaPicture{min-height:44px;font-size:11px;padding:5px;width:100%;flex-direction:row-reverse}
.radio.web-modern .message{border:0;padding:10px 0;font-size:15px;line-height:1.4}
.radio.web-modern .message b{color:var(--lit)}
.radio.web-modern .message .tesla-icon{width:16px;height:16px;color:var(--lit);margin-left:6px}
.radio.web-modern .message time{float:right;font-size:10px;color:#a7b8bd}
.radio.web-modern .ptt>.tesla-icon{display:block;margin:0 auto 9px;width:30px;height:30px;color:var(--lit)}
.radio.web-modern .tesla-turn-limit{display:block;font-size:9px;letter-spacing:.5px;margin-top:12px}
/* Native-inspired general web; explicit Tesla geometry remains separate. */
.phone-nav,.phone-picture,.phone-rail,.phone-rx{display:none}
.radio.web-modern .message header{display:flex;align-items:center;gap:5px}
.radio.web-modern .message time{margin-left:auto;float:none}
.radio.web-modern .message p{display:block;margin:4px 0 0}
.radio.desktop-ui .lcd{grid-template-rows:14px auto;gap:12px 22px}
.radio.desktop-ui .channel,.radio.desktop-ui .lcd>div:nth-child(2){grid-row:2}
.radio.desktop-ui #teslaPeople{display:none!important}
.radio.desktop-ui .side{gap:8px}
.radio.desktop-ui .photo{flex-basis:150px;min-height:100px;height:150px;max-height:150px}
.radio.desktop-ui .photo-label{display:none}
.radio.desktop-ui .workspace[data-focus=chat] .map-wrap{display:none}
.radio.desktop-ui .workspace[data-focus=map] .panel-chat{display:none}
body.phone-web{padding:0;background:#0f1619}
body.phone-web #error:empty{display:none}
body.phone-web #error:not(:empty){margin:0;padding:6px 12px;font-size:12px}
body.phone-web #room>.notes{display:none}
.radio.phone-ui{max-width:650px;width:100%;height:calc(var(--phone-height,100dvh) - var(--tesla-notice-height,0px));min-height:420px;display:grid;grid-template-rows:48px auto minmax(0,1fr) 100px;gap:10px;padding:8px 12px max(8px,env(safe-area-inset-bottom));border:0;border-radius:0;background:#0f1619;box-shadow:none}
.radio.phone-ui .brandbar{grid-row:1;margin:0;gap:4px;min-width:0}
.radio.phone-ui .brand{font-size:18px;letter-spacing:2px;white-space:nowrap}
.radio.phone-ui .engraved,.radio.phone-ui .bottom-controls,.radio.phone-ui .foot,.radio.phone-ui .tabs{display:none}
.radio.phone-ui .phone-nav{display:flex;gap:1px}
.radio.phone-ui .phone-nav button{width:40px;height:44px;padding:6px;border:0;border-radius:8px;background:none;box-shadow:none;color:#99afb5;display:flex;align-items:center;justify-content:center}
.radio.phone-ui .phone-nav button[aria-pressed=true]{background:#1c282c;color:var(--lit)}
.radio.phone-ui .phone-nav .tesla-icon{width:25px;height:25px}
.radio.phone-ui .lcd{grid-row:2;grid-template-columns:68px minmax(0,1fr) 40px;grid-template-rows:16px 100px 32px;gap:4px 8px;padding:10px 12px;margin:0;border-radius:15px;border:3px solid #03090b;box-shadow:inset 0 0 0 1px var(--dim);align-items:center}
.radio.phone-ui .tesla-status{font-size:8px;letter-spacing:0;gap:3px;white-space:nowrap}
.radio.phone-ui .channel{grid-column:1;grid-row:2;display:flex;border:0;padding:0}
.radio.phone-ui .channel-step,.radio.phone-ui .channel-pick .tesla-icon{display:none}
.radio.phone-ui .channel-pick{display:flex;flex-direction:column-reverse;gap:4px;padding:0}
.radio.phone-ui .channel-pick .number{font-size:59px;letter-spacing:-3px}
.radio.phone-ui .channel-pick .small{font-size:9px;letter-spacing:1px}
.radio.phone-ui .digital{color:var(--lit);background:none;-webkit-text-fill-color:var(--lit)}
.radio.phone-ui .lcd>div:nth-child(2){grid-row:2;grid-column:2}
.radio.phone-ui .lcd>div:nth-child(2)>.small,.radio.phone-ui .liveinfo .lamp,.radio.phone-ui #rx,.radio.phone-ui #voxIndicator{display:none!important}
.radio.phone-ui .roomname{font-size:19px;line-height:1.15;letter-spacing:.5px;margin:0 0 8px}
.radio.phone-ui .liveinfo{font:12px monospace}
.radio.phone-ui .phone-rail{display:flex;flex-direction:column;align-items:center;grid-column:3;grid-row:2;gap:0}
.radio.phone-ui .phone-rail button{display:flex;align-items:center;justify-content:center;width:40px;min-width:40px;min-height:34px;height:34px;padding:4px;background:none;border:0;box-shadow:none;color:var(--lit)}
.radio.phone-ui .phone-rail>.tesla-icon{margin:5px 0;width:23px;height:23px}
.radio.phone-ui .signal{grid-column:1/-1;grid-row:3;border:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 6px;align-items:center}
.radio.phone-ui .phone-rx{display:block;font:bold 12px monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radio.phone-ui .signal .timerrow{display:flex;gap:5px}
.radio.phone-ui #speakerLabel,.radio.phone-ui .signal>.small{display:none}
.radio.phone-ui .timer{font-size:16px;letter-spacing:0}
.radio.phone-ui #teslaImageIndicator{width:32px;min-width:32px;min-height:32px;padding:4px}
.radio.phone-ui .meter{grid-column:1/-1;height:3px;margin:2px 0 0;gap:3px;max-width:94px}
.radio.phone-ui .bodygrid{display:contents}
.radio.phone-ui .bodygrid>.side{display:none!important}
.radio.phone-ui .bodygrid>.workspace{display:flex!important;grid-column:1;grid-row:3;height:auto;min-height:0;gap:0;overflow:hidden}
.radio.phone-ui .workspace .map-wrap,.radio.phone-ui .workspace .panel-chat{display:none!important}
.radio.phone-ui .workspace[data-focus=chat] .panel-chat{display:flex!important;flex:1;min-height:0}
.radio.phone-ui .workspace[data-focus=map] .map-wrap{display:block!important;flex:1;min-height:0}
.radio.phone-ui .panel-chat{background:none;border:0;border-radius:0;padding:0}
.radio.phone-ui .chat-heading{display:none}
.radio.phone-ui .messages{padding:0 4px}
.radio.phone-ui .message{padding:9px 0;font-size:16px;line-height:1.4}
.radio.phone-ui .message header{font-size:16px}
.radio.phone-ui .message p{font-size:16px}
.radio.phone-ui .composer{border:0;padding:7px 0 0;background:none;gap:6px}
.radio.phone-ui .composer textarea{border:1px solid #36474d;border-radius:9px;background:#1a2529;min-height:44px;max-height:64px;padding:10px;font-size:16px;resize:none}
.radio.phone-ui .send{min-height:44px;padding:0 10px}
.radio.phone-ui .composer-note{font-size:10px;min-height:0}
.radio.phone-ui .composer-note:not(:empty){line-height:12px}
.radio.phone-ui .new-messages{bottom:75px}
.radio.phone-ui .bodygrid>.ptt{grid-column:1;grid-row:4;position:static;min-height:0;width:100%;padding:10px 12px;border-radius:12px;background:linear-gradient(#343a3c,#1b252a);border:1px solid #52646a;color:var(--lit);font-size:20px;letter-spacing:0;text-align:left;overflow:hidden}
.radio.phone-ui .ptt>.tesla-icon{float:left;width:32px;height:40px;margin:4px 14px 14px 0}
.radio.phone-ui .ptt small{font:12px/1.2 Arial;margin-top:5px;color:var(--lit)}
.radio.phone-ui .tesla-turn-limit{clear:both;font:9px monospace;margin-top:10px;color:#acbec3}
.radio.phone-ui .ptt.queued{background:linear-gradient(#765b24,#493b1c)}
.radio.phone-ui .ptt.talking{background:linear-gradient(#286846,#153d2c)}
.radio.phone-ui .tesla-people-panel{border:0;border-radius:0;background:none;padding:6px 0}
.radio.phone-ui .person{min-height:56px}
.radio.phone-ui .person b{font-size:16px}
.radio.phone-ui[data-phone-view=picture] .phone-picture{grid-row:4;grid-column:1/-1;display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:center;margin-top:4px}
.radio.phone-ui[data-phone-view=picture] .lcd{grid-template-rows:16px 100px 32px 98px}
.radio.phone-ui .phone-picture .photo{height:84px;min-height:84px;max-height:84px;width:112px;margin:0;border:0;background:#071c21;flex:none}
.radio.phone-ui .phone-picture .photo-label{display:none}
.radio.phone-ui .phone-picture #speakerAvatar{font-size:32px}
.radio.phone-ui .phone-picture-details{display:flex;flex-direction:column;gap:7px;text-align:right;min-width:0}
.radio.phone-ui #teslaPicture{background:none;border:0;box-shadow:none;padding:0;min-height:36px;font:bold 10px monospace;color:var(--lit);justify-content:flex-start;gap:8px}
.radio.phone-ui .tesla-speaker-name{font:14px monospace;color:var(--lit)}
.radio.phone-ui .tesla-speaker-client{font:11px monospace;color:var(--lit);opacity:.7}
body.phone-web dialog{max-height:calc(var(--phone-height,100dvh) - 24px);padding:16px}
.radio.phone-ui.keyboard-open{grid-template-rows:40px auto minmax(0,1fr) 58px;min-height:300px;gap:5px}
.radio.phone-ui.keyboard-open .lcd{grid-template-rows:14px 60px 25px}
.radio.phone-ui.keyboard-open .phone-picture,.radio.phone-ui.keyboard-open .phone-rail>svg,.radio.phone-ui.keyboard-open .tesla-turn-limit{display:none}
.radio.phone-ui.keyboard-open .channel-pick .number{font-size:36px}
.radio.phone-ui.keyboard-open .ptt{font-size:16px;padding:6px}
@media(max-width:360px){.radio.phone-ui{padding-left:8px;padding-right:8px}.radio.phone-ui .brand{font-size:15px;letter-spacing:1px}.radio.phone-ui .phone-nav button{width:36px}.radio.phone-ui .lcd{padding:9px 8px;grid-template-columns:60px minmax(0,1fr) 36px}.radio.phone-ui .roomname{font-size:16px}.radio.phone-ui .tesla-status{font-size:7px}}
.radio.phone-ui #listen:not([hidden]){position:absolute;z-index:900;top:58px;left:16px;right:16px;min-height:44px;background:#19434a;border-color:var(--lit)}
.radio.desktop-ui .bodygrid{grid-template-rows:minmax(0,1fr) 130px}
.radio.desktop-ui .bodygrid>.ptt{min-height:130px;padding:10px}
.radio.desktop-ui .tesla-speaker-caption{display:none!important}
.radio.phone-ui .tesla-speaker-name,.radio.phone-ui .tesla-speaker-client{justify-content:flex-end}
.radio.phone-ui .digital,.radio.phone-ui .tesla-status,.radio.phone-ui .phone-rx{font-family:ui-monospace,Menlo,Consolas,monospace}

.retention-notice{font:11px/1.5 Arial,sans-serif;color:#9fb3ba;margin:0;padding:10px 0 12px;text-align:center}
