/* ECHOLINK attendee portal Polish 2C / DATA-1A4 — Mi Amigu shell convergence. */
:root {
  --ech-canvas:#EBF5F1;
  --ech-surface:#FFFFFF;
  --ech-surface-alt:#F4FAF7;
  --ech-ink:#1A2B25;
  --ech-ink-2:#4A5D55;
  --ech-ink-3:#8A9A94;
  --ech-border:rgba(0,40,30,.06);
  --ech-border-2:rgba(0,40,30,.12);
  --ech-teal:#22A68A;
  --ech-teal-soft:rgba(34,166,138,.10);
  --ech-blue:#4F7FE8;
  --ech-live:#E06A50;
  --ech-shadow:0 2px 10px rgba(0,40,30,.08),0 1px 3px rgba(0,40,30,.04);
}
html, body { background:var(--ech-canvas) !important; color:var(--ech-ink); }
body { min-height:100dvh; }
.container,.main,#stream-screen,.stream-hub,.stream-hub-layout { background:var(--ech-canvas) !important; }
.container { max-width:430px; margin:0 auto; min-height:100dvh; }
.main { padding-inline:0 !important; }
.stream-hub { border:0 !important; box-shadow:none !important; }
.portal-shell-header { min-height:58px !important; padding:8px 14px !important; background:rgba(255,255,255,.97) !important; border-bottom:1px solid var(--ech-border) !important; box-shadow:0 1px 3px rgba(0,40,30,.04); }
.portal-shell-identity { display:grid; grid-template-columns:auto 1fr; column-gap:9px; align-items:center; }
.portal-2c-brand-slot { width:30px; height:30px; border-radius:10px; background:var(--ech-teal-soft); display:grid; place-items:center; flex:0 0 30px; color:var(--ech-teal); border:1px solid rgba(34,166,138,.12); }
.portal-2c-brand-slot svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.portal-shell-identity > strong { grid-column:2; font-size:.80rem !important; color:var(--ech-ink) !important; }
.portal-2c-brand-note { grid-column:2; font-size:.55rem; color:var(--ech-ink-3); margin-top:1px; letter-spacing:.02em; }
.portal-shell-state { grid-column:2; margin-top:2px !important; font-size:.62rem !important; color:var(--ech-ink-2) !important; }
.portal-network,.portal-shell-more { background:var(--ech-surface-alt) !important; border-color:var(--ech-border) !important; color:var(--ech-ink-2) !important; }
body:not([data-portal-view="watch"]):not([data-portal-view="listen"]) .stream-top-bar { display:none !important; }
.portal-page { padding:14px 16px 12px !important; margin:0 auto 10px !important; }
.portal-2c-event-intro { padding:4px 2px 15px; }
.portal-2c-kicker { font-size:.59rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ech-teal); }
.portal-2c-event-title { margin:4px 0 4px; font-size:1.18rem; line-height:1.18; font-weight:650; color:var(--ech-ink); letter-spacing:-.01em; }
.portal-2c-event-meta { font-size:.70rem; color:var(--ech-ink-3); line-height:1.4; }
.portal-2c-event-description { margin-top:7px; font-size:.72rem; line-height:1.45; color:var(--ech-ink-2); max-width:38ch; }
.portal-2c-section-label { display:flex; align-items:center; justify-content:space-between; margin:8px 2px 7px; }
.portal-2c-section-label strong { font-size:.63rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ech-ink-3); }
.portal-2c-section-label button { border:0; background:none; color:var(--ech-teal); font:inherit; font-size:.66rem; font-weight:650; cursor:pointer; }
.portal-2c-surface { background:var(--ech-surface); border:1px solid var(--ech-border); border-radius:14px; box-shadow:0 1px 3px rgba(0,40,30,.05); overflow:hidden; }
.portal-2c-surface .portal-row { padding:11px 12px !important; min-height:56px; border-color:var(--ech-border) !important; }
.portal-2c-surface .portal-row:last-child { border-bottom:0 !important; }
.portal-row-icon { border-radius:10px !important; }
.portal-row-copy strong { font-size:.78rem !important; color:var(--ech-ink) !important; }
.portal-row-copy small { font-size:.66rem !important; color:var(--ech-ink-3) !important; }
.portal-row-icon.live { color:var(--ech-live) !important; background:rgba(224,106,80,.10) !important; }
.portal-row-icon.notice { color:var(--ech-teal) !important; background:var(--ech-teal-soft) !important; position:relative; }
.portal-row-icon.audio { color:#7C5AC7 !important; background:rgba(124,90,199,.09) !important; }
.portal-alert-pin { position:absolute; width:7px; height:7px; right:3px; top:3px; border-radius:999px; background:var(--ech-teal); border:1.5px solid var(--ech-surface); }
.portal-alert-pin.warning { background:#D99B32; }
.portal-alert-pin.urgent { background:#D75A4A; }

/* Live day timeline: past remains visible, current is obvious, clock moves locally without a data re-render. */
.portal-day-timeline { position:relative; padding:8px 0; overflow:visible; }
.portal-timeline-rail { position:absolute; left:58px; top:17px; bottom:17px; width:2px; pointer-events:none; }
.portal-timeline-line { position:absolute; inset:0; width:2px; background:rgba(34,166,138,.22); border-radius:999px; }
.portal-timeline-clock { position:absolute; left:-4px; z-index:3; transform:translateY(-50%); transition:top 30s linear; display:flex; align-items:center; gap:7px; }
.portal-timeline-clock i { width:10px; height:10px; border-radius:50%; background:var(--ech-teal); box-shadow:0 0 0 4px rgba(34,166,138,.14); }
.portal-timeline-clock b { font-size:.57rem; line-height:1; color:var(--ech-teal); background:var(--ech-surface); padding:3px 5px; border-radius:6px; font-weight:750; box-shadow:0 1px 3px rgba(0,40,30,.08); }
.portal-timeline-session { width:100%; min-height:58px; display:grid; grid-template-columns:45px 16px minmax(0,1fr) auto; gap:7px; align-items:center; padding:8px 11px; border:0; border-bottom:1px solid var(--ech-border); background:transparent; text-align:left; color:inherit; cursor:pointer; }
.portal-timeline-session:last-child { border-bottom:0; }
.portal-timeline-time { font-size:.62rem; color:var(--ech-ink-3); font-variant-numeric:tabular-nums; }
.portal-timeline-marker { width:8px; height:8px; border-radius:50%; background:var(--ech-surface); border:1.5px solid rgba(34,166,138,.35); position:relative; z-index:2; }
.portal-timeline-copy { display:grid; gap:2px; min-width:0; }
.portal-timeline-copy strong { font-size:.73rem; line-height:1.25; color:var(--ech-ink); font-weight:650; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-timeline-copy small { font-size:.61rem; color:var(--ech-ink-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-timeline-session.is-past { opacity:.58; }
.portal-timeline-session.is-past .portal-timeline-marker { background:rgba(34,166,138,.22); }
.portal-timeline-session.is-current { background:var(--ech-teal-soft); }
.portal-timeline-session.is-current .portal-timeline-marker { background:var(--ech-teal); border-color:var(--ech-teal); box-shadow:0 0 0 3px rgba(34,166,138,.12); }
.portal-timeline-state { padding:3px 6px; border-radius:999px; background:var(--ech-teal); color:#fff; font-size:.54rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.portal-timeline-state[hidden] { display:none !important; }

/* Latest update expands in place; dedicated Updates remains secondary navigation. */
.portal-update-preview .portal-update-chevron { transition:transform .18s ease; }
#portal-2c-update-row[aria-expanded="true"] .portal-update-chevron { transform:rotate(90deg); }
.portal-update-expanded { padding:0 13px 13px 52px; border-top:1px solid var(--ech-border); }
.portal-update-expanded[hidden] { display:none !important; }
.portal-update-expanded p { margin:10px 0 4px; font-size:.72rem; line-height:1.5; color:var(--ech-ink-2); }
.portal-update-expanded small { display:block; font-size:.59rem; color:var(--ech-ink-3); }
.portal-update-expanded button { margin-top:9px; padding:0; border:0; background:none; color:var(--ech-teal); font:inherit; font-size:.66rem; font-weight:700; cursor:pointer; }

/* Agenda is rendered from the same authenticated session truth as Today. */
#agenda-panel,#portal-completion-updates,#portal-completion-more,#portal-replay { background:transparent !important; }
#agenda-panel { padding:14px 16px 90px !important; color:var(--ech-ink) !important; }
.portal-agenda-heading { margin-bottom:12px !important; }
.portal-agenda-heading h3 { margin:2px 0 0; font-size:1.05rem; color:var(--ech-ink); }
.portal-agenda-heading small { display:block; margin-top:3px; font-size:.64rem; color:var(--ech-ink-3); font-weight:500; }
.portal-agenda-day { margin:0 0 14px; }
.portal-agenda-day-title { margin:0 2px 7px; font-size:.63rem; font-weight:750; letter-spacing:.07em; text-transform:uppercase; color:var(--ech-ink-3); }
.portal-agenda-list { background:var(--ech-surface); border:1px solid var(--ech-border); border-radius:14px; overflow:hidden; box-shadow:0 1px 3px rgba(0,40,30,.05); }
.portal-agenda-session { display:grid; grid-template-columns:68px minmax(0,1fr) auto; gap:10px; align-items:start; padding:12px; border-bottom:1px solid var(--ech-border); }
.portal-agenda-session:last-child { border-bottom:0; }
.portal-agenda-session.is-past { opacity:.58; }
.portal-agenda-session.is-current { background:var(--ech-teal-soft); }
.portal-agenda-time { font-size:.63rem; line-height:1.35; color:var(--ech-ink-3); font-variant-numeric:tabular-nums; }
.portal-agenda-copy { min-width:0; display:grid; gap:3px; }
.portal-agenda-copy strong { font-size:.76rem; color:var(--ech-ink); line-height:1.3; }
.portal-agenda-copy small { font-size:.63rem; color:var(--ech-ink-3); }
.portal-agenda-copy p { margin:2px 0 0; font-size:.65rem; line-height:1.45; color:var(--ech-ink-2); }
.portal-agenda-now { align-self:center; padding:3px 6px; border-radius:999px; background:var(--ech-teal); color:#fff; font-size:.54rem; font-weight:700; text-transform:uppercase; }
#portal-completion-updates .portal-updates-list,#portal-completion-more .portal-more-list { background:var(--ech-surface); border:1px solid var(--ech-border); border-radius:14px; overflow:hidden; box-shadow:0 1px 3px rgba(0,40,30,.05); }
#portal-completion-more .portal-more-list { border-top:1px solid var(--ech-border) !important; }
.portal-update { padding:11px 12px !important; border-color:var(--ech-border) !important; display:grid; gap:3px; }
.portal-update > strong { font-size:.72rem; color:var(--ech-ink); }
.portal-update > span { font-size:.72rem; color:var(--ech-ink-2); line-height:1.4; }
.portal-update > small { font-size:.60rem; color:var(--ech-ink-3); }

.attendee-portal-nav { background:rgba(255,255,255,.98) !important; border-top:1px solid var(--ech-border) !important; backdrop-filter:blur(14px); z-index:520 !important; }
.attendee-portal-nav button { min-height:52px; border-radius:0 !important; color:var(--ech-ink-3) !important; position:relative; }
.attendee-portal-nav button.active,.attendee-portal-nav button[aria-current="page"] { color:var(--ech-teal) !important; background:var(--ech-teal-soft) !important; }
.attendee-portal-nav button.active::before,.attendee-portal-nav button[aria-current="page"]::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:20px; height:2px; background:var(--ech-teal); border-radius:0 0 2px 2px; }

.mini-player { background:#10233D !important; color:#fff !important; min-height:48px; }
.mini-player-button { border-color:rgba(255,255,255,.20) !important; color:#fff !important; }
.mini-player-expand { background:var(--ech-blue) !important; }
body.portal-player-expanded { overflow:hidden !important; }
#portal-watch.portal-player-expanded { position:fixed !important; inset:0 !important; z-index:500 !important; display:flex !important; flex-direction:column; width:100% !important; max-width:430px !important; margin:0 auto !important; left:50% !important; transform:translateX(-50%); background:var(--ech-canvas) !important; padding:64px 12px 78px !important; overflow-y:auto; }
.portal-2c-player-close { position:fixed; z-index:510; top:10px; right:max(12px,calc((100vw - 430px)/2 + 12px)); width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--ech-border); border-radius:11px; background:var(--ech-surface); color:var(--ech-ink); box-shadow:var(--ech-shadow); cursor:pointer; }
.portal-2c-player-close svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
#portal-watch.portal-player-expanded .stream-actions { display:none !important; }
#portal-watch.portal-player-expanded .stream-player { border-radius:14px; overflow:hidden; background:#000; }
#portal-watch.portal-player-expanded .player-console { background:var(--ech-surface); border:1px solid var(--ech-border); border-radius:14px; margin-top:10px; }

/* Language is a sheet over the app shell, not a replacement for the shell. Keep bottom nav visible. */
.portal-language-sheet { background:transparent !important; border-radius:0 !important; box-shadow:none !important; padding-bottom:52px; }
.portal-language-sheet .portal-language-panel { background:var(--ech-surface) !important; border-radius:22px 22px 0 0 !important; box-shadow:0 -8px 28px rgba(0,40,30,.12) !important; }
.portal-language-sheet .portal-language-option { border-color:var(--ech-border) !important; }
body.portal-language-open .attendee-portal-nav { z-index:520 !important; opacity:.96; pointer-events:none; }

@media (max-width:520px) {
  .portal-page { padding-inline:14px !important; }
  .portal-2c-event-title { font-size:1.05rem; }
  .portal-timeline-rail { left:55px; }
  .portal-timeline-session { grid-template-columns:42px 16px minmax(0,1fr) auto; padding-inline:9px; }
  .portal-agenda-session { grid-template-columns:62px minmax(0,1fr) auto; }
  #portal-watch.portal-player-expanded { padding-inline:8px !important; }
}

@media (min-width:700px) {
  .portal-language-sheet { padding-bottom:0; }
}
