/* The "+" at the left of the message box, its menu, the location bar and location cards.
   Shared by the one-to-one workspace (.jm-) and the group chats (.jc-). */
.jm-compose-box>.jx-plus,.jc-compose-box>.jx-plus{grid-column:1;grid-row:1;align-self:end;display:flex;align-items:center;min-width:0}
#main-content .jx-plus-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;min-width:36px;min-height:36px;margin:2px 2px 2px 0;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;color:var(--muted);cursor:pointer;transition:transform .18s,background .15s,color .15s}
#main-content .jx-plus-button svg{width:21px;height:21px}
#main-content .jx-plus-button:hover,#main-content .jx-plus-button[aria-expanded=true]{background:var(--theme-tint,#e7f5ef);color:var(--theme-accent,#08796f)}
#main-content .jx-plus-button[aria-expanded=true]{transform:rotate(45deg)}
/* The list is placed on the viewport by script (fixed), so a scrolling box cannot clip it. */
.jx-plus-menu{position:fixed;z-index:40;min-width:240px;max-width:min(320px,calc(100vw - 16px));padding:6px;border:1px solid var(--theme-border,#d5e0dc);border-radius:14px;background:var(--theme-surface,var(--paper,#fff));box-shadow:0 12px 32px #0003}
.jx-plus-menu[hidden],.jx-plus-item[hidden]{display:none}
#main-content .jx-plus-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;margin:0;padding:8px 12px;border:0;border-radius:9px;background:transparent;box-shadow:none;color:var(--ink);font:inherit;font-size:.86rem;font-weight:500;text-align:left;cursor:pointer}
#main-content .jx-plus-item:hover,#main-content .jx-plus-item:focus-visible{background:var(--theme-soft,#f1f5f3)}
#main-content .jx-plus-item[aria-expanded=true]{color:var(--theme-accent,#08796f)}
.jx-plus-item svg{width:20px;height:20px;flex:none;color:var(--theme-accent,#08796f)}
.jx-plus-item>span{min-width:0;overflow-wrap:anywhere}
.jm-compose:has(.jx-plus-menu:not([hidden]))>.jm-typing{display:none}
/* A narrow box puts the "+" on the controls row under the text, at the left. */
@container (max-width:560px){.jm-compose-box>.jx-plus,.jc-compose-box>.jx-plus{grid-row:2}}

/* The bar above the message box: the device's position, the choice of time for a live share,
   and an explicit Send. Nothing is sent before it. */
.jx-location-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:0 0 8px;padding:12px 14px;border-radius:14px;background:var(--theme-soft,#f1f5f3);font-size:.82rem;line-height:1.5}
.jx-location-bar-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--theme-tint,#e7f5ef);color:var(--theme-accent,#08796f)}
.jx-location-bar-icon svg{width:20px;height:20px}
.jx-location-bar-copy{display:grid;gap:3px;min-width:0}
.jx-location-bar-copy strong{font-size:.86rem}
.jx-location-status{color:var(--ink);overflow-wrap:anywhere}
.jx-location-status[data-error=true]{color:var(--theme-danger,#bb3d36)}
.jx-location-bar-copy small{color:var(--muted);font-size:.74rem}
.jx-location-durations{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin:4px 0 2px;padding:0;border:0}
.jx-location-durations legend{float:left;padding:0;margin:0 4px 0 0;font-size:.78rem;color:var(--muted)}
#main-content .jx-location-durations label{display:inline-flex;align-items:center;gap:0;margin:0;font-size:.8rem;font-weight:500;cursor:pointer}
#main-content .jx-location-durations input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.jx-location-durations span{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border:1px solid var(--theme-border,#d5e0dc);border-radius:999px;background:var(--theme-surface,#fff);color:var(--ink)}
.jx-location-durations input:checked+span{border-color:var(--theme-accent,#08796f);background:var(--theme-accent,#08796f);color:var(--theme-on-accent,#fff)}
.jx-location-durations input:focus-visible+span{outline:2px solid var(--theme-accent,#08796f);outline-offset:2px}
.jx-location-bar-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:6px}
#main-content .jx-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0;padding:8px 16px;border:0;border-radius:10px;background:var(--theme-surface,#fff);box-shadow:none;color:var(--ink);font:inherit;font-size:.84rem;font-weight:650;cursor:pointer}
#main-content .jx-button.primary{background:var(--theme-accent,#08796f);color:var(--theme-on-accent,#fff)}
#main-content .jx-button:hover{filter:brightness(.95)}
#main-content .jx-button:disabled{opacity:.5;cursor:default}

/* A location inside a message: a small map-like tile with the pin, the place and its state,
   and a link that opens the device's maps app. The sender of a live location can stop it here. */
.jx-location{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:stretch;max-width:420px;margin:2px 0;padding:8px;border:1px solid var(--theme-border,#dfe7e4);border-radius:12px;background:var(--theme-surface,#fff);color:var(--ink);white-space:normal;font-size:.82rem;line-height:1.45}
.jx-location-map{position:relative;display:grid;place-items:center;min-height:76px;border-radius:9px;overflow:hidden;text-decoration:none;color:var(--theme-accent,#08796f);background:linear-gradient(135deg,var(--theme-tint,#e7f5ef),var(--theme-soft,#f1f5f3));background-image:linear-gradient(color-mix(in srgb,var(--theme-accent,#08796f) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--theme-accent,#08796f) 12%,transparent) 1px,transparent 1px),linear-gradient(135deg,var(--theme-tint,#e7f5ef),var(--theme-soft,#f1f5f3));background-size:14px 14px,14px 14px,100% 100%}
.jx-location-map:focus-visible{outline:2px solid var(--theme-accent,#08796f);outline-offset:2px}
.jx-location-pin{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--theme-surface,#fff);box-shadow:0 2px 8px #0002}
.jx-location-pin svg{width:22px;height:22px}
.jx-location-pulse{position:absolute;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--theme-accent,#08796f) 35%,transparent);animation:jx-pulse 1.8s ease-out infinite}
@keyframes jx-pulse{0%{transform:scale(.9);opacity:.8}100%{transform:scale(2.3);opacity:0}}
.jx-location-copy{display:grid;align-content:center;gap:2px;min-width:0}
.jx-location-copy strong{font-size:.86rem}
.jx-location-state{color:var(--theme-accent,#08796f);font-weight:600;font-size:.76rem}
.jx-location-state:empty{display:none}
.jx-location.is-ended .jx-location-state{color:var(--muted);font-weight:500}
.jx-location-coords{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.jx-location-actions{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}
.jx-location-open,#main-content .jx-location-stop{display:inline-flex;align-items:center;gap:5px;min-height:30px;margin:0;padding:3px 0;border:0;background:none;box-shadow:none;color:var(--theme-accent,#08796f);font:inherit;font-size:.78rem;font-weight:650;text-decoration:none;cursor:pointer}
.jx-location-open:hover,#main-content .jx-location-stop:hover{text-decoration:underline;text-underline-offset:3px}
#main-content .jx-location-stop{color:var(--theme-danger,#bb3d36)}
.jx-location-open svg,.jx-location-stop svg{width:15px;height:15px}
.jm-bubble.mine .jx-location{background:var(--theme-surface,#fff)}
.jm-message-body.has-location{white-space:normal}
.jc-message .jx-location{margin:5px 0}
@media(max-width:700px){#main-content .jx-plus-button{width:40px;height:40px;min-width:40px;min-height:40px}.jx-location{grid-template-columns:64px minmax(0,1fr);gap:10px}.jx-location-map{min-height:64px}.jx-location-bar{padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.jx-location-pulse{animation:none;opacity:.35;transform:scale(1.6)}#main-content .jx-plus-button{transition:none}}
