/* 29.3.1 independent header visibility controls */
.headerVisibility2931{display:grid;gap:8px;padding:12px;border:1px solid var(--line,#303744);border-radius:14px;background:rgba(255,255,255,.025)}
.headerVisibility2931>b{font-size:12px;letter-spacing:.04em}

/* 29.3.5 per-screen presentation compatibility */
.screenCompat2935{display:flex;align-items:center;gap:7px;padding:6px 8px;border:1px solid rgba(255,255,255,.12);border-radius:10px}.screenCompat2935 span{font-size:12px;opacity:.72}.screenCompat2935 select{max-width:170px}

/* 29.3.6 header graphics */
.headerGraphic2936{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border:1px solid #ffffff18;border-radius:16px;margin:12px 0}.headerGraphic2936>b{grid-column:1/-1}.headerGraphic2936 label{display:grid;gap:6px}@media(max-width:700px){.headerGraphic2936{grid-template-columns:1fr}}
/* 29.3.7 presentation per-photo validity */
.photoValidity2937{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,.55fr) minmax(130px,.55fr);gap:10px;align-items:end;padding:10px 12px;border-top:1px solid rgba(127,127,127,.18)}
.photoValidity2937 small{display:block;opacity:.65;margin-top:3px}.photoValidity2937 label{display:grid;gap:4px;font-size:12px}.photoValidity2937 input{width:100%}
@media(max-width:720px){.photoValidity2937{grid-template-columns:1fr}.photoValidity2937>div{grid-column:1}}
/* 29.3.8 Marketing BETA */
.mkt2938{max-width:1500px;margin:auto}.mktStatus2938{margin:14px 0;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}.mktMonthBar2938{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0}.mktMonthBar2938 h2{min-width:260px;text-align:center;text-transform:capitalize}.mktWeek2938,.mktCalendar2938{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.mktWeek2938 b{text-align:center;padding:8px}.mktDay2938{min-height:145px;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:8px;overflow:hidden}.mktDay2938.empty{opacity:.25}.mktDate2938{display:flex;justify-content:space-between;align-items:center}.mktDate2938 button{padding:3px 8px}.mktItem2938{display:block;width:100%;text-align:left;padding:8px;margin-top:6px;border-radius:9px;font-size:12px}.mktItem2938 b,.mktItem2938 small{display:block}.mktItem2938.suggestion{border-style:dashed}.mktPreview2938{max-height:260px;max-width:100%;object-fit:contain;border-radius:14px;margin-bottom:15px}.mktChannels2938{display:flex;gap:20px;padding:14px 0}.mktImport2938{display:grid;gap:8px}.mktImport2938 button{text-align:left;padding:14px}.mktImport2938 span{display:block;opacity:.65;margin-top:4px}@media(max-width:900px){.mktCalendar2938{grid-template-columns:1fr}.mktWeek2938{display:none}.mktDay2938.empty{display:none}.mktDay2938{min-height:auto}}

/* 29.3.9 Marketing BETA — aligned with KIOSKpanel */
.mkt2939{max-width:1600px;margin:auto}.mktDash2939{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.mktDash2939>div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}.mktDash2939 b{font-size:26px;display:block}.mktDash2939 span{color:var(--muted);font-size:12px}.mktMonthBar2939{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0}.mktMonthBar2939 h2{min-width:280px;text-align:center;text-transform:capitalize}.mktWeek2939,.mktCalendar2939{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.mktWeek2939 b{text-align:center;padding:8px;color:var(--muted)}.mktDay2939{min-height:150px;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:8px;overflow:hidden}.mktDay2939.empty{opacity:.25}.mktDate2939{display:flex;justify-content:space-between;align-items:center}.mktDate2939 button{padding:3px 8px}.mktItem2939{display:block;width:100%;text-align:left;padding:8px;margin-top:6px;border-radius:9px;font-size:12px}.mktItem2939 b,.mktItem2939 small{display:block}.mktItem2939.suggestion{border-style:dashed}.mktPreview2939{max-height:300px;max-width:100%;object-fit:contain;border-radius:14px;margin-bottom:15px}.mktChannels2939{display:flex;gap:20px;padding:14px 0}.mktImport2939{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mktImport2939 button{text-align:left;padding:14px}.mktImport2939 span,.mktProfiles2939 span{display:block;opacity:.65;margin-top:4px}.mktPoster2939{aspect-ratio:1/1;max-width:430px;border-radius:22px;padding:34px;margin:0 auto 18px;background:linear-gradient(145deg,var(--card2),var(--bg2));border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 18px 50px #0004}.mktPoster2939 span{font-size:12px;letter-spacing:.2em;color:var(--accent)}.mktPoster2939 strong{font-size:38px;line-height:1;margin:10px 0}.mktPoster2939 small{font-size:15px;color:var(--muted)}.mktProfiles2939,.mktAuto2939{display:grid;gap:10px}.mktProfiles2939>div,.mktAuto2939>div{border:1px solid var(--line);background:var(--card2);border-radius:14px;padding:14px}.mktProfiles2939 em{display:block;margin-top:7px;color:var(--muted)}.mktAuto2939>div{display:grid;grid-template-columns:1fr 220px 130px;gap:10px;align-items:center}.mktShell2939{margin-top:18px;padding:14px;border-radius:14px;background:#090c11;white-space:pre-wrap;overflow:auto}
@media(max-width:900px){.mktDash2939{grid-template-columns:repeat(2,1fr)}.mktCalendar2939{min-width:980px}.mktWeek2939{min-width:980px}.mkt2939{overflow-x:auto}.mktImport2939{grid-template-columns:1fr}.mktAuto2939>div{grid-template-columns:1fr}.mktMonthBar2939{position:sticky;left:0}.mktWeek2939{display:grid}}
/* 29.4.0 Marketing Center */
.mkt2940{max-width:1700px;margin:auto}.mktHero2940{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:24px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,var(--card),var(--card2));box-shadow:0 18px 50px #0002}.mktHero2940 h1{margin:4px 0 5px;font-size:36px}.mktHero2940 p{margin:0;color:var(--muted)}.mktActions2940,.mktEditorButtons2940{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.mktStats2940{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.mktStats2940>div{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.mktStats2940 span{font-size:12px;color:var(--muted)}.mktStats2940 b{font-size:25px}.mktCalendarShell2940{border:1px solid var(--line);border-radius:22px;background:var(--card);overflow:hidden}.mktCalendarTop2940{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.mktCalendarTop2940 span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.mktCalendarTop2940 h2{margin:3px 0 0;text-transform:capitalize}.mktCalendarTop2940>div:last-child{display:flex;gap:7px}.mktCalendarScroll2940{overflow-x:auto;padding:10px}.mktWeek2940,.mktCalendar2940{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:7px;min-width:1015px}.mktWeek2940 b{text-align:center;padding:8px;color:var(--muted);font-size:12px}.mktDay2940{min-height:165px;border:1px solid var(--line);border-radius:13px;background:var(--card2);padding:8px}.mktDay2940.is-empty{opacity:.22}.mktDay2940.is-today{outline:2px solid var(--accent);outline-offset:-2px}.mktDay2940 header{display:flex;justify-content:space-between;align-items:center;padding:1px 2px 5px}.mktDay2940 header button{padding:3px 8px}.mktDayItems2940{display:grid;gap:5px}.mktCard2940{display:grid;grid-template-columns:auto 1fr;gap:2px 6px;text-align:left;padding:7px 8px;border-radius:9px;border:1px solid var(--line);background:var(--card);font-size:11px}.mktCard2940 span{color:var(--muted)}.mktCard2940 b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mktCard2940 small{grid-column:2;color:var(--muted);font-size:9px}.mktCard2940.st-suggestion{border-style:dashed}.mktCard2940.st-published{opacity:.72}.mktCard2940.st-error{border-color:#d95c5c}.mktEditor2940{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(400px,1.3fr);gap:24px}.mktPreview2940{width:100%;max-height:520px;object-fit:contain;border-radius:18px;background:var(--card2)}.mktPoster2940{aspect-ratio:1/1;border-radius:22px;padding:34px;background:linear-gradient(145deg,var(--card2),var(--bg2));border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end}.mktPoster2940 span{letter-spacing:.2em;color:var(--accent)}.mktPoster2940 strong{font-size:38px;line-height:1;margin:10px 0}.mktBoth2940{display:flex;align-items:center;gap:18px;padding:14px 0}.mktBoth2940 b{margin-right:auto}.mktSourceGroups2940{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mktSourceGroups2940>div{border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--card2)}.mktSourceGroups2940 h3{margin:2px 4px 10px}.mktSourceGroups2940 button{display:block;width:100%;text-align:left;margin:5px 0;padding:10px}.mktSourceGroups2940 button span{display:block;color:var(--muted);font-size:11px}.mktProfiles2940,.mktAuto2940{display:grid;gap:9px}.mktProfiles2940 article,.mktAuto2940 article{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid var(--line);background:var(--card2);border-radius:15px;padding:13px}.mktProfiles2940 span,.mktAuto2940 small{display:block;color:var(--muted);margin-top:3px}.mktProfiles2940 em{font-style:normal;color:var(--muted)}.mktProfiles2940 em.ok{color:#58c889}.mktAuto2940 label{display:flex;align-items:center;gap:10px}.mktShell2940{margin-top:18px;padding:14px;border-radius:14px;background:#090c11;white-space:pre-wrap;overflow:auto}
@media(max-width:900px){.mktHero2940{align-items:stretch;flex-direction:column}.mktActions2940{justify-content:flex-start}.mktStats2940{grid-template-columns:repeat(2,1fr)}.mktEditor2940,.mktSourceGroups2940{grid-template-columns:1fr}.mktProfiles2940 article,.mktAuto2940 article{grid-template-columns:1fr}.mktBoth2940{align-items:flex-start;flex-wrap:wrap}.mktBoth2940 b{width:100%}}

/* 29.4.7: Marketing calendar + visual suggestions */
.mktCalendarScroll2940{overflow-x:auto}
.mktWeek2940,.mktCalendar2940{grid-template-columns:repeat(7,minmax(0,1fr));min-width:760px;gap:4px}
.mktDay2940{min-height:132px;min-width:0;border-radius:9px;padding:5px}
.mktCard2947{display:flex;align-items:center;gap:7px;width:100%;min-width:0;padding:5px}
.mktThumb2947,.mktThumbFallback2947{flex:0 0 36px;width:36px;height:36px;object-fit:cover;border-radius:6px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:19px}
.mktCardText2947{min-width:0;display:flex;flex-direction:column;gap:2px;align-items:flex-start;overflow:hidden}
.mktCardText2947 b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.mktCardText2947 small{font-size:9px;color:var(--muted)}
.mktCard2947:hover,.mktCard2947:focus-visible{border-color:var(--accent);outline:1px solid var(--accent)}
@media(max-width:850px){.mktWeek2940,.mktCalendar2940{min-width:760px}.mktDay2940{min-height:120px}}

/* 29.5.4 — full month calendar with source-colored event icons */
.mktCalendarScroll2940{padding:0;overflow-x:auto;overflow-y:visible}.mktWeek2940,.mktCalendar2940{min-width:770px;gap:0;grid-template-columns:repeat(7,minmax(0,1fr))}.mktWeek2940{border-bottom:1px solid var(--line)}.mktWeek2940 b{padding:13px 5px;background:var(--card2);border-right:1px solid var(--line)}.mktDay2940{min-height:125px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:var(--card);padding:8px;position:relative;overflow:visible}.mktDay2940.is-empty{opacity:.4;background:var(--card2)}.mktDay2940.is-today{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.mktDay2940 header{margin-bottom:8px}.mktDay2940 header b{font-size:13px}.mktDay2940 header button{border-radius:50%;width:26px;height:26px;padding:0;opacity:.25}.mktDay2940:hover header button,.mktDay2940 header button:focus-visible{opacity:1}.mktDayItems2954{display:flex;flex-wrap:wrap;align-content:start;gap:5px}.mktEvent2954{position:relative;display:inline-flex;justify-content:center;align-items:center;width:30px;height:30px;min-width:30px;padding:0;border-radius:9px;border:1px solid color-mix(in srgb,var(--event-color) 55%,transparent);background:color-mix(in srgb,var(--event-color) 16%,var(--card));color:var(--event-color);font-size:17px;font-weight:800;cursor:pointer;transition:transform .15s,background .15s}.mktEvent2954:hover,.mktEvent2954:focus-visible{transform:translateY(-2px);background:color-mix(in srgb,var(--event-color) 28%,var(--card));z-index:10}.mktEventTip2954{pointer-events:none;visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 9px);left:0;z-index:100;width:230px;padding:12px 14px;text-align:left;border-radius:12px;background:#172133;color:#fff;border:1px solid #42516a;box-shadow:0 14px 35px #0007;white-space:normal;transition:opacity .12s}.mktEventTip2954 b{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.mktEventTip2954 small{display:block;margin-top:5px;color:#b5c3d7;font-size:11px;line-height:1.4}.mktEvent2954:hover .mktEventTip2954,.mktEvent2954:focus-visible .mktEventTip2954{visibility:visible;opacity:1}.mktDay2940:nth-child(7n) .mktEventTip2954,.mktDay2940:nth-child(7n - 1) .mktEventTip2954{left:auto;right:0}@media(max-width:700px){.mktCalendarTop2940{flex-wrap:wrap;gap:12px}.mktDay2940{min-height:100px}.mktEvent2954{width:28px;height:28px;min-width:28px}}

/* 29.5.5: true week-row calendar, responsive and accessible */
.mktLayout2955{max-width:1900px}
.mktCalendarShell2955{border:1px solid var(--line);border-radius:20px;background:var(--card);overflow:hidden;box-shadow:0 15px 45px #00000012}
.mktCalendarHeader2955{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 25px 17px}
.mktCalendarEyebrow2955{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mktCalendarHeader2955 h2{margin:4px 0 0;font-size:25px;text-transform:capitalize}
.mktCalendarNav2955{display:flex;gap:6px;align-items:center}
.mktCalendarNav2955 button{border:1px solid var(--line);border-radius:10px;min-width:39px;min-height:37px;background:var(--card2);font-size:17px}
.mktLegend2955{display:flex;flex-wrap:wrap;gap:8px 16px;padding:0 25px 18px;font-size:11px;color:var(--muted)}
.mktLegend2955 span{display:inline-flex;align-items:center;gap:6px}
.mktLegend2955 i{display:inline-block;width:8px;height:8px;border-radius:50%}
.mktCalendarScroll2955{overflow-x:auto;overflow-y:visible}
.mktWeekDays2955,.mktWeekRow2955{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:840px}
.mktWeekDays2955{background:var(--card2);border-top:1px solid var(--line)}
.mktWeekDays2955>div{padding:13px 12px;text-align:left;border-right:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted)}
.mktWeekRow2955{border-top:1px solid var(--line)}
.mktDay2955{min-width:0;min-height:155px;padding:9px 8px 12px;border-right:1px solid var(--line);position:relative}
.mktDay2955.is-outside{background:var(--card2);opacity:.55}
.mktDay2955.is-today{background:color-mix(in srgb,var(--accent) 7%,var(--card))}
.mktDate2955{display:flex;align-items:center;gap:5px;min-height:28px;margin-bottom:8px}
.mktDateNumber2955{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-weight:750;font-size:13px}
.is-today .mktDateNumber2955{background:var(--accent);color:#fff}
.mktTodayLabel2955{font-size:10px;color:var(--accent);font-weight:700}
.mktAdd2955{margin-left:auto;border:0;background:transparent;color:var(--muted);font-size:19px;padding:0 5px;opacity:0}
.mktDay2955:hover .mktAdd2955,.mktAdd2955:focus-visible{opacity:1}
.mktEvents2955{display:flex;flex-direction:column;gap:4px}
.mktEntry2955{display:flex;align-items:center;gap:6px;position:relative;width:100%;min-height:29px;padding:4px 6px;text-align:left;border-radius:7px;border:1px solid color-mix(in srgb,var(--event-color) 25%,transparent);background:color-mix(in srgb,var(--event-color) 12%,var(--card));color:var(--event-color);cursor:pointer}
.mktEntry2955:hover,.mktEntry2955:focus-visible{filter:brightness(1.1);outline:1px solid var(--event-color);z-index:4}
.mktEntryIcon2955{flex:0 0 18px;text-align:center;font-size:14px}
.mktEntryText2955{font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.mktEntry2955:hover .mktEventTip2954,.mktEntry2955:focus-visible .mktEventTip2954{visibility:visible;opacity:1}
.mktDay2955:nth-child(n+6) .mktEventTip2954{left:auto;right:0}
@media(max-width:900px){.mktCalendarHeader2955{padding:15px}.mktLegend2955{padding:0 15px 12px}.mktWeekDays2955,.mktWeekRow2955{min-width:770px}.mktDay2955{min-height:130px}.mktAdd2955{opacity:1}}

/* 29.5.6 calendar layout fix: all seven weekdays share a single horizontal row */
.mktCalendarShell2955{width:100%;min-width:0}
.mktCalendarScroll2955{width:100%;overflow-x:auto;overflow-y:visible}
.mktWeekDays2955,.mktWeekRow2955{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:0!important;width:100%;min-width:770px}
.mktWeeks2955{display:block!important;width:100%;min-width:770px}
.mktDay2955{box-sizing:border-box;min-width:0;min-height:110px;max-height:160px;overflow:visible}
.mktEvents2955{max-height:104px;overflow-y:auto;scrollbar-width:thin}
.mktEntry2955{max-width:100%;min-width:0}
@media(min-width:1100px){.mktWeekDays2955,.mktWeekRow2955,.mktWeeks2955{min-width:0}.mktDay2955{min-height:112px;max-height:155px}}
@media(max-width:900px){.mktWeekDays2955,.mktWeekRow2955,.mktWeeks2955{min-width:770px!important}}
