:root { --cal-ink:#30384c; --cal-muted:#667287; --cal-line:#e4e8f0; --cal-purple:#7367f0; --cal-canvas:#f5f6fa; }
html { scroll-behavior:smooth; }
body.calendar-pro { margin:0; color:var(--cal-ink); background:var(--cal-canvas); font-family:"Public Sans","Segoe UI",sans-serif; font-size:1rem; line-height:1.6; }
.calendar-pro * { box-sizing:border-box; }
.calendar-pro a { text-decoration:none; }
.calendar-container { width:calc(100% - 64px); max-width:1440px; margin-inline:auto; }
.calendar-header { background:white; border-bottom:1px solid var(--cal-line); }
.calendar-navbar { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.calendar-brand { display:inline-flex; flex-shrink:0; }
.calendar-brand img { width:188px; height:60px; object-fit:contain; }
.calendar-main-links { display:flex; align-items:center; gap:8px; }
.calendar-main-links a { display:flex; justify-content:center; align-items:center; gap:8px; color:var(--cal-muted); padding:11px 16px; border-radius:8px; font-size:.875rem; font-weight:500; }
.calendar-main-links a:hover,.calendar-main-links .is-current { background:#f0edff; color:#6758d5; }
.calendar-main-links .calendar-apply { color:white; background:var(--cal-purple); margin-left:8px; box-shadow:0 3px 8px #7367f022; }
.calendar-main-links .calendar-apply:hover { color:white; background:#6255d9; }
.calendar-main { padding-top:32px; padding-bottom:38px; }
.calendar-page-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:30px; }
.calendar-kicker { display:block; font-size:.75rem; color:#788197; letter-spacing:.13em; font-weight:650; margin-bottom:7px; }
.calendar-page-heading h1 { font-size:1.875rem; font-weight:650; letter-spacing:-.04em; color:#2f394e; margin:0 0 6px; }
.calendar-page-heading p { margin:0; color:var(--cal-muted); font-size:1rem; }
.calendar-season { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.season-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:#ece8ff; color:#8373e2; }
.season-icon .icon-base { font-size:1.4rem; }
.calendar-season span:not(.season-icon) { font-size:.8125rem; color:var(--cal-muted); display:block; }
.calendar-season strong { display:block; font-size:1.25rem; color:#4a4275; line-height:1.4; letter-spacing:-.02em; }
.calendar-workspace { display:grid; grid-template-columns:250px minmax(0,1fr); gap:26px; align-items:start; }
.calendar-aside { position:sticky; top:24px; }
.calendar-nav-card { background:white; border:1px solid var(--cal-line); border-radius:12px; padding:20px 12px 0; box-shadow:0 3px 14px #28345003; }
.calendar-nav-heading { padding:0 10px 15px; display:flex; justify-content:space-between; align-items:center; color:#7b8496; font-size:.75rem; font-weight:600; letter-spacing:.07em; }
.calendar-total { color:#7b70b5; letter-spacing:0; padding:1px 7px; background:#f1eff9; border-radius:5px; }
.calendar-group-nav { display:grid; gap:7px; }
.calendar-group-link { display:flex; align-items:center; gap:10px; padding:13px 10px; border:1px solid transparent; border-radius:8px; color:var(--cal-muted); }
.calendar-group-link:hover { background:#f7f7fb; color:#5c50bf; }
.calendar-group-link.is-active { background:#f0edff; border-color:#e6e0ff; color:#6554ce; }
.group-nav-icon { display:grid; place-items:center; width:32px; height:36px; color:#8d83b8; flex-shrink:0; }
.group-nav-icon .icon-base { font-size:1.35rem; }
.is-active .group-nav-icon { color:#8875e6; }
.group-nav-text { min-width:0; flex:1; }
.group-nav-text strong { display:block; font-size:.9375rem; font-weight:600; }
.group-nav-text small { display:block; margin-top:1px; color:#7c8396; font-size:.8125rem; font-weight:400; }
.calendar-group-link>.icon-base { font-size:.875rem; opacity:.65; }
.calendar-nav-summary { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:18px 8px 0; padding:17px 0; border-top:1px solid var(--cal-line); font-size:.8125rem; color:#758097; }
.calendar-nav-summary strong { color:#4d596e; font-size:.9375rem; }
.calendar-nav-empty { padding:10px; font-size:.875rem; color:var(--cal-muted); }
.calendar-aside-note { padding:24px 18px; }
.aside-note-icon { display:block; margin-bottom:8px; color:#9688c0; font-size:1.4rem; }
.calendar-aside-note h2 { font-size:.9375rem; color:#617088; margin:0 0 7px; font-weight:550; }
.calendar-aside-note p { color:#7a8497; font-size:.875rem; line-height:1.75; margin:0; }
.calendar-sections { display:grid; gap:26px; min-width:0; }
.calendar-section { background:white; border:1px solid var(--cal-line); border-radius:12px; box-shadow:0 3px 14px #28345003; scroll-margin-top:24px; min-width:0; overflow:hidden; --group-color:#7664cb; --group-tint:#f0ecff; }
.calendar-section.theme-orange { --group-color:#ae783a; --group-tint:#fbf1e5; }
.calendar-section.theme-blue { --group-color:#347fa0; --group-tint:#eaf5fb; }
.calendar-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:26px 26px 24px; }
.calendar-section-title { display:flex; align-items:center; gap:16px; min-width:0; }
.section-index { width:44px; height:48px; display:grid; place-items:center; border-radius:9px; background:var(--group-tint); color:var(--group-color); font-size:1rem; font-weight:550; flex-shrink:0; }
.section-overline { font-size:.75rem; font-weight:600; color:#8991a1; letter-spacing:.09em; }
.calendar-section h2 { margin:3px 0 2px; font-size:1.3125rem; letter-spacing:-.025em; font-weight:650; color:#3d465b; }
.calendar-section-head p { margin:0; color:#7a8497; font-size:.875rem; }
.exam-count { color:#817496; background:#f5f2f8; padding:4px 9px; border-radius:5px; font-size:.8125rem; white-space:nowrap; }
.calendar-table-wrap { min-width:0; }
.calendar-table { width:100%; border-collapse:collapse; table-layout:fixed; margin:0; }
.calendar-table th { background:#f9fafc; color:#7a8497; font-size:.75rem; font-weight:550; padding:13px 14px; border-top:1px solid #edf0f5; border-bottom:1px solid #edf0f5; text-align:left; }
.calendar-table th:nth-child(1) { width:7%; padding-left:26px; }
.calendar-table th:nth-child(2) { width:27%; }
.calendar-table th:nth-child(3) { width:15%; }
.calendar-table th:nth-child(4) { width:31%; }
.calendar-table th:nth-child(5) { width:20%; }
.calendar-table td { border-bottom:1px solid #edf0f5; padding:20px 14px; font-size:.875rem; line-height:1.65; vertical-align:middle; overflow-wrap:anywhere; }
.calendar-table tr:last-child td { border-bottom:0; }
.calendar-table .cell-number { padding-left:26px; color:#9aa1af; font-size:.8125rem; }
.cell-exam strong { display:block; color:#4d5770; font-size:.875rem; line-height:1.65; font-weight:600; }
.calendar-exam:hover { background:#fbfbfe; }
.calendar-exam.is-featured { background:#faf8ff; }
.calendar-exam.is-featured .cell-exam strong { color:#6b58b6; }
.featured-label { display:inline-flex; color:#8878b5; font-size:.75rem; font-weight:450; margin-top:4px; }
.calendar-publisher { display:inline-flex; align-items:center; gap:6px; font-size:.8125rem; font-weight:550; color:#426aa2; white-space:nowrap; }
.calendar-publisher i { width:6px; height:6px; background:#6d91c1; border-radius:50%; flex-shrink:0; }
.calendar-publisher.ekstrem { color:#36856e; }
.calendar-publisher.ekstrem i { background:#5caa8f; }
.exam-date { color:#4a5370; font-size:.9375rem; font-weight:550; }
.is-featured .exam-date { color:#7861c8; }
.cell-scope { color:#7d8696; }
.calendar-group-note { display:flex; align-items:flex-start; gap:10px; background:#fcfcfe; border-top:1px solid #edf0f5; padding:16px 25px; color:#7b8395; }
.calendar-group-note .icon-base { flex-shrink:0; margin-top:3px; color:#a79dbd; font-size:1.1rem; }
.calendar-group-note p { font-size:.8125rem; line-height:1.7; margin:0; }
.calendar-group-empty { padding:28px; border-top:1px solid var(--cal-line); font-size:.9375rem; color:var(--cal-muted); }
.calendar-state { padding:56px 28px; border:1px solid var(--cal-line); border-radius:12px; background:white; text-align:center; }
.calendar-state>.icon-base { font-size:2rem; color:#8f7fdb; display:block; margin-bottom:16px; }
.calendar-state h2 { font-size:1.25rem; margin-bottom:10px; }
.calendar-state p { font-size:1rem; color:var(--cal-muted); }
.calendar-state-link { color:#7367da; }
.calendar-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding:23px 0; border-top:1px solid #dfe4ee; font-size:.8125rem; color:#7c8699; }
.calendar-credit { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.calendar-credit a { color:#7866c6; font-weight:600; }
.calendar-pro a:focus-visible { outline:3px solid #b4a9ec; outline-offset:4px; }
.calendar-skip { position:fixed; top:-100px; left:20px; z-index:30; padding:12px 20px; background:white; color:#5647b6; border-radius:8px; }
.calendar-skip:focus { top:12px; }
@media(max-width:1200px) { .calendar-workspace { grid-template-columns:220px minmax(0,1fr); gap:20px; } .calendar-table td,.calendar-table th { padding-inline:10px; } .calendar-table .cell-number,.calendar-table th:first-child { padding-left:18px; } .calendar-section-head { padding:22px 20px; } .calendar-section-title { gap:12px; } }
@media(max-width:1050px) { .calendar-container { width:calc(100% - 40px); } .calendar-workspace { grid-template-columns:1fr; } .calendar-aside { position:static; } .calendar-nav-card { padding:14px; } .calendar-nav-heading { padding:0 4px 10px; } .calendar-group-nav { grid-template-columns:repeat(3,minmax(0,1fr)); } .calendar-group-link { padding:10px; } .calendar-nav-summary,.calendar-aside-note { display:none; } .calendar-sections { gap:22px; } }
@media(max-width:700px) { .calendar-container { width:calc(100% - 32px); } .calendar-navbar { flex-wrap:wrap; gap:8px; padding-block:12px; } .calendar-brand img { width:160px; height:48px; } .calendar-main-links { width:100%; display:grid; grid-template-columns:1.5fr .8fr 1fr; gap:4px; } .calendar-main-links a { padding:10px 6px; margin:0!important; } .calendar-main-links .icon-base { display:none; } .calendar-main { padding-top:24px; } .calendar-page-heading { align-items:flex-start; gap:18px; margin-bottom:22px; } .calendar-page-heading h1 { font-size:1.625rem; } .calendar-page-heading p { font-size:.9375rem; } .calendar-season { gap:0; } .season-icon { display:none; } .calendar-season strong { font-size:1rem; } .calendar-season span:not(.season-icon) { max-width:90px; font-size:.75rem; } .calendar-group-nav { grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); } .group-nav-icon,.calendar-group-link>.icon-base { display:none; } .group-nav-text strong { font-size:.875rem; } .calendar-section-head { padding:20px 18px; align-items:flex-start; } .section-index { width:34px; height:40px; font-size:.875rem; } .calendar-section h2 { font-size:1.125rem; } .section-overline { font-size:.75rem; } .exam-count { padding:3px 7px; font-size:.75rem; } .calendar-table,.calendar-table tbody { display:block; } .calendar-table thead { display:none; } .calendar-table tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px 20px; padding:20px 18px; border-top:1px solid #e9edf4; } .calendar-table td { display:block; padding:0; border:0; min-width:0; } .calendar-table .cell-number { display:none; } .calendar-table .cell-exam { grid-column:1/-1; } .cell-exam strong { font-size:1rem; } .calendar-table .cell-date { grid-column:1/-1; order:1; background:#f7f6fb; padding:11px 13px; border-radius:7px; } .calendar-table .cell-publisher { order:2; } .calendar-table .cell-scope { order:3; } .calendar-table [data-label]::before { content:attr(data-label); display:block; font-size:.8125rem; font-weight:400; color:#81889a; margin-bottom:3px; } .calendar-publisher { font-size:.875rem; } .exam-date { font-size:1rem; } .calendar-group-note { padding:16px 18px; } .calendar-footer { justify-content:center; text-align:center; } }
@media(max-width:400px) { .calendar-page-heading { flex-wrap:wrap; gap:14px; } .calendar-season div { display:flex; align-items:center; gap:10px; } .calendar-season span:not(.season-icon) { max-width:none; } .calendar-group-nav { grid-template-columns:1fr; } .calendar-group-link { padding:8px 10px; } .group-nav-text { display:flex; align-items:center; justify-content:space-between; gap:8px; } .calendar-group-link>.icon-base { display:block; } .calendar-section-title { gap:10px; } .calendar-section-head p { font-size:.8125rem; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .calendar-header,.calendar-aside,.calendar-footer,.calendar-skip { display:none!important; } body.calendar-pro { background:white; color:#111; } .calendar-container { width:100%; max-width:none; } .calendar-workspace { display:block; } .calendar-page-heading { margin-bottom:20px; } .calendar-section { border-color:#ccc; box-shadow:none; margin-bottom:18px; break-inside:auto; } .calendar-section-head { break-after:avoid; } .calendar-table tr { break-inside:avoid; } .calendar-table thead { display:table-header-group; } .calendar-table { display:table; } .calendar-table tbody { display:table-row-group; } .calendar-table tr { display:table-row; } .calendar-table td { display:table-cell!important; padding:10px; } .calendar-table [data-label]::before { display:none; } }

.calendar-table th{font-size:.875rem}.calendar-group-note p,.calendar-publisher{font-size:.875rem}.calendar-table [data-label]::before{font-size:.875rem}.calendar-section-head p,.cell-scope,.calendar-aside-note p{color:#68758a}
