/* Local UX review. Content grows with text; no fixed card height or truncation. */
:root{--muted:#53635a;--header-height:56px}html{scroll-padding-top:160px;scroll-padding-bottom:110px}body{padding-bottom:100px}main{padding-bottom:130px}button,a,summary,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b34d0d;outline-offset:3px}
.dense-title,.dense-meta,.personal-card .activity-title,.route-entry .activity-title{display:block;-webkit-line-clamp:unset;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;max-height:none}.dense-title{font-size:.9375rem;line-height:1.3}.dense-meta{font-size:.8125rem;line-height:1.35;color:var(--muted)}.dense-talk,.block-rows .salon-talk{min-height:60px;height:auto;padding-top:7px;padding-bottom:7px;align-items:center}.dense-text{min-height:44px;gap:4px}.with-location .dense-room b{font-size:.8125rem;line-height:1.3}.with-location .dense-room small{font-size:.75rem;line-height:1.3}.salon-time{font-size:.8125rem;line-height:1.3}.salon-time small{font-size:.75rem;line-height:1.3}.dense-talk .dense-levels .badge{width:20px;height:20px}.dense-conflict{position:static;grid-column:2/-1;font-size:.8125rem}.dense-conflict:after{content:' Conflicto de horario'}
.personal-agenda{padding:12px;background:#fafbf8}.personal-card{padding:12px;border:1px solid #dc7935;border-left:3px solid #dc7935;border-radius:7px;background:#fff;margin-bottom:8px}.personal-card:last-child{margin-bottom:0}.personal-heading{display:flex;gap:5px 12px;flex-wrap:wrap;margin-bottom:6px;font-size:.8125rem;color:#773c17}.personal-heading span{color:var(--muted)}.personal-card .activity-title{font-size:1rem;line-height:1.35;min-height:44px}.personal-speaker{font-size:.875rem;color:var(--muted);margin:4px 0;line-height:1.4}.personal-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.location-link{min-height:44px;text-align:left;font-size:.8125rem;line-height:1.35;color:var(--green);text-decoration:underline;text-underline-offset:3px;padding:5px 0}.personal-empty{font-size:.875rem;line-height:1.5;margin:0;color:var(--muted)}
.compact-route{padding:0 12px}.route-gap{width:100%;min-height:56px;padding:9px 12px;margin:6px 0;display:flex;flex-direction:column;text-align:left;gap:3px;border:1px dashed #afbeb4;border-radius:5px;background:#f4f6f3;line-height:1.4}.route-gap span{font-size:.875rem;color:var(--muted)}.route-gap small{font-size:.75rem;color:var(--green)}.route-entry{display:grid;grid-template-columns:minmax(0,1fr) 70px;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.route-entry-main{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.route-entry-time{font-size:.875rem;color:var(--green)}.route-entry-main>small{font-size:.8125rem;line-height:1.4;color:var(--muted)}.route-entry .activity-title{min-height:44px;font-size:1rem;line-height:1.35}.route-entry-actions{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:4px}.route-entry-actions .keep-button{min-height:44px;min-width:44px;width:100%;font-size:.75rem;white-space:normal;padding:4px}.route-stats{font-size:.8125rem;padding:8px 12px;flex-wrap:wrap}.conflict-note{font-size:.8125rem;line-height:1.5}.conflict-pill{min-height:44px;white-space:normal;font-size:.8125rem}.route-cluster.conflict{border-left:3px solid #b44f13;padding-left:9px}.route-entry .badge{flex-shrink:0}
#consultBanner{padding:7px 12px;background:#fff0df;border-bottom:1px solid #e8b585;display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.4}#consultBanner[hidden]{display:none}#consultBanner button{min-height:44px;font-size:.8125rem;text-decoration:underline;color:#793600;flex-shrink:0}body[data-exploring=true] #headerClock{color:white}.now-chips small{display:none}.now-chips button{font-size:.875rem}
.search-status{padding:10px 12px;background:#f2f5f1;font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}.search-status button{min-height:44px;text-decoration:underline;color:var(--green);display:block;font-size:.8125rem}.results-day{font-size:1rem;padding:8px 12px;color:var(--green)}#headerSearch{max-height:65dvh;position:relative;top:auto;z-index:31}#headerSearch label{font-size:.875rem;min-width:0}#headerSearch select{display:block;width:100%;font-size:1rem;min-height:44px}#headerSearch .filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:10px}#headerSearch .filterpanel[open]{max-height:none}#headerSearch .optionsbar{flex-wrap:wrap}#headerSearch .switchlabel{min-height:44px}#headerSearch .textbutton{min-height:44px}
body[data-view=program] #toolbar{position:relative;top:auto;z-index:1}.dense-section h2{height:auto;min-height:34px;font-size:.875rem;line-height:1.4}.dense-pause{font-size:.8125rem;line-height:1.4;flex-wrap:wrap}.block-heading{font-size:.9375rem;line-height:1.4}.block-caption{font-size:.75rem;line-height:1.4}.room-header{flex-wrap:wrap}.room-header h2{font-size:1rem;line-height:1.4;min-width:0}.room-tabs{max-width:100%}.room-tabs button span{font-size:.75rem}.day-level-row .daybutton{font-size:.75rem}.day-level-row .daybar{min-width:0}.day-level-row .levelchips{gap:0}.program-controls .segmented{flex-wrap:wrap}.program-controls .segmented button{font-size:.875rem}.room-header>span,.block-help{font-size:.75rem}.block-help{line-height:1.5}.speaker-link{min-height:44px}.details-note,.activity-meta{font-size:.875rem;line-height:1.5}.activity-title,.cell-title{overflow-wrap:anywhere}.schedule-cell .cell-title{display:block;-webkit-line-clamp:unset;overflow:visible}.schedule-cell{overflow:visible}.schedule-cell .speaker-link{font-size:.8125rem}.schedule{grid-auto-rows:minmax(124px,auto)}
.toast{bottom:calc(var(--nav-height,80px) + 8px);font-size:.875rem;max-height:30dvh;line-height:1.4;padding:9px 12px}.toast button{min-height:44px}.update{font-size:.875rem;line-height:1.4}.update button{font-size:.875rem}.bottomnav button,.bottomnav button.active{font-size:.8125rem;line-height:1.3;min-height:64px;padding:4px}.bottomnav .navicon{font-size:1.25rem}.bottomnav{padding:3px 8px max(3px,env(safe-area-inset-bottom));max-width:100%}body .topbar,body:not([data-view=now]) .topbar{min-height:56px;height:auto;flex-wrap:wrap}.topbar .live-brand{flex:1;min-width:145px}body .topbar #headerClock,body:not([data-view=now]) #headerClock{font-size:1.5rem}body .topbar #headerDate,body:not([data-view=now]) #headerDate{font-size:.8125rem;white-space:normal}.topbar{position:relative;top:auto}.topbar .iconbtn{flex-shrink:0}.personal-card .badge,.route-entry .badge{border:1px solid #0002}
dialog{max-width:min(700px,calc(100% - 20px));max-height:90dvh;padding:16px}dialog .dialogtop{position:sticky;top:-16px;background:white;z-index:5;padding:10px 0;margin:0 0 10px}dialog .dialogtop h2{font-size:1rem;overflow-wrap:anywhere}dialog .detail-title{font-size:1.25rem;line-height:1.4}dialog .detail-actions{flex-wrap:wrap}dialog .activity{grid-template-columns:44px minmax(0,1fr) 44px;padding:10px 0;gap:5px}dialog .activity-title{font-size:.9375rem}dialog .alternative{grid-template-columns:28px minmax(0,1fr) 44px;padding:8px 0;gap:5px}dialog .buttonrow>*{max-width:100%;white-space:normal}dialog .statgrid{gap:12px;flex-wrap:wrap}dialog .statgrid strong{font-size:1.3rem}dialog .statgrid span{font-size:.8125rem}dialog .detail-levels{flex-wrap:wrap}dialog .detail-speaker{overflow-wrap:anywhere}dialog .rulebox{font-size:.875rem}.personal-card .activity-title:hover{text-decoration:underline}
@media(max-width:480px){.day-level-row{flex-wrap:wrap}.day-level-row .daybar{flex-basis:150px}.dense-talk.with-location{grid-template-columns:60px minmax(0,1fr) 20px 44px;gap:4px}.dense-talk.with-location .dense-room{padding-left:0}.block-rows .salon-talk{grid-template-columns:40px minmax(0,1fr) 20px 44px;gap:4px}.dense-text{overflow-wrap:anywhere}.route-entry{grid-template-columns:minmax(0,1fr) 60px}#consultBanner{flex-wrap:wrap}#consultBanner button{flex:1;text-align:left}.block-heading{padding-right:4px}.bottomnav{gap:0}.bottomnav button{min-width:0}}
.compact-route .route-cluster{display:block;padding:0;border-top:0}.compact-route .route-cluster.conflict{padding-left:9px}

.dense-talk.with-location{grid-template-columns:76px minmax(0,1fr) 20px 44px;gap:4px}.with-location .dense-room small{overflow-wrap:normal;word-break:normal}body{padding-bottom:calc(var(--nav-height,80px) + 20px)}
.with-location .dense-room small{overflow-wrap:anywhere}
.day-level-row .daybar{flex:1 1 10rem}.bottomnav button,.bottomnav button.active{font-size:.75rem;letter-spacing:0;text-transform:none;overflow-wrap:anywhere;min-width:0}.bottomnav button>span:last-child{max-width:100%;white-space:normal;overflow-wrap:anywhere}.bottomnav{gap:4px}.block-rows .salon-talk{grid-template-columns:2.75rem minmax(0,1fr) 20px 44px}
@media(max-width:359px){.dense-talk.with-location{grid-template-columns:minmax(0,1fr) 20px 44px}.with-location .dense-room{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:5px}.with-location .dense-room small:before{content:'· '}.dense-talk.with-location .dense-text{grid-column:1}.block-rows .salon-talk{grid-template-columns:minmax(0,1fr) 20px 44px}.salon-talk .salon-time{grid-column:1/-1;display:flex;gap:8px;align-items:baseline}.salon-talk .dense-text{grid-column:1}}

.bottomnav button[data-tab=now]{flex:1}.bottomnav button[data-tab=program]{flex:1.35}.bottomnav button[data-tab=route]{flex:1.15}

/* Compact app identity replaces the redundant device clock. */
body .topbar,body:not([data-view=now]) .topbar{min-height:48px;padding:0 12px;border-bottom-width:2px;gap:4px}.topbar #appName{font:600 1rem/1.25 Barlow,sans-serif;color:#fff;letter-spacing:0}.topbar .live-brand{min-width:0}.topbar .iconbtn{height:44px;min-height:44px}.topbar{--header-height:48px}

.topbar .header-map{min-width:44px;min-height:44px;padding:0 5px;color:white;font-size:.8125rem;text-decoration:underline;text-underline-offset:3px;flex-shrink:0}.topbar #appName{font-family:var(--condensed);overflow-wrap:anywhere}.venue-floor{margin:16px 0 24px}.venue-floor h3{font-size:1rem;color:var(--green)}.venue-floor p,.venue-floor>a{font-size:.875rem;line-height:1.5}.venue-floor img{display:block;width:100%;height:auto;margin:12px 0;border:1px solid var(--line);border-radius:6px}.venue-floor>a{display:block;min-height:44px}

.level-legend{padding:8px 12px;background:#f5f7f3;border-bottom:1px solid var(--line);color:var(--muted);font-size:.75rem;line-height:1.4}.level-legend>div{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap}.level-legend span{display:inline-flex;align-items:center;gap:4px}.level-legend .badge{width:18px;height:18px;font-size:11px;margin:0}.level-legend strong{font-weight:600}.level-legend p{margin:4px 0 0;font-size:inherit}

/* Audit: explicit modal contrast, independent of the green page header. */
dialog .dialogtop{background:#fff;color:#173e2d;border-bottom:1px solid #cbd7cf}dialog .dialogtop h2,dialog .dialogtop .iconbtn{color:#173e2d}dialog .dialogtop .iconbtn{background:#f0f5f1;border:1px solid #a8b9ae;min-width:44px;min-height:44px;flex-shrink:0}dialog .dialogtop .iconbtn:hover{background:#e0ebe3}.route-date-label{font-size:.8125rem;color:var(--muted);padding:7px 12px;margin:0;line-height:1.4}body[data-view=route] .daybar{flex-wrap:wrap}.group-preview{font-size:.875rem;line-height:1.5;background:#f3f6f1;padding:10px 12px;border-radius:6px;margin-bottom:12px}.group-preview p{margin:5px 0;overflow-wrap:anywhere}.group-contents summary,.group-advanced summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:.875rem;text-decoration:underline;color:var(--green)}.group-contents ul{padding-left:18px}.group-contents li{margin:8px 0;overflow-wrap:anywhere}.group-advanced{margin-top:16px;border-top:1px solid var(--line)}.group-advanced[open]>button{display:block;margin:8px 0;min-height:44px;max-width:100%;white-space:normal}

.group-visible{padding-left:18px;margin:8px 0}.group-visible li{margin:8px 0;overflow-wrap:anywhere}.group-contents .group-less,.group-contents[open] .group-more{display:none}.group-contents[open] .group-less{display:inline}

.official-map-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}.official-map-links a,.official-original{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.official-map-frame{display:block;width:100%;height:65dvh;min-height:400px;border:1px solid var(--line);background:white}.official-destination{padding:10px;background:var(--soft);overflow-wrap:anywhere}

#mapButton{display:none}.bottomnav button{min-width:0;flex:1;font-size:.75rem;padding-left:3px;padding-right:3px}.bottomnav .count{font-size:.65rem;padding:2px 4px;min-width:16px}.map-page{padding:16px 12px;background:#f5f7f3}.map-page-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.map-page-heading h2{font-size:1.4rem;letter-spacing:-.03em}.map-kicker{font-size:.625rem;letter-spacing:.12em;color:#687e6e;margin-bottom:4px}.map-page-heading a{font-size:.75rem;color:var(--green);min-height:44px;display:flex;align-items:center;white-space:nowrap}.map-destination{border-left:3px solid var(--orange);background:#fff1e6;padding:10px 12px;font-size:.875rem;margin-bottom:12px}.venue-frame{display:block;width:100%;height:900px;border:0;overflow:hidden}.map-offline-plans{border-top:1px solid var(--line);margin-top:12px;font-size:.8125rem}.map-offline-plans summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.map-offline-plans a{display:inline-flex;min-height:44px;align-items:center;margin-right:16px}body[data-view=map] #searchButton{display:none}
.detail-actions>*{min-width:0;max-width:100%}.official-map-links{min-width:0;max-width:100%}.official-map-links a,.official-map-links button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
