/* Wspólna warstwa graficzna podglądu i odtwarzacza; skaluje się do rozmiaru rodzica. */
.sm-stage{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:radial-gradient(ellipse at 26% 5%,#1c4d67 0%,#0e2039 45%,#071321 100%);color:#edf8ff;container-type:inline-size;position:relative;font-family:Inter,system-ui,sans-serif}
.sm-stage.sm-urgent{background:radial-gradient(ellipse at 30% 5%,#7a322f 0%,#401c29 55%,#190e1c 100%)}
.sm-main{display:flex;flex:1;min-height:0;flex-direction:column}
.sm-slide{flex:1;min-height:0;padding:7cqw 6cqw 3cqw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;overflow:hidden}
.sm-kicker{font-size:clamp(7px,2.2cqw,30px);font-weight:800;letter-spacing:.12em;color:#71ebdb;text-transform:uppercase;margin-bottom:4cqw}
.sm-headline{font-size:clamp(11px,8cqw,120px);font-weight:850;line-height:1.08;letter-spacing:-.035em;overflow-wrap:anywhere;margin:0 0 3cqw;max-width:100%}
.sm-copy{font-size:clamp(8px,3.4cqw,48px);line-height:1.45;color:#d0e0ee;overflow-wrap:anywhere;max-width:100%;margin:0}
.sm-graphic{max-width:100%;max-height:100%;object-fit:contain;align-self:center;margin:auto}
.sm-asset-placeholder{border:1px dashed #5f7994;color:#a9bed0;font-size:clamp(8px,3cqw,30px);padding:3cqw;align-self:stretch;text-align:center}
.sm-footer{min-height:8%;display:flex;align-items:center;justify-content:space-between;gap:2cqw;margin:0 6cqw 3cqw;padding-top:2cqw;border-top:1px solid #b3c9df55;color:#c2d7e7;font-size:clamp(7px,1.9cqw,22px)}
.sm-schedule{min-height:0;flex-shrink:0;display:flex;flex-direction:column;border-bottom:1px solid #659f9e77;overflow:hidden}
.sm-schedule-placeholder{width:100%;height:100%;padding:4cqw 6cqw;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.sm-schedule-title{font-size:clamp(11px,5cqw,70px);line-height:1.1;font-weight:800;margin-bottom:2cqw;overflow-wrap:anywhere}
.sm-schedule-text{font-size:clamp(8px,2.8cqw,30px);line-height:1.35;color:#c7d8e8;margin:0}
.sm-bottom{min-height:0;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}
.sm-bottom .sm-slide{padding-top:3cqw;padding-bottom:2cqw}
.sm-bottom .sm-headline{font-size:clamp(10px,6cqw,85px)}
.sm-bottom .sm-copy{font-size:clamp(8px,2.8cqw,32px)}
.sm-bottom .sm-kicker{margin-bottom:2cqw}

/* v0.11 — potwierdzone zajęte terminy, bez danych klientów */
.sm-reservations{display:flex;flex-direction:column;gap:6px;margin-top:15px}.sm-reservation{display:flex;justify-content:space-between;gap:15px;padding:9px 10px;border-bottom:1px solid #ffffff33;color:#f4faff;font-size:clamp(12px,1.55vw,24px)}.sm-reservation-hour{white-space:nowrap;color:#8ce7de}.sm-reservation-name{font-weight:700;overflow-wrap:anywhere}.sm-schedule-small{font-size:clamp(9px,.8vw,14px);color:#b1c7d5;margin-top:16px}
/* Grid v2: tiles are clipped to their own bounds; pinned information has its own protected plane. */
.sm-grid-stage{position:relative!important;display:block!important;container-type:size;width:100%;height:100%;overflow:hidden}
.sm-grid-tile{position:absolute;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:1%;overflow-wrap:anywhere;line-height:1.2}
.sm-grid-tile p{margin:.3em 0}.sm-grid-time{font-variant-numeric:tabular-nums}.sm-grid-image{width:100%;height:100%;object-fit:contain;min-height:0}
.sm-grid-tile .sm-slide{padding:3%;width:100%;height:100%;box-sizing:border-box;overflow:hidden}.sm-grid-tile .sm-headline{font-size:1.5em}.sm-grid-tile .sm-copy{font-size:1em}.sm-grid-tile .sm-kicker{font-size:.65em}.sm-grid-tile .sm-schedule-title{font-size:1em}.sm-grid-tile .sm-schedule-text,.sm-grid-tile .sm-reservation{font-size:.65em}.sm-grid-tile .sm-schedule-small{font-size:.5em}.sm-grid-error{padding:20px;color:#ffe0a0}
.sm-occupancy{width:100%;height:100%;overflow:auto;padding:1em;box-sizing:border-box;color:inherit}.sm-occupancy h3,.sm-occupancy h4{margin:.3em 0}.sm-sector{margin:.6em 0;border-top:1px solid #425567}.sm-occupancy-table{width:100%;border-collapse:collapse;font-size:.85em}.sm-occupancy-table td{padding:.4em;text-align:left;border-bottom:1px solid #425567}.sm-occupancy-lane{height:2em;position:relative;margin:.3em 0;background:#142f40;border:1px solid #425567}.sm-occupancy-bar{position:absolute;top:0;height:100%;min-width:2px;background:#356480;overflow:hidden;white-space:nowrap;font-size:.75em;line-height:2.5em;box-sizing:border-box}.sm-occupancy-bar.current{background:#247466}

/* Occupancy cards are independently replaced; surrounding media DOM is retained. */
.sm-occupancy{overflow:hidden;display:flex;flex-direction:column;padding:.5em;min-height:0;line-height:1.2}
.sm-occupancy-header{flex:none;height:3.5em}.sm-occupancy-header h3{font-size:1.05em;margin:0}.sm-occupancy-header p{margin:.3em 0}
.sm-occupancy-body{flex:1;min-height:0;overflow:hidden}.sm-occupancy .sm-sector{height:4.5em;box-sizing:border-box;margin:0;padding:.2em 0;overflow:hidden}
.sm-occupancy .sm-sector h4{font-size:1em;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sm-occupancy .sm-sector p{font-size:.85em;margin:.3em 0}
.sm-occupancy .sm-schedule-small{flex:none;height:4em;font-size:.8em;line-height:1.2;margin:0;overflow:hidden}
.sm-occupancy-table td{padding:.25em}.sm-occupancy-lane{height:1.1em;margin:.15em 0}.sm-occupancy-bar{line-height:1.4em}.sm-occupancy-time{font-size:.8em}
.sm-occupancy-tiny .sm-occupancy-body::before{content:'Powiększ kafelek grafiku';display:block;font-size:12px}.sm-occupancy-tiny .sm-sector{display:none}

.sm-occupancy .sm-sector{height:5.5em}.sm-occupancy .sm-sector h4{white-space:normal;overflow-wrap:anywhere;height:2.4em;line-height:1.2;overflow:hidden}
.sm-occupancy .sm-schedule-small{height:5.3em;font-size:1em;line-height:1.2}.sm-occupancy .sm-schedule-small>*{display:block;font-size:.85em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-occupancy .sm-schedule-small>strong{white-space:normal;font-size:.85em;min-height:2.4em}
/* Public-facing timetable: no import metadata, diagnostics or implementation labels. */
.sm-occupancy{padding:.5em;gap:.6em;overflow:hidden}.sm-timetable-heading{display:flex;align-items:center;justify-content:space-between;gap:1em;flex:none;min-height:1.6em}.sm-timetable-heading h3{font-size:1.15em;margin:0}.sm-page-number{font-size:.75em;opacity:.7;white-space:nowrap}.sm-timetable-body{flex:1;min-height:0;overflow:hidden}.sm-timetable{width:100%;table-layout:fixed;border-collapse:collapse;line-height:1.2;font-size:1em}.sm-timetable th,.sm-timetable td{border:1px solid #7397ac66;padding:.45em;vertical-align:middle;text-align:center;overflow-wrap:anywhere}.sm-timetable thead th{background:#25485d;font-weight:700}.sm-timetable th:first-child{width:5em}.sm-timetable .sm-time-range{font-size:.8em;font-weight:500;white-space:normal}.sm-booking{display:flex;flex-direction:column;gap:.2em;padding:.2em;background:#244e64;border-radius:.25em;font-size:.8em}.sm-booking.current{background:#24675c}.sm-booking span{font-variant-numeric:tabular-nums;font-size:.85em;white-space:nowrap}.sm-no-booking{opacity:.5}.sm-whole-booking .sm-booking{background:#285c70}.sm-timetable-empty{font-size:1em;opacity:.8}.sm-calendar-axis{display:flex;justify-content:space-between;font-size:.75em;margin-bottom:.5em}.sm-calendar-sector{border-top:1px solid #7397ac66;padding:.4em 0}.sm-calendar-sector h4{margin:0 0 .3em;font-size:1em}.sm-calendar-lane{height:.8em;background:#23404e;position:relative;margin:.2em 0}.sm-calendar-bar{height:100%;position:absolute;background:#49b6ac;border-radius:.2em;min-width:2px}.sm-calendar-caption{display:flex;justify-content:space-between;gap:.5em;font-size:.75em}.sm-occupancy-tiny .sm-timetable-body::before{content:'Grafik wymaga większego obszaru';font-size:12px}.sm-occupancy-tiny .sm-timetable-body>*{display:none}
.sm-now-strip{display:flex;flex-direction:row;align-items:center;gap:.6em;height:100%;padding:.25em;overflow:hidden}.sm-now-sector{display:flex;flex:1;min-width:0;flex-direction:column;gap:.25em;border-right:1px solid #7397ac66;padding-right:.6em;overflow-wrap:anywhere}.sm-now-sector:last-child{border:0}.sm-now-sector strong{font-size:.85em}.sm-now-sector span{font-size:.7em}
.sm-organizer-logo{width:auto;height:1.7em;max-width:4em;object-fit:contain;align-self:center}.sm-activity-icon{font-size:1.1em}.sm-calendar-caption .sm-booking{width:100%;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
.sm-block-current{height:12%;flex:none;min-height:3em;border-bottom:1px solid #7397ac66}

.sm-grid-time{white-space:nowrap;overflow:hidden}.sm-timetable th:first-child{white-space:nowrap;overflow-wrap:normal}

.sm-qr,.sm-gallery{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3em}.sm-qr img{max-width:100%;max-height:85%;object-fit:contain;image-rendering:pixelated;background:white}.sm-qr span{font-size:.65em}.sm-gallery img{width:100%;height:100%;object-fit:contain;min-height:0}.sm-ticker{width:100%;overflow:hidden;white-space:nowrap}.sm-ticker span{display:inline-block;min-width:100%;animation:sm-ticker-move 30s linear infinite}@keyframes sm-ticker-move{from{transform:translateX(100%)}to{transform:translateX(-100%)}}@media(prefers-reduced-motion:reduce){.sm-ticker span{animation:none;white-space:normal}}

.sm-timetable,.sm-timetable th,.sm-timetable td{color:inherit}

.sm-directory{width:100%;height:100%;box-sizing:border-box;overflow:hidden;padding:.5em}.sm-directory h3{font-size:1.2em;margin:0 0 .6em}.sm-directory-entry{display:flex;gap:1em;min-height:5.3em;border-top:1px solid #ffffff33;padding:.3em 0;box-sizing:border-box;overflow:hidden}.sm-directory-entry>strong{min-width:3em;font-size:1.4em}.sm-directory-entry>div{min-width:0;flex:1}.sm-directory-entry p{font-size:.75em;margin:.15em 0;line-height:1.2}.sm-direction{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:.4em}.sm-direction>span{font-size:3em;line-height:1}.sm-direction p{font-size:.8em}
