/* Mobile usability: touch targets, narrow screens and device safe areas. */
html{scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
.app{min-height:100dvh}
main{padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
.nav{height:calc(70px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
.nav button{flex:1;min-width:0;min-height:48px}
.btn,.pill{min-height:44px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2866d8;outline-offset:3px}
.grow,.composer input{min-width:0}
.icon{flex-shrink:0}
.card,.bubble{overflow-wrap:anywhere}
input,select,textarea{scroll-margin-block:90px}
#accountForm input{font-size:16px}
#accountForm ~ button{margin-top:12px}
[data-provider]{flex:1 1 100%!important}
@media(max-width:380px){
 header{padding:20px 16px 16px}
 .headrow{flex-wrap:wrap}
 .headrow>label{display:flex;align-items:center;gap:8px}
 .langpick{min-height:44px}
 .plan-grid{grid-template-columns:1fr}
 .btnrow .btn{flex:1 1 130px}
 .row.between{flex-wrap:wrap}
}

a[data-provider]{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;font-size:14px}

/* Keep the send label intact while allowing the message field to shrink. */
.composer{align-items:stretch}
.composer input{flex:1 1 0;width:0;min-width:0;font-size:16px}
.composer .btn{flex:0 0 auto;min-width:80px;min-height:44px;white-space:nowrap;overflow-wrap:normal;word-break:normal}

/* Map actions stay readable when location confirmation adds a fourth button. */
.map-tools .btnrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.map-tools .btnrow .btn{min-width:0;overflow-wrap:normal;word-break:normal;white-space:normal}

/* A generous transparent drag target surrounds the GPS dot. */
.st-user-marker{display:grid;place-items:center;width:44px;height:44px;cursor:grab;z-index:2}
.st-user-marker::after{content:"";display:block;width:20px;height:20px;border:3px solid white;border-radius:50%;background:#2866d8;box-shadow:0 0 0 5px #2866d822,0 2px 6px #0004}
.st-user-marker:active{cursor:grabbing}
.venue-dot{width:24px;height:24px;display:grid;place-items:center;border:2px solid white;border-radius:6px;background:#08724e;color:white;font:bold 18px Arial;box-shadow:0 1px 5px #0005;cursor:pointer}

.start-time-picker{border:0;padding:0;margin:12px 0;min-width:0}.start-time-picker legend{font-weight:600}.start-time-controls{display:flex;align-items:flex-end;gap:12px}.start-time-controls label{flex:1;min-width:0}.start-time-controls select{width:100%;min-height:48px;font-size:18px}.time-separator{align-self:center;font-size:24px;padding-top:20px}

.time-unit{flex:1;min-width:0}.time-stepper{display:flex;align-items:center;gap:4px}.time-stepper input{width:48px;min-width:0;flex:1;text-align:center;font-size:22px;margin:0;padding:10px 2px}.time-stepper button{min-width:44px;min-height:48px;padding:8px;font-size:22px;touch-action:manipulation}.start-time-controls{gap:6px}.time-unit label{display:block}

.my-activities>summary{font-weight:700;cursor:pointer;padding:6px 0}.my-activity{border-top:1px solid #e1ebe7;padding:12px 0}.my-activity>summary{cursor:pointer;min-height:44px;line-height:1.5;overflow-wrap:anywhere}.my-activity dl{display:grid;grid-template-columns:minmax(85px,1fr) minmax(0,2fr);gap:7px 12px;font-size:14px}.my-activity dt{font-weight:600}.my-activity dd{margin:0;overflow-wrap:anywhere}

.activity-edit-dialog{width:min(430px,90vw);box-sizing:border-box;border:1px solid #e1ebe7;border-radius:18px;padding:20px;max-height:85vh;overflow:auto}.activity-edit-dialog::backdrop{background:#0006}

.chat-message-text{white-space:pre-wrap;overflow-wrap:anywhere}.chat-change{line-height:1.5;overflow-wrap:anywhere}.chat-change-title{font-weight:700;margin:4px 0 10px}.chat-change-block{border-left:3px solid #a4b7af;padding:5px 10px;margin:8px 0}.chat-change-block>strong{display:block;color:#52665d;font-size:12px;text-transform:uppercase;margin-bottom:3px}.chat-change-block:last-child{border-color:#15966b;background:#15966b0d;border-radius:0 6px 6px 0}

.my-activity-title{font-weight:600;margin-right:8px}.my-activity-state{vertical-align:middle}.my-activity-role{display:block;margin:4px 0 0 18px}.status-finished{background:#e8edf2;color:#465565}

.brand-lockup{display:flex;align-items:center;gap:8px;min-width:0}.brand-logo{display:block;width:40px;height:40px;flex:0 0 40px;border-radius:10px}.brand-lockup .brand{font-size:clamp(17px,5vw,23px);white-space:nowrap}@media(max-width:360px){.brand-logo{width:32px;height:32px;flex-basis:32px}.brand-lockup{gap:5px}.headrow{gap:6px}}

/* R33: fotos personales y de organizadores */
.profile-photo{width:80px;height:80px;border-radius:50%;overflow:hidden;flex:none;margin:12px 0;background:#def2ec;display:flex;align-items:center;justify-content:center;color:#073b35;font-size:26px;font-weight:700}.profile-photo img{width:100%;height:100%;object-fit:cover}.organizer-photo-card{display:flex;align-items:center;gap:14px}.organizer-photo-card .profile-photo{width:64px;height:64px;margin:0}input[type=file]{display:block;max-width:100%;margin:10px 0}
