.camp-message-list{display:flex;flex-direction:column;gap:12px;margin:16px 0 26px}
.camp-message{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;min-width:0}
.camp-message h3{color:var(--blue);margin:12px 0 8px}
.camp-message p{white-space:pre-wrap;overflow-wrap:anywhere}
.camp-message small{color:var(--muted)}
.challenge-won{border-color:var(--teal);background:#eff8f3}
.location-map{display:inline-flex;align-items:center;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;color:var(--blue);text-decoration:none;background:var(--paper);font-size:14px}
@media(max-width:480px){.camp-message{padding:16px}}
.camp-message-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}
.camp-message{box-shadow:0 8px 24px #173f5f08;border-radius:22px;padding:24px}
.notice-card{border-left:5px solid #dd7945;background:linear-gradient(125deg,#fff5e5,#fffdf7)}
.notice-card::before{content:'📣  DESDE ORGANIZACIÓN';font-size:11px;letter-spacing:.1em;font-weight:800;color:#91441f}
.quest-card{border-top:5px solid #e9b64b;background:linear-gradient(140deg,#fffdf7,#fff3d9)}
.quest-card h3{font-size:23px;line-height:1.2;overflow-wrap:anywhere}
.quest-card .pill{background:#fff8e5;color:#805418;border:1px solid #e8cf99;font-size:12px}
.quest-reward{background:#fffdf7;border:1px dashed #cda757;border-radius:14px;padding:16px;color:#173f5f}
.quest-reward strong{display:block;color:#8a5c13;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.challenge-won{border-top-color:#32786e;background:linear-gradient(140deg,#f6fff8,#e8f4ed)}
.organizer-help{display:flex;gap:20px;align-items:flex-start;background:#eef5f1;border:1px solid #cadfd6;border-radius:24px;padding:26px;margin-top:28px}
.feature-icon{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:18px;background:#fffaf0;font-size:28px}
.organizer-help h2{margin:6px 0;color:#173f5f;font-size:24px}.organizer-help small{font-size:11px;font-weight:800;letter-spacing:.12em;color:#326a61}.organizer-help p{overflow-wrap:anywhere}
.help-actions{display:flex;flex-wrap:wrap;gap:10px}.help-actions a{min-height:44px}
@media(max-width:480px){.camp-message{padding:18px}.organizer-help{padding:20px;display:block}.organizer-help .feature-icon{margin-bottom:12px}.help-actions a{flex:1;justify-content:center}}

/* Compact sections put the programme within reach on small screens. */
#camp-live-content { margin: 12px 0 20px; }
#camp-live-content:empty { display: none; }
.compact-panel { margin: 0 0 12px; border-radius: 18px; padding: 12px 16px; }
.camp-content-panel { background: var(--paper); border: 1px solid var(--line); }
.compact-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; cursor: pointer; list-style: none; }
.compact-panel > summary::-webkit-details-marker { display: none; }
.compact-panel > summary:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; border-radius: 8px; }
.compact-panel > summary h2 { margin: 0; font-size: clamp(1rem, 4.2vw, 1.2rem); line-height: 1.3; overflow-wrap: anywhere; }
.compact-panel-heading { min-width: 0; }
.compact-panel .now-clock { display: block; margin: 5px 0 0; font-size: .8rem; line-height: 1.2; color: rgba(255,255,255,.72); }
.panel-toggle { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: #173f5f09; font: 25px/1 system-ui, sans-serif; }
.panel-toggle::before { content: '+'; }
.compact-panel[open] > summary .panel-toggle::before { content: '−'; }
.now-panel .panel-toggle { background: #ffffff14; }
.compact-panel-body { padding-top: 12px; }
.compact-panel .camp-message-list { margin: 0 0 4px; gap: 12px; }
.compact-panel .camp-message { padding: 16px; border-radius: 16px; }
.compact-panel .quest-card h3 { font-size: 1.15rem; }
.compact-panel .quest-reward { padding: 12px; }
.now-panel.compact-panel { margin-bottom: 12px; }
@media(max-width:480px){.compact-panel{padding:10px 12px}.now-item{gap:10px;padding:10px}.now-item>div{min-width:0;overflow-wrap:anywhere}}
.camp-own-view { margin-top: 18px; }
.camp-own-view h1 { color: var(--blue); font-size: clamp(1.5rem,6vw,2rem); line-height: 1.2; margin: 16px 0; }
.camp-view-back { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--blue); font-size: 25px; cursor: pointer; }
.camp-view-clock { display: block; margin: -6px 0 16px; color: var(--muted); font-size: .9rem; }
.camp-notification-floats { position: fixed; right: max(14px,env(safe-area-inset-right)); bottom: max(18px,env(safe-area-inset-bottom)); z-index: 35; display: flex; flex-direction: column; gap: 10px; }
.camp-notification-floats:empty { display: none; }
.camp-notification-floats button { position: relative; display: grid; place-items: center; width: 50px; height: 50px; padding: 0; border: 1px solid #e3cdaa; border-radius: 50%; background: var(--paper); font-size: 24px; box-shadow: 0 5px 18px #173f5f24; cursor: pointer; }
.camp-new-dot { position: absolute; top: 1px; right: 1px; width: 12px; height: 12px; border-radius: 50%; background: #b33c2e; border: 2px solid var(--paper); }
.camp-view-back:focus-visible,.camp-notification-floats button:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
@media print { .camp-notification-floats { display: none; } }

.notice-published { display: block; margin: 10px 0 8px; color: var(--muted); font-size: .75rem; line-height: 1.4; }

.camp-message-list.camp-notice-list { display: flex; flex-direction: column; gap: 12px; }
