.public-schedule { max-width:1280px; margin:24px auto 64px; color:var(--text-primary); }
.public-heading { margin-bottom:28px; }
.public-heading h1 { font-size:clamp(28px,4vw,42px); margin:8px 0; }
.public-eyebrow { color:var(--gold-light); font-size:12px; font-weight:700; letter-spacing:.14em; }
.public-heading p, .public-note { color:var(--text-secondary); }
.public-search, .public-selected { padding:24px; border:1px solid var(--border); border-radius:20px; background:var(--surface); margin:20px 0; }
.public-search>label { font-weight:700; margin-bottom:10px; }
.public-search>input { font-size:18px; padding:14px; }
.public-search>p { color:var(--text-secondary); margin:10px 0 20px; }
.public-filters { display:grid; grid-template-columns:1.2fr 1fr 1.2fr 2fr; gap:14px; }
.public-filters label { font-size:14px; font-weight:600; min-width:0; }
.public-filters select { margin-top:6px; }
.public-search #clear-filters { color:var(--gold-light); text-decoration:none; }
.public-search #clear-filters:hover { color:var(--gold); text-decoration:underline; }
.public-search #clear-filters:focus-visible { color:var(--gold-light); outline:2px solid var(--gold); outline-offset:2px; box-shadow:none; }
.public-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.public-group { display:flex; flex-direction:column; gap:8px; border:1px solid var(--border); border-top:3px solid var(--gold); border-radius:14px; background:var(--surface); padding:22px; text-decoration:none; color:var(--text-primary); overflow-wrap:anywhere; }
.public-group strong { font-size:21px; color:var(--gold-light); }
.public-group:hover, .public-group:focus-visible { border-color:var(--gold); background:var(--surface-hover); color:var(--text-primary); }
.public-group-meta, .public-group small { color:var(--text-secondary); }
.public-schedule [hidden] { display:none!important; }
.public-empty { padding:30px; background:var(--surface); border-radius:16px; }
.public-selected h2 { font-size:30px; color:var(--gold-light); overflow-wrap:anywhere; }
.public-selected p { margin-bottom:8px; }
.public-selected small { color:var(--text-secondary); }
.public-back { display:inline-block; margin-bottom:4px; }
.public-weeks { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:20px 0 16px; }
.public-current-week { margin:24px 0 16px; }
.public-current-week h2 { margin:0 0 6px; font-size:22px; color:var(--gold-light); }
.public-current-week p { margin:0; color:var(--text-secondary); }
.public-week-picker { border:1px solid var(--border); border-radius:14px; background:var(--surface); }
.public-week-picker summary { padding:14px 16px; cursor:pointer; color:var(--gold-light); font-weight:700; border-radius:14px; }
.public-week-picker summary:hover { background:var(--surface-hover); }
.public-week-picker summary:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.public-week-picker .public-week-grid { padding:0 12px 12px; }
.public-week-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; }
.public-week { border:1px solid var(--bronze); border-radius:11px; padding:10px 8px; text-align:center; color:var(--gold-light); background:var(--surface); text-decoration:none; display:flex; flex-direction:column; gap:4px; font-size:13px; }
.public-week span { font-size:12px; color:var(--text-secondary); font-weight:600; }
.public-week-selected { background:#086bfa; color:#ffe293; border-color:#438fff; }
.public-week-selected span { color:#e1edff; }
.public-week:hover, .public-week:focus-visible { outline:2px solid var(--gold); outline-offset:1px; color:var(--gold-light); }
.public-days { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.public-day { border:1px solid var(--border); border-radius:16px; background:var(--surface); overflow:hidden; }
.public-day h3 { font-size:19px; background:var(--surface-raised); color:var(--gold-light); padding:16px 20px; margin:0; }
.public-day h3 small { float:right; font-size:14px; }
.public-lesson { display:grid; grid-template-columns:92px minmax(0,1fr); gap:14px; padding:18px 20px; border-top:1px solid var(--border); }
.public-time { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--text-secondary); }
.public-time strong { font-size:15px; color:var(--gold-light); }
.public-lesson p { white-space:pre-line; margin:6px 0; overflow-wrap:anywhere; line-height:1.55; }
.public-type { font-size:12px; font-weight:700; color:var(--gold-light); background:var(--surface-soft); padding:3px 8px; border-radius:6px; }
.public-dates { display:block; margin-top:10px; }
.public-day-empty { padding:20px; margin:0; color:var(--text-secondary); }
@media(max-width:900px) { .public-filters,.public-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
    .public-schedule { margin-top:16px; }
    .public-filters,.public-groups,.public-days { grid-template-columns:1fr; }
    .public-search,.public-selected { padding:18px; }
    .public-lesson { grid-template-columns:76px minmax(0,1fr); padding:16px 14px; gap:10px; }
}
@media(max-width:400px) { .public-week-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print {
    .app-header,.app-footer,.public-back,.public-weeks,.public-week-picker { display:none; }
    .public-days { display:block; }
    .public-day { break-inside:avoid; margin-bottom:16px; }
}
