
:root {
  --primary: #256f74;
  --primary-rgb: 37, 111, 116;
  --secondary: #9fcac5;
  --secondary-rgb: 159, 202, 197;
  --accent: #c99c68;
  --accent-rgb: 201, 156, 104;
  --design-line: #bfd2cf;
  --paper-tint: #fbfdfc;
  --texture-intensity: .35;
  --ink: #1f2933;
  --muted: #6b7680;
  --line: #dfe6e7;
  --soft: #f4f8f8;
  --paper: #ffffff;
  --danger: #a13b42;
  --sidebar: #153d42;
  --shadow: 0 14px 40px rgba(25, 55, 60, .10);
  --radius: 20px;
  --bg-intensity: .28;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #edf3f3; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: radial-gradient(circle at 80% 0%, rgba(var(--primary-rgb), .10), transparent 32%), #edf3f3; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 282px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 18px; display: flex; flex-direction: column; color: #effcfc; background: linear-gradient(180deg, #153d42 0%, #102f33 100%); overflow-y: auto; }
.brand { display: flex; align-items: center; gap: 12px; padding: 4px 8px 24px; }
.brand-mark { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; background: rgba(255,255,255,.12); font-family: Georgia, serif; font-size: 20px; }
.brand strong, .brand span { display: block; }
.brand strong { font-family: Georgia, serif; font-size: 19px; }
.brand span { color: rgba(239,252,252,.65); font-size: 12px; margin-top: 3px; }
.nav-list { display: grid; gap: 6px; }
.nav-item { width: 100%; border: 0; border-radius: 13px; padding: 12px 14px; display: flex; align-items: center; gap: 12px; color: rgba(239,252,252,.75); background: transparent; text-align: left; transition: .2s ease; }
.nav-item span { width: 24px; text-align: center; font-size: 18px; }
.nav-item:hover, .nav-item.active { color: white; background: rgba(255,255,255,.11); transform: translateX(2px); }
.sidebar-footer { margin-top: auto; padding: 20px 4px 4px; }
.save-state { display: flex; align-items: center; gap: 8px; margin: 0 4px 12px; color: rgba(239,252,252,.7); font-size: 12px; }
.save-dot { width: 8px; height: 8px; border-radius: 50%; background: #77d2a7; box-shadow: 0 0 0 4px rgba(119,210,167,.10); }
.save-dot.saving { background: #f0bd62; }

.main-area { min-width: 0; padding: 0 34px 60px; }
.topbar { min-height: 104px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid rgba(50,80,85,.10); }
.topbar h1 { margin: 3px 0 0; font-family: Georgia, serif; font-weight: 500; font-size: 31px; }
.eyebrow, .section-kicker { margin: 0; color: var(--primary); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.top-actions { display: flex; gap: 10px; }
.view { display: none; padding-top: 28px; }
.active-view { display: block; animation: viewIn .22s ease; }
@keyframes viewIn { from { opacity: .2; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.btn { border: 1px solid transparent; border-radius: 11px; padding: 10px 16px; font-weight: 750; transition: .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: white; background: var(--primary); box-shadow: 0 8px 18px rgba(var(--primary-rgb), .20); }
.btn-secondary { color: var(--primary); border-color: rgba(var(--primary-rgb), .25); background: rgba(var(--primary-rgb), .07); }
.btn-ghost { color: var(--ink); border-color: var(--line); background: rgba(255,255,255,.7); }
.btn-danger { color: white; background: var(--danger); }
.btn-small { padding: 8px 11px; font-size: 13px; }
.btn-block { width: 100%; }

.hero-card { position: relative; min-height: 310px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); overflow: hidden; padding: 40px; border: 1px solid rgba(var(--primary-rgb), .12); border-radius: 28px; background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,251,251,.92)); box-shadow: var(--shadow); }
.hero-card h2 { max-width: 680px; margin: 18px 0 14px; font-family: Georgia, serif; font-size: clamp(32px, 4vw, 53px); font-weight: 500; line-height: 1.04; }
.hero-card p { max-width: 700px; color: var(--muted); line-height: 1.65; }
.chip { display: inline-flex; border-radius: 999px; padding: 7px 10px; color: var(--primary); background: rgba(var(--primary-rgb), .08); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.hero-art { position: relative; min-height: 220px; }
.watercolor-circle { position: absolute; width: 290px; height: 290px; right: 5%; top: 0; border-radius: 46% 54% 57% 43% / 40% 45% 55% 60%; background: radial-gradient(circle at 45% 38%, rgba(255,255,255,.7), transparent 23%), linear-gradient(145deg, rgba(var(--primary-rgb), var(--bg-intensity)), rgba(var(--primary-rgb), .05)); filter: blur(.2px); transform: rotate(-8deg); }
.tree { position: absolute; bottom: 18px; width: 0; height: 0; border-left: 42px solid transparent; border-right: 42px solid transparent; border-bottom: 132px solid rgba(28,79,83,.75); filter: drop-shadow(0 8px 15px rgba(20,50,55,.18)); }
.tree::after { content: ""; position: absolute; width: 9px; height: 48px; top: 126px; left: -4px; background: rgba(71,58,43,.75); }
.t1 { right: 125px; transform: scale(.85); }
.t2 { right: 50px; bottom: 7px; transform: scale(1.15); }
.t3 { right: 205px; bottom: 6px; transform: scale(.62); opacity: .65; }

.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.stat-card { display: flex; align-items: center; gap: 14px; padding: 20px; border: 1px solid rgba(35,65,70,.09); border-radius: 17px; background: rgba(255,255,255,.84); box-shadow: 0 8px 25px rgba(30,60,65,.05); }
.stat-card strong, .stat-card span { display: block; }
.stat-card strong { font-size: 26px; }
.stat-card div span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.stat-icon { width: 42px; height: 42px; display: grid !important; place-items: center; border-radius: 13px; color: var(--primary); background: rgba(var(--primary-rgb), .09); font-size: 20px; }
.dashboard-grid { display: grid; grid-template-columns: 1.45fr .75fr; gap: 18px; margin-top: 18px; }
.panel { padding: 24px; border: 1px solid rgba(35,65,70,.10); border-radius: var(--radius); background: rgba(255,255,255,.88); box-shadow: 0 10px 28px rgba(30,60,65,.05); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-heading h3 { margin: 5px 0 0; font-family: Georgia, serif; font-size: 22px; font-weight: 500; }
.setup-list { display: grid; gap: 10px; }
.setup-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px dashed var(--line); }
.setup-item:last-child { border-bottom: 0; }
.setup-label { display: flex; align-items: center; gap: 10px; }
.setup-check { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--primary); font-size: 12px; }
.setup-check.pending { color: var(--muted); background: #edf1f1; }
.setup-item button { border: 0; color: var(--primary); background: transparent; font-weight: 700; }
.quote-panel { min-height: 260px; display: flex; flex-direction: column; justify-content: center; background: linear-gradient(145deg, rgba(var(--primary-rgb), .09), rgba(255,255,255,.95)); }
.quote-mark { color: rgba(var(--primary-rgb), .25); font-family: Georgia, serif; font-size: 70px; line-height: .6; }
.quote-panel blockquote { margin: 18px 0 12px; font-family: Georgia, serif; font-size: 23px; line-height: 1.45; }
.quote-panel cite { color: var(--muted); font-size: 13px; }
.quote-panel .btn { align-self: flex-start; margin-top: 20px; }

.section-intro { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.section-intro h2 { margin: 5px 0 8px; font-family: Georgia, serif; font-size: 34px; font-weight: 500; }
.section-intro p { max-width: 780px; margin: 0; color: var(--muted); line-height: 1.6; }
.form-grid { display: grid; gap: 18px; padding: 26px; border: 1px solid rgba(35,65,70,.10); border-radius: var(--radius); background: rgba(255,255,255,.88); }
.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three-col { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.span-2 { grid-column: span 2; }
.span-3 { grid-column: span 3; }
.field { display: grid; gap: 8px; }
.field > span, .check-field span { font-size: 13px; font-weight: 750; }
.field input, .field select, .field textarea, .table-input { width: 100%; border: 1px solid #ccd7d8; border-radius: 10px; padding: 11px 12px; color: var(--ink); background: white; outline: none; }
.field input:focus, .field select:focus, .field textarea:focus, .table-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .10); }
.field textarea { resize: vertical; }
.check-field { display: flex; align-items: center; gap: 10px; padding: 9px 0; }
.check-field input { width: 18px; height: 18px; accent-color: var(--primary); }
.align-end { align-items: end; padding-bottom: 12px; }
.form-actions { display: flex; justify-content: flex-end; margin-top: 18px; }
.compact-form { padding: 20px; }
.top-gap { margin-top: 18px; }
.color-input-wrap { display: grid; grid-template-columns: 54px 1fr; gap: 8px; }
.color-input-wrap input[type="color"] { min-height: 44px; padding: 4px; }

.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 10px 9px; color: var(--muted); border-bottom: 1px solid var(--line); text-align: left; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.data-table td { min-width: 110px; padding: 8px 9px; border-bottom: 1px solid #edf0f0; }
.data-table td:first-child, .data-table td:last-child { min-width: auto; width: 48px; text-align: center; }
.data-table input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--primary); }
.table-input { min-width: 130px; padding: 9px 10px; border-radius: 8px; }
.icon-btn { width: 33px; height: 33px; border: 1px solid #e1d6d7; border-radius: 9px; color: var(--danger); background: #fff9f9; font-size: 19px; }
.empty-state { display: grid; place-items: center; gap: 5px; min-height: 150px; color: var(--muted); text-align: center; }
.empty-state strong { color: var(--ink); }

.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 15px; }
.module-card { display: grid; gap: 14px; padding: 20px; border: 1px solid rgba(35,65,70,.10); border-radius: 17px; background: rgba(255,255,255,.88); transition: .18s ease; }
.module-card:has(input:checked) { border-color: rgba(var(--primary-rgb), .35); box-shadow: 0 8px 24px rgba(var(--primary-rgb), .08); }
.module-top { display: flex; align-items: flex-start; gap: 12px; }
.module-icon { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: 12px; color: var(--primary); background: rgba(var(--primary-rgb), .08); font-size: 18px; }
.module-card h3 { margin: 1px 0 5px; font-size: 16px; }
.module-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.module-controls { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.switch { position: relative; width: 44px; height: 25px; display: inline-block; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch span { position: absolute; inset: 0; border-radius: 99px; background: #ccd6d6; transition: .2s; }
.switch span::before { content: ""; position: absolute; width: 19px; height: 19px; left: 3px; top: 3px; border-radius: 50%; background: white; box-shadow: 0 2px 5px rgba(0,0,0,.18); transition: .2s; }
.switch input:checked + span { background: var(--primary); }
.switch input:checked + span::before { transform: translateX(19px); }
.copy-control { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; }
.copy-control input { width: 62px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 7px; }

.theme-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 15px; }
.theme-card { position: relative; min-height: 180px; overflow: hidden; border: 2px solid transparent; border-radius: 18px; background: white; box-shadow: 0 7px 24px rgba(30,60,65,.07); transition: .2s; }
.theme-card:hover { transform: translateY(-2px); }
.theme-card.selected { border-color: var(--primary); }
.theme-swatch { height: 125px; background: var(--theme-bg); }
.theme-swatch::after { content: ""; display: block; width: 100%; height: 100%; background: var(--theme-pattern); opacity: .78; }
.theme-card strong { display: block; padding: 13px 14px 3px; }
.theme-card span { display: block; padding: 0 14px 14px; color: var(--muted); font-size: 11px; }

.action-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.action-card { padding: 22px; border: 1px solid rgba(35,65,70,.10); border-radius: 18px; background: rgba(255,255,255,.88); }
.action-card h3 { margin: 14px 0 8px; }
.action-card p { min-height: 64px; margin: 0 0 18px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.action-icon { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 13px; color: var(--primary); background: rgba(var(--primary-rgb), .08); font-size: 23px; }
.danger-card { border-color: rgba(161,59,66,.18); }
.danger-card .action-icon { color: var(--danger); background: rgba(161,59,66,.07); }
.info-list { margin: 0; }
.info-list > div { display: grid; grid-template-columns: minmax(180px, .7fr) 1.3fr; gap: 20px; padding: 12px 0; border-bottom: 1px dashed var(--line); }
.info-list > div:last-child { border-bottom: 0; }
.info-list dt { color: var(--muted); }
.info-list dd { margin: 0; font-weight: 700; }

.print-preview { display: grid; justify-content: center; gap: 28px; padding: 28px; border: 1px solid rgba(35,65,70,.10); border-radius: var(--radius); background: #dfe6e6; overflow: auto; }
.mini-preview { min-height: 500px; }
.print-page { position: relative; width: 210mm; height: 297mm; min-height: 297mm; padding: 16mm; overflow: hidden; color: #222; background: white; box-shadow: 0 12px 35px rgba(30,55,60,.18); page-break-after: always; }
.print-page.landscape { width: 297mm; height: 210mm; min-height: 210mm; }
.page-watermark { position: absolute; inset: auto -35mm -25mm auto; width: 115mm; height: 115mm; border-radius: 45% 55% 48% 52%; background: rgba(var(--primary-rgb), calc(var(--bg-intensity) * .45)); transform: rotate(-12deg); }
.page-header { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 8mm; border-bottom: 1px solid rgba(var(--primary-rgb), .25); }
.page-header h2 { margin: 0; color: var(--primary); font-family: Georgia, serif; font-size: 24pt; font-weight: 500; }
.page-header p { margin: 2mm 0 0; color: #687477; font-size: 9pt; }
.page-chip { border-radius: 99px; padding: 2.3mm 4mm; color: var(--primary); background: rgba(var(--primary-rgb), .08); font-size: 8pt; font-weight: 700; }
.cover-page { display: grid; place-items: center; text-align: center; }
.cover-frame { position: relative; z-index: 1; width: 100%; min-height: 240mm; display: grid; place-items: center; padding: 20mm; border: 1px solid rgba(var(--primary-rgb), .28); }
.cover-frame::before, .cover-frame::after { content: ""; position: absolute; width: 60mm; height: 60mm; border-radius: 50%; background: rgba(var(--primary-rgb), .10); filter: blur(1px); }
.cover-frame::before { left: -22mm; top: 9mm; }
.cover-frame::after { right: -20mm; bottom: 15mm; }
.cover-content { position: relative; z-index: 2; }
.cover-content h1 { margin: 0 0 7mm; color: var(--primary); font-family: Georgia, serif; font-size: 34pt; font-weight: 500; }
.cover-content .cover-year { font-size: 17pt; letter-spacing: .08em; }
.cover-content .cover-person { margin-top: 25mm; font-size: 12pt; }
.cover-content blockquote { max-width: 130mm; margin: 17mm auto 0; color: #596568; font-family: Georgia, serif; font-size: 13pt; font-style: italic; line-height: 1.5; }
.prep-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4mm; margin: 7mm 0; }
.prep-summary-card { padding: 4mm; border: 1px solid #cfd8d8; border-radius: 3mm; }
.prep-summary-card strong { display: block; font-size: 10pt; }
.prep-summary-card span { color: #677274; font-size: 8pt; }
.prep-sheet { margin-top: 7mm; }
.prep-sheet-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10mm; margin-bottom: 3mm; }
.prep-sheet-title h3 { margin: 0; font-size: 12pt; }
.prep-sheet-title span { color: #657174; font-size: 8pt; }
.prep-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 7.5pt; }
.prep-table th, .prep-table td { border: 1px solid #bdc8c9; padding: 2.3mm; vertical-align: top; }
.prep-table th { color: var(--primary); background: rgba(var(--primary-rgb), .07); font-weight: 800; }
.prep-table td { height: 12mm; }
.prep-table .meta-col { width: 26mm; font-weight: 700; background: #f8fafa; }
.prep-table.compact td { height: 8mm; }
.prep-footer { position: absolute; bottom: 8mm; left: 16mm; right: 16mm; display: flex; justify-content: space-between; color: #879193; font-size: 7pt; }


.automatic-count { color: var(--primary); font-size: 11px; font-weight: 750; }
.planner-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.planner-setting-card { padding: 22px; }
.embedded-form { padding: 0; border: 0; border-radius: 0; background: transparent; }
.planner-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.planner-stats article { display: flex; align-items: center; gap: 12px; padding: 15px 17px; border: 1px solid rgba(35,65,70,.10); border-radius: 15px; background: rgba(255,255,255,.85); }
.planner-stats article > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 11px; color: var(--primary); background: rgba(var(--primary-rgb),.08); }
.planner-stats strong, .planner-stats small { display: block; }
.planner-stats strong { font-size: 21px; }
.planner-stats small { color: var(--muted); }
.planner-mini-preview { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; justify-items: center; }
.planner-mini-preview .print-page { zoom: .43; }
.empty-preview { min-height: 300px; display: grid; place-content: center; gap: 6px; color: var(--muted); text-align: center; }

@page plannerA4Portrait { size: A4 portrait; margin: 0; }
@page plannerA4Landscape { size: A4 landscape; margin: 0; }
@page plannerA5Portrait { size: A5 portrait; margin: 0; }
@page plannerA5Landscape { size: A5 landscape; margin: 0; }
.print-page.paper-a4 { page: plannerA4Portrait; }
.print-page.paper-a4.landscape { page: plannerA4Landscape; }
.print-page.paper-a5 { page: plannerA5Portrait; width: 148mm; height: 210mm; min-height: 210mm; padding: 10mm; }
.print-page.paper-a5.landscape { page: plannerA5Landscape; width: 210mm; height: 148mm; min-height: 148mm; padding: 9mm; }
.print-page.paper-a5 .page-header { padding-bottom: 5mm; }
.print-page.paper-a5 .page-header h2 { font-size: 19pt; }
.print-page.paper-a5 .prep-footer { left: 10mm; right: 10mm; bottom: 5mm; }
.print-page.paper-a5 .page-watermark { width: 75mm; height: 75mm; }
.print-page.paper-a5 .cover-frame { min-height: 180mm; padding: 10mm; }
.print-page.paper-a5 .cover-content h1 { font-size: 25pt; }
.print-page.paper-a5 .cover-content .cover-person { margin-top: 13mm; }
.print-page.paper-a5 .cover-content blockquote { margin-top: 9mm; font-size: 10pt; }

.month-page { display: flex; flex-direction: column; }
.mini-months { display: flex; gap: 4mm; }
.mini-month { width: 31mm; color: #5e696b; font-size: 5.7pt; }
.mini-month strong { display: block; margin-bottom: 1mm; text-align: center; }
.mini-weekdays { word-spacing: 1.15mm; font-weight: 700; white-space: nowrap; }
.mini-days { display: grid; grid-template-columns: repeat(7,1fr); gap: .5mm; text-align: center; }
.mini-days .muted { color: #c3c8c9; }
.month-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) 48mm; gap: 6mm; flex: 1; margin-top: 6mm; min-height: 0; }
.month-layout.spread-calendar { display: block; }
.month-calendar { display: flex; flex-direction: column; min-width: 0; }
.month-weekdays { display: grid; grid-template-columns: repeat(7,1fr); color: var(--primary); background: rgba(var(--primary-rgb),.07); border: 1px solid #bac6c7; border-bottom: 0; font-size: 7.5pt; font-weight: 800; text-align: center; }
.month-weekdays span { padding: 2.2mm 1mm; border-right: 1px solid #c7d0d1; }
.month-weekdays span:last-child { border-right: 0; }
.month-grid { display: grid; grid-template-columns: repeat(7,1fr); grid-template-rows: repeat(6,minmax(0,1fr)); flex: 1; min-height: 135mm; border-left: 1px solid #bac6c7; border-top: 1px solid #bac6c7; }
.month-layout.spread-calendar .month-grid { min-height: 210mm; }
.month-day { position: relative; min-width: 0; padding: 2mm; border-right: 1px solid #bac6c7; border-bottom: 1px solid #bac6c7; background: rgba(255,255,255,.78); overflow: hidden; }
.month-day > strong { display: block; color: #3f4b4d; font-size: 8pt; }
.month-day.weekend { background: rgba(var(--primary-rgb),.035); }
.month-day.outside, .month-day.outside-period { color: #aeb6b7; background: #f8f9f9; }
.month-day.outside > strong, .month-day.outside-period > strong { color: #adb5b6; }
.month-events { display: grid; gap: .8mm; margin-top: 1mm; }
.calendar-event, .day-event { display: block; overflow: hidden; border-left: 1.3mm solid var(--primary); border-radius: 1mm; padding: .7mm 1mm; color: #3f4a4c; background: rgba(var(--primary-rgb),.08); font-size: 5.6pt; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.event-holiday { border-color: #3c9c6c; background: rgba(60,156,108,.10); }
.event-public { border-color: #d65b66; background: rgba(214,91,102,.10); }
.event-school { border-color: #d5a238; background: rgba(213,162,56,.12); }
.event-director { border-color: #9565b5; background: rgba(149,101,181,.10); }
.event-other { border-color: #5c83ac; background: rgba(92,131,172,.10); }
.event-more { color: #7a8587; font-size: 5.5pt; }
.write-lines { position: absolute; inset: auto 2mm 1.5mm; height: 6mm; background: repeating-linear-gradient(to bottom,transparent 0 2.7mm,rgba(110,125,128,.20) 2.7mm 2.9mm); }
.month-compact .month-grid { min-height: 125mm; }
.month-compact .write-lines { display: none; }
.month-sidebar { display: grid; align-content: start; gap: 4mm; }
.month-page > .page-watermark { display: none; }
.month-page,.month-planning-page { isolation:isolate; }
.month-coloring-art {
  position:absolute!important;
  right:17mm!important;
  bottom:18mm!important;
  width:36mm!important;
  height:36mm!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  z-index:1;
  display:grid;
  place-items:end center;
  pointer-events:none;
  overflow:hidden;
  contain:layout paint;
  line-height:0;
}
.month-coloring-art img {
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  object-fit:contain;
  object-position:center bottom;
  opacity:.92;
  filter:grayscale(1) contrast(1.08);
}
.month-page .page-header,
.month-page .month-layout,
.month-planning-page .page-header,
.month-planning-page .month-planning-grid { position:relative; z-index:2; }
.month-page .month-layout { overflow:hidden; }
.month-page .month-calendar,
.month-page .month-sidebar { min-height:0; overflow:hidden; }
.month-page .prep-footer,
.month-planning-page .prep-footer { position:absolute!important; z-index:4; }
.print-page.paper-a5.month-page .month-coloring-art,
.print-page.paper-a5.month-planning-page .month-coloring-art {
  right:9mm!important;
  bottom:11mm!important;
  width:27mm!important;
  height:27mm!important;
}
body[data-print-mode="economy"] .month-coloring-art img { opacity:.78; }
body[data-print-mode="mono"] .month-coloring-art img { opacity:.96; filter:grayscale(1) contrast(1.14); }
body[data-decoration="none"] .month-coloring-art,
body[data-month-coloring="off"] .month-coloring-art { display:none!important; }
@media print {
  .month-coloring-art {
    position:absolute!important;
    margin:0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .month-coloring-art img { -webkit-print-color-adjust:exact!important; print-color-adjust:exact!important; }
  .month-page .prep-footer,
  .month-planning-page .prep-footer {
    position:absolute!important;
    left:16mm!important;
    right:16mm!important;
    bottom:7.2mm!important;
  }
  .print-page.paper-a5.month-page .prep-footer,
  .print-page.paper-a5.month-planning-page .prep-footer {
    left:8mm!important;
    right:8mm!important;
    bottom:4.7mm!important;
  }
}

.preview-performance-bar{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  margin:0 auto 14px;max-width:1100px;padding:12px 14px;border:1px solid rgba(35,65,70,.10);
  border-radius:14px;background:rgba(255,255,255,.86)
}
.preview-performance-bar .preview-status{display:grid;gap:2px;color:var(--muted);font-size:12px}
.preview-performance-bar .preview-status strong{color:var(--ink);font-size:13px}
.preview-performance-actions{display:flex;gap:8px;flex-wrap:wrap}
.preview-performance-note{max-width:1100px;margin:0 auto 14px;color:var(--muted);font-size:11px}
.preview-loading{min-height:180px;display:grid;place-items:center;color:var(--muted);text-align:center}
.page-map-placeholder{grid-column:1/-1;min-height:150px;display:grid;place-items:center;align-content:center;gap:8px;padding:24px;text-align:center;color:var(--muted);border:1px dashed rgba(35,65,70,.18);border-radius:14px;background:rgba(255,255,255,.72)}
.page-map-placeholder strong{color:var(--ink);font-size:14px}
.page-map-placeholder span{max-width:560px;font-size:12px;line-height:1.5}
.planner-box { position: relative; z-index: 1; padding: 4mm; border: 1px solid #c8d1d2; border-radius: 2.5mm; background: rgba(255,255,255,.83); overflow: hidden; }
.planner-box h3 { margin: 0 0 3mm; color: var(--primary); font-family: Georgia,serif; font-size: 10pt; font-weight: 500; }
.blank-lines { display: grid; gap: 3.5mm; }
.blank-lines span { display: block; height: 1px; border-bottom: 1px solid #d1d8d9; }
.check-lines { display: grid; gap: 3.2mm; }
.check-lines span { display: block; height: 4mm; border-bottom: 1px solid #d5dcdd; }
.check-lines i { display: inline-block; width: 3.2mm; height: 3.2mm; margin-right: 2mm; border: 1px solid #aebabb; border-radius: .7mm; vertical-align: top; }
.event-list-row { display: grid; grid-template-columns: 17mm 1fr; gap: 2mm; padding: 1.5mm 0; border-bottom: 1px dotted #d2d9da; font-size: 6.5pt; }
.event-list-row span { color: #788486; }
.event-list-row strong { font-weight: 600; }
.month-planning-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,1fr); gap: 5mm; margin-top: 7mm; }
.month-planning-grid .tall { min-height: 58mm; }
.month-planning-grid .span-2 { grid-column: span 2; }
.month-planning-grid .notes-large { min-height: 55mm; }
.event-planning-table { width: 100%; border-collapse: collapse; font-size: 7pt; }
.event-planning-table th, .event-planning-table td { height: 8mm; padding: 1.5mm; border: 1px solid #c7d0d1; text-align: left; }
.event-planning-table th { color: var(--primary); background: rgba(var(--primary-rgb),.06); }
.event-planning-table th:first-child { width: 28mm; }
.event-planning-table th:last-child { width: 16mm; }

.weekly-page { display: flex; flex-direction: column; }
.weekly-single-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) 46mm; gap: 5mm; flex: 1; min-height: 0; margin-top: 6mm; }
.week-days-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 2.5mm; min-width: 0; }
.week-days-grid.days-7 { grid-template-columns: repeat(7,minmax(0,1fr)); }
.week-days-grid.days-7.weekend-compact { grid-template-columns: repeat(5,minmax(0,1fr)) repeat(2,minmax(0,.58fr)); }
.week-days-grid.days-6 { grid-template-columns: repeat(6,minmax(0,1fr)); }
.week-day-card { display: flex; flex-direction: column; min-width: 0; min-height: 0; border: 1px solid #bcc8c9; border-radius: 2.5mm; background: rgba(255,255,255,.86); overflow: hidden; }
.week-day-card > header { display: flex; align-items: center; justify-content: space-between; gap: 2mm; padding: 2.5mm 3mm; color: var(--primary); background: rgba(var(--primary-rgb),.07); border-bottom: 1px solid #cbd4d5; }
.week-day-card > header strong { font-family: Georgia,serif; font-size: 9pt; font-weight: 600; }
.week-day-card > header span { font-size: 7pt; white-space: nowrap; flex: 0 0 auto; line-height: 1; }
.week-day-card > header strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.week-days-grid.days-7 .week-day-card > header { flex-direction:column; align-items:flex-start; justify-content:center; gap:.7mm; padding:2mm 2.2mm; }
.week-days-grid.days-7 .week-day-card > header strong { font-size:7.6pt; }
.week-days-grid.days-7 .week-day-card > header .day-date { font-size:6.3pt; }
.weekly-single-layout,.week-days-grid,.weekly-sidebar { min-width:0; }
.weekly-sidebar { max-height:100%; overflow:hidden; }
.weekly-sidebar .planner-box { min-width:0; }
.weekly-sidebar .wellbeing-box { break-inside:avoid; }

.week-day-card.weekend-day { background: rgba(var(--primary-rgb),.025); }
.week-day-card.compact-weekend .day-blocks { grid-template-rows: 1fr; }
.week-day-card.compact-weekend .day-blocks > div:first-child { min-height: 20mm; }
.week-day-card.compact-weekend .day-blocks > div:last-child { display: none; }
.week-day-card.wide-card.compact-weekend { min-height: 30mm; }
.week-day-card.inactive-day { opacity: .45; }
.day-events { display: grid; gap: 1mm; padding: 2mm 2.5mm 0; }
.day-event { white-space: normal; }
.day-blocks { display: grid; grid-template-rows: 1.5fr 1fr; flex: 1; }
.day-blocks > div { min-height: 28mm; padding: 3mm; border-bottom: 1px solid #d1d8d9; background: repeating-linear-gradient(to bottom,transparent 0 6mm,rgba(120,135,137,.18) 6mm 6.2mm); }
.day-blocks > div:last-child { border-bottom: 0; }
.day-blocks b { color: #7a8688; background: transparent; font-size: 6.5pt; font-weight: 600; text-shadow: 0 1px 0 var(--paper-tint), 1px 0 0 var(--paper-tint), -1px 0 0 var(--paper-tint); }
.timeline { display: grid; flex: 1; }
.timeline > div { display: grid; grid-template-columns: 10mm 1fr; min-height: 8mm; border-bottom: 1px solid #d4dcdd; }
.timeline time { padding: 1.5mm; color: #7b8789; border-right: 1px solid #d4dcdd; font-size: 6pt; }
.lined-space { padding: 1mm 3mm; }
.weekly-sidebar { display: grid; align-content: start; gap: 3mm; }
.weekly-sidebar .planner-box h3 { font-size: 8.5pt; }
.wellbeing-box p { margin: 0 0 2mm; color: #667274; font-size: 6.5pt; }
.weekly-quote { margin: 0; padding: 4mm; color: #4f5d60; border-radius: 2.5mm; background: rgba(var(--primary-rgb),.07); font-family: Georgia,serif; font-size: 8.5pt; font-style: italic; line-height: 1.4; }
.weekly-quote cite { display: block; margin-top: 2mm; color: #748083; font-family: sans-serif; font-size: 6pt; font-style: normal; }
.week-days-stack { position: relative; z-index: 1; display: grid; gap: 4mm; margin-top: 6mm; }
.week-day-card.wide-card { min-height: 48mm; }
.week-day-card.wide-card .day-blocks { grid-template-columns: 1.5fr 1fr; grid-template-rows: 1fr; }
.week-day-card.wide-card .day-blocks > div { min-height: 34mm; border-right: 1px solid #d1d8d9; border-bottom: 0; }
.weekly-extras-row { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,1fr); gap: 4mm; margin-top: 5mm; }
.weekly-extras-row .weekly-quote { grid-column: span 2; }
.weekly-left-notes { position: relative; z-index: 1; margin-top: 5mm; }
.vacation-hero { position: relative; z-index: 1; display: grid; place-items: center; min-height: 58mm; margin: 8mm 0 6mm; padding: 8mm; border-radius: 5mm; text-align: center; background: linear-gradient(135deg,rgba(var(--primary-rgb),.10),rgba(var(--primary-rgb),.025)); }
.vacation-hero > span { font-size: 28pt; }
.vacation-hero h3 { margin: 2mm 0; color: var(--primary); font-family: Georgia,serif; font-size: 18pt; font-weight: 500; }
.vacation-hero p { max-width: 120mm; margin: 0; color: #687477; font-size: 8pt; line-height: 1.5; }
.vacation-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,1fr); gap: 5mm; }
.vacation-grid .span-2 { grid-column: span 2; }
.vacation-quote { position: relative; z-index: 1; margin: 6mm auto 0; max-width: 135mm; text-align: center; color: #526063; font-family: Georgia,serif; font-size: 10pt; font-style: italic; }
.vacation-quote cite { display: block; margin-top: 2mm; color: #788486; font-family: sans-serif; font-size: 7pt; font-style: normal; }

.print-page.paper-a5 .month-layout { grid-template-columns: minmax(0,1fr) 34mm; gap: 3mm; margin-top: 4mm; }
.print-page.paper-a5 .month-grid { min-height: 100mm; }
.print-page.paper-a5 .month-layout.spread-calendar .month-grid { min-height: 145mm; }
.print-page.paper-a5 .month-day { padding: 1mm; }
.print-page.paper-a5 .calendar-event { font-size: 4.5pt; }
.print-page.paper-a5 .month-sidebar .planner-box { padding: 2.5mm; }
.print-page.paper-a5 .month-sidebar .planner-box h3 { font-size: 7.5pt; }
.print-page.paper-a5 .mini-months { display: none; }
.print-page.paper-a5 .week-days-stack { gap: 2.5mm; }
.print-page.paper-a5 .week-day-card.wide-card { min-height: 31mm; }
.print-page.paper-a5 .weekly-extras-row { gap: 2.5mm; }
.print-page.paper-a5 .planner-box { padding: 2.5mm; }
.print-page.paper-a5 .blank-lines { gap: 2.2mm; }
.print-page.paper-a5.landscape .weekly-single-layout { grid-template-columns: minmax(0,1fr) 34mm; gap: 3mm; margin-top: 4mm; }
.print-page.paper-a5.landscape .day-blocks > div { min-height: 18mm; }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 50; max-width: 360px; padding: 13px 16px; border-radius: 12px; color: white; background: #233b3e; box-shadow: 0 10px 25px rgba(0,0,0,.2); opacity: 0; transform: translateY(12px); pointer-events: none; transition: .22s ease; }
.toast.show { opacity: 1; transform: none; }
.toast.error { background: var(--danger); }

@media (max-width: 1180px) {
  .planner-settings-grid { grid-template-columns: 1fr; }
  .planner-mini-preview { grid-template-columns: 1fr; }
  .stats-grid, .action-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .module-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .theme-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .hero-card { grid-template-columns: 1fr; }
  .hero-art { display: none; }
}
@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; padding: 15px; }
  .nav-list { display: flex; overflow-x: auto; }
  .nav-item { width: auto; white-space: nowrap; }
  .sidebar-footer { display: none; }
  .main-area { padding: 0 18px 40px; }
  .topbar { min-height: 90px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .two-col, .three-col { grid-template-columns: 1fr; }
  .span-2, .span-3 { grid-column: auto; }
  .section-intro { align-items: flex-start; flex-direction: column; }
  .print-page, .print-page.landscape { transform-origin: top left; }
}
@media (max-width: 620px) {
  .planner-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .topbar { align-items: flex-start; padding: 18px 0; flex-direction: column; }
  .top-actions { width: 100%; }
  .top-actions .btn { flex: 1; }
  .hero-card { padding: 24px; }
  .stats-grid, .module-grid, .theme-grid, .action-card-grid { grid-template-columns: 1fr; }
  .form-grid { padding: 18px; }
}


/* Fáze 3: evidence suplování a tiskové studio */
.section-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.four-col { grid-template-columns: repeat(4,minmax(0,1fr)); }
.embedded-filter-form { padding: 0; border: 0; background: transparent; }
.center-cell { text-align: center; }
.status-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 7px 11px; color: var(--primary); background: rgba(var(--primary-rgb),.08); font-size: 12px; font-weight: 800; }
.substitution-table-wrap { overflow-x: auto; }
.substitution-table { min-width: 1160px; }
.substitution-table th:nth-child(1) { width: 145px; }
.substitution-table th:nth-child(2) { width: 82px; }
.substitution-table th:nth-child(3), .substitution-table th:nth-child(4), .substitution-table th:nth-child(5) { width: 140px; }
.substitution-table th:nth-child(6) { width: 80px; }
.substitution-table th:nth-child(7) { width: 105px; text-align: center; }
.substitution-table tr:has(.substitution-overquota:checked) { background: rgba(226,166,57,.08); }
.event-substitution { border-color: #e1992d; background: rgba(225,153,45,.13); }

.month-layout.event-space-large:not(.spread-calendar) { grid-template-columns: minmax(0,1fr) 62mm; }
.month-layout.event-space-maximum:not(.spread-calendar) { grid-template-columns: minmax(0,1fr) 75mm; }
.month-sidebar .event-space-box { min-height: 58mm; }
.event-space-maximum .month-sidebar .event-space-box { min-height: 88mm; }
.weekly-events-box { min-height: 34mm; }
.weekly-event-row { grid-template-columns: 15mm 1fr; }

.studio-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.studio-summary article { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid rgba(35,65,70,.10); border-radius: 15px; background: rgba(255,255,255,.88); }
.studio-summary article > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: var(--primary); background: rgba(var(--primary-rgb),.08); font-size: 20px; }
.studio-summary strong, .studio-summary small { display: block; }
.studio-summary strong { font-size: 21px; }
.studio-summary small { color: var(--muted); }
.studio-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.65fr); gap: 18px; align-items: start; }
.studio-modules-panel { min-width: 0; }
.studio-side { display: grid; gap: 18px; position: sticky; top: 20px; }
.panel-help { margin: -4px 0 15px; color: var(--muted); font-size: 13px; }
.studio-module-list { display: grid; gap: 9px; }
.studio-module-item { display: grid; grid-template-columns: 28px 44px minmax(170px,1fr) minmax(340px,1.5fr); align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: white; transition: .15s ease; }
.studio-module-item:hover { border-color: rgba(var(--primary-rgb),.35); box-shadow: 0 7px 18px rgba(25,55,60,.07); }
.studio-module-item.dragging { opacity: .5; }
.studio-module-item.drag-over { border-color: var(--primary); transform: translateY(2px); }
.drag-handle { color: #9ca8aa; font-weight: 900; cursor: grab; user-select: none; }
.studio-module-main strong, .studio-module-main small { display: block; }
.studio-module-main strong { margin-bottom: 3px; }
.studio-module-main small { color: var(--muted); line-height: 1.35; }
.studio-module-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.studio-module-controls > label { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.studio-module-controls input[type="number"] { width: 66px; border: 1px solid var(--line); border-radius: 8px; padding: 7px; }
.studio-module-controls select { max-width: 128px; border: 1px solid var(--line); border-radius: 8px; padding: 7px; background: white; }
.mini-check { white-space: nowrap; }
.order-buttons { display: flex; gap: 4px; }
.order-buttons .icon-btn:disabled { opacity: .25; cursor: default; }
.warning-list { display: grid; gap: 8px; }
.warning-item, .success-item { padding: 11px 12px; border-radius: 10px; font-size: 13px; line-height: 1.4; }
.warning-item { color: #745522; background: #fff4dc; border: 1px solid #efd9a9; }
.success-item { color: #256247; background: #eaf7f0; border: 1px solid #c4e5d2; }
.page-map { display: grid; grid-template-columns: repeat(auto-fill,minmax(145px,1fr)); gap: 9px; }
.page-map.compact-map { grid-template-columns: repeat(auto-fill,minmax(92px,1fr)); }
.page-map-item { position: relative; min-height: 92px; display: flex; flex-direction: column; justify-content: flex-end; padding: 12px; border: 1px solid #cbd5d6; border-radius: 10px; background: white; overflow: hidden; }
.page-map-item::before { content: ""; position: absolute; top: 0; bottom: 0; width: 4px; background: var(--primary); }
.page-map-item.right::before { right: 0; }
.page-map-item.left::before { left: 0; }
.page-map-item > span { position: absolute; top: 8px; left: 10px; width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: var(--primary); background: rgba(var(--primary-rgb),.08); font-size: 11px; font-weight: 800; }
.page-map-item strong { font-size: 12px; }
.page-map-item small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.page-map-item.blank { border-style: dashed; background: repeating-linear-gradient(135deg,#fafbfb 0 8px,#f2f5f5 8px 16px); }
.page-map-more { display: grid; place-items: center; min-height: 92px; color: var(--muted); border: 1px dashed var(--line); border-radius: 10px; }

.page-number { position: absolute; z-index: 3; bottom: 7mm; left: 50%; transform: translateX(-50%); color: #778285; font-size: 7pt; }
.blank-print-page { display: grid; place-items: center; }
.blank-page-label { color: #c1c8c9; font-size: 8pt; }
.generic-module-page { display: flex; flex-direction: column; }
.generic-fields { position: relative; z-index: 1; display: grid; gap: 7mm; margin-top: 13mm; }
.generic-fields label { display: grid; grid-template-columns: 42mm 1fr; align-items: end; gap: 5mm; }
.generic-fields label span { color: var(--primary); font-weight: 750; }
.generic-fields label i { height: 8mm; border-bottom: 1px solid #aebabb; }
.generic-table { position: relative; z-index: 1; width: 100%; margin-top: 8mm; border-collapse: collapse; table-layout: fixed; font-size: 7.5pt; }
.generic-table th, .generic-table td { height: 9mm; padding: 1.5mm 2mm; border: 1px solid #c2cdce; text-align: left; }
.generic-table th { color: var(--primary); background: rgba(var(--primary-rgb),.07); font-weight: 800; }
.year-events-table th:first-child { width: 35mm; }
.year-events-table th:last-child { width: 30mm; }
.generic-two-col { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,1fr); gap: 5mm; margin-top: 8mm; }
.generic-two-col .span-2 { grid-column: span 2; }
.meeting-meta { position: relative; z-index: 1; display: grid; grid-template-columns: 20mm 1fr 20mm 1fr; gap: 3mm; margin-top: 8mm; align-items: end; }
.meeting-meta span { color: var(--primary); font-weight: 750; }
.meeting-meta i { height: 7mm; border-bottom: 1px solid #aebabb; }
.meeting-meta span:last-of-type { grid-column: 1; }
.meeting-meta i:last-of-type { grid-column: 2 / -1; }
.large-checklist { position: relative; z-index: 1; margin-top: 10mm; }
.schedule-table td { height: 15mm; }
.schedule-table th:first-child { width: 20mm; text-align: center; }
.grading-table { font-size: 6pt; }
.grading-table th, .grading-table td { height: 6.2mm; padding: .7mm; text-align: center; }
.grading-table th:nth-child(2), .grading-table td:nth-child(2) { width: 42mm; text-align: left; }
.contacts-table { font-size: 7pt; }
.contacts-table td { height: 9.5mm; }
.bloom-table td { height: 20mm; vertical-align: top; }
.bloom-table th:first-child { width: 30mm; }
.bloom-goal { margin-top: 7mm; }
.eur-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); gap: 4mm; margin-top: 9mm; }
.eur-grid p, .wellbeing-print-grid p { color: #667274; font-size: 7pt; }
.eur-note { margin-top: 5mm; }
.notes-canvas { position: relative; z-index: 1; margin-top: 9mm; }
.substitution-print-page { display: flex; flex-direction: column; }
.substitution-print-table { position: relative; z-index: 1; width: 100%; margin-top: 7mm; border-collapse: collapse; table-layout: fixed; font-size: 6.7pt; }
.substitution-print-table th, .substitution-print-table td { height: 8mm; padding: 1.2mm; border: 1px solid #bec9ca; vertical-align: top; }
.substitution-print-table th { color: var(--primary); background: rgba(var(--primary-rgb),.07); }
.substitution-print-table th:nth-child(1) { width: 24mm; }
.substitution-print-table th:nth-child(2) { width: 13mm; }
.substitution-print-table th:nth-child(3) { width: 20mm; }
.substitution-print-table th:nth-child(6) { width: 16mm; }
.substitution-print-table th:nth-child(7) { width: 24mm; }
.substitution-print-table .overquota-row { background: rgba(225,153,45,.10); }

@media (max-width: 1280px) {
  .studio-layout { grid-template-columns: 1fr; }
  .studio-side { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .studio-module-item { grid-template-columns: 28px 44px minmax(160px,1fr); }
  .studio-module-controls { grid-column: 3; justify-content: flex-start; }
}
@media (max-width: 900px) {
  .four-col { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .studio-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .studio-side { grid-template-columns: 1fr; }
  .studio-module-item { grid-template-columns: 25px 42px 1fr; }
  .studio-module-controls { grid-column: 1 / -1; padding-left: 35px; }
}
@media (max-width: 620px) {
  .four-col, .studio-summary { grid-template-columns: 1fr; }
  .section-actions { width: 100%; }
  .section-actions .btn { flex: 1; }
}

@media print {
  @page { margin: 0; }
  html, body { background: white !important; }
  body { margin: 0 !important; }
  .sidebar, .topbar, .section-intro, .toast, .studio-summary, .studio-layout, #view-data, #view-dashboard, #view-profile, #view-schoolYear, #view-planners, #view-modules, #view-substitutions, #view-classification, #view-design, #view-printStudio { display: none !important; }
  .app-shell, .main-area { display: block !important; padding: 0 !important; margin: 0 !important; }
  .view { display: none !important; padding: 0 !important; }
  #view-preview.active-view, #view-lessonPrep.active-view { display: block !important; }
  #view-preview .section-intro { display: none !important; }
  #view-lessonPrep > *:not(.panel:last-of-type), #view-lessonPrep .panel:last-of-type > *:not(.print-preview) { display: none !important; }
  .print-preview { display: block !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: white !important; overflow: visible !important; }
  .print-page { margin: 0 !important; box-shadow: none !important; break-after: page; page-break-after: always; }
  .print-page:last-child { break-after: auto; page-break-after: auto; }
  .planner-mini-preview .print-page { zoom: 1 !important; transform: none !important; }
}

/* FÁZE 4 – třídy, import a klasifikace */
.classification-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 18px; align-items: start; }
.classification-main { min-width: 0; }
.class-list-panel { position: sticky; top: 18px; }
.class-list { display: grid; gap: 7px; margin-bottom: 10px; }
.class-list-item { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; text-align: left; cursor: pointer; }
.class-list-item:hover { border-color: rgba(var(--primary-rgb),.45); }
.class-list-item.active { color: var(--primary); border-color: var(--primary); background: rgba(var(--primary-rgb),.07); }
.class-list-item span { display: grid; gap: 2px; }
.class-list-item strong { font-size: 14px; }
.class-list-item small { color: var(--muted); font-size: 11px; }
.class-list-item i { font-style: normal; font-size: 12px; }
.compact-empty { padding: 18px 10px; }
.hidden-panel { display: none !important; }
.student-table-wrap { max-height: 520px; }
.student-table th:first-child, .student-table td:first-child { width: 42px; text-align: center; }
.student-table th:last-child, .student-table td:last-child { width: 42px; }
.student-table th:nth-child(2), .student-table th:nth-child(3) { width: 24%; }
.import-preview { margin-top: 15px; }
.import-preview > small, .scale-preview-table > small { display: block; margin-top: 7px; color: var(--muted); }
.import-preview-table { min-width: 680px; font-size: 12px; }
.import-preview-table th, .import-preview-table td { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.top-gap-small { margin-top: 12px; }
.scale-preview-table { overflow-x: auto; }
.scale-preview-table .generic-table { min-width: 650px; margin-top: 12px; }
.grading-mini-preview { margin-top: 18px; max-height: 720px; }
.grading-mini-preview .print-page { zoom: .55; margin-inline: auto; }

.grading-print-page, .scale-print-page { display: flex; flex-direction: column; }
.grading-semesters { position: relative; z-index: 1; display: grid; gap: 5mm; margin-top: 5mm; min-height: 0; }
.grading-semesters.two-semesters { grid-template-rows: repeat(2,minmax(0,1fr)); flex: 1; }
.grading-semester { min-height: 0; }
.grading-semester h3 { margin: 0 0 2mm; color: var(--primary); font-size: 8.5pt; }
.grading-generated-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 5.7pt; }
.grading-generated-table th, .grading-generated-table td { height: 5.3mm; padding: .5mm; border: .25mm solid #bfc9ca; text-align: center; overflow: hidden; }
.grading-generated-table thead th { height: 13mm; color: var(--primary); background: rgba(var(--primary-rgb),.07); }
.grading-generated-table .num-col { width: 8mm; }
.grading-generated-table .name-col { width: 38mm; text-align: left; }
.grading-generated-table tbody td:nth-child(2) { text-align: left; font-size: 6.2pt; }
.grading-generated-table .grade-col { width: 7mm; vertical-align: bottom; }
.grading-generated-table .grade-col span { display: block; max-height: 12mm; writing-mode: vertical-rl; transform: rotate(180deg); margin: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grading-generated-table .extra-col { width: 12mm; font-size: 5pt; }
.scale-generated-table { margin-top: 7mm; font-size: 7.2pt; }
.scale-generated-table th, .scale-generated-table td { height: 7mm; text-align: center; }
.scale-generated-table th:first-child { width: 25mm; }

@media (max-width: 1050px) {
  .classification-layout { grid-template-columns: 1fr; }
  .class-list-panel { position: static; }
  .class-list { grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); }
}
@media (max-width: 700px) {
  .class-list { grid-template-columns: 1fr; }
  .grading-mini-preview .print-page { zoom: .35; }
}

/* Kompaktní klasifikační archy, aby se celá třída vešla na stránku */
.grading-generated-table th, .grading-generated-table td { height: 4.1mm; padding: .25mm .4mm; }
.grading-generated-table thead th { height: 10.5mm; }
.grading-generated-table .grade-col { width: 5.2mm; }
.grading-generated-table .name-col { width: 35mm; }
.grading-generated-table .num-col { width: 7mm; }
.grading-generated-table .extra-col { width: 10mm; }
.grading-generated-table .grade-col span { max-height: 9mm; font-size: 4.8pt; }
.grading-combined { position: relative; z-index: 1; margin-top: 4mm; }
.combined-grading-table { font-size: 5.2pt; }
.combined-grading-table thead tr:first-child th { height: 5mm; padding: .5mm; }
.combined-grading-table thead tr:nth-child(2) th { height: 9.5mm; }
.combined-grading-table .semester-group { color: var(--primary); letter-spacing: .03em; }

/* FÁZE 5 – moderní akvarelové rozhraní a organizace školy */
body {
  background:
    radial-gradient(ellipse at 3% 8%, rgba(94,143,126,.16), transparent 19%),
    radial-gradient(ellipse at 96% 4%, rgba(104,174,182,.13), transparent 24%),
    linear-gradient(135deg,#f7f5ef 0%,#f3f8f7 43%,#eef5f6 100%);
}
body::before, body::after { content:""; position:fixed; z-index:-1; pointer-events:none; filter:blur(.2px); opacity:.52; }
body::before { width:420px; height:310px; left:-160px; bottom:-90px; border-radius:44% 56% 61% 39%; background:radial-gradient(ellipse at 55% 42%,rgba(41,110,105,.28),transparent 52%),radial-gradient(ellipse at 72% 67%,rgba(68,111,139,.22),transparent 52%); transform:rotate(-12deg); }
body::after { width:330px; height:270px; right:-100px; top:80px; border-radius:55% 45% 38% 62%; background:radial-gradient(ellipse at 40% 40%,rgba(230,167,169,.22),transparent 55%),radial-gradient(ellipse at 63% 60%,rgba(220,187,128,.14),transparent 55%); transform:rotate(14deg); }

.sidebar { color:#29454a; background:rgba(255,255,255,.86); border-right:1px solid rgba(38,80,82,.10); box-shadow:8px 0 30px rgba(36,73,78,.05); backdrop-filter:blur(16px); }
.brand { position:relative; }
.brand::after { content:""; position:absolute; left:4px; right:4px; bottom:9px; height:1px; background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb),.3),transparent); }
.brand-mark { color:white; background:linear-gradient(145deg,var(--primary),#74a8a0); box-shadow:0 9px 20px rgba(var(--primary-rgb),.22); }
.brand strong { color:#213e43; }
.brand span, .save-state { color:#748486; }
.nav-item { color:#607377; }
.nav-item span { display:grid; place-items:center; width:29px; height:29px; border-radius:9px; color:var(--primary); background:rgba(var(--primary-rgb),.07); font-size:15px; }
.nav-item:hover, .nav-item.active { color:#1e4146; background:linear-gradient(90deg,rgba(var(--primary-rgb),.12),rgba(255,255,255,.7)); transform:none; }
.nav-item.active { box-shadow:inset 3px 0 0 var(--primary); }
.sidebar-footer .btn-secondary { background:rgba(var(--primary-rgb),.08); }

.topbar { position:sticky; z-index:20; top:0; margin-inline:-34px; padding-inline:34px; min-height:88px; background:rgba(249,250,247,.86); backdrop-filter:blur(16px); }
.hero-card { min-height:330px; border-color:rgba(var(--primary-rgb),.16); background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(239,249,247,.88) 58%,rgba(244,236,226,.72)); }
.hero-card::before { content:""; position:absolute; inset:auto auto -80px -65px; width:330px; height:220px; border-radius:48% 52% 59% 41%; background:radial-gradient(ellipse at 55% 35%,rgba(var(--primary-rgb),.20),transparent 55%); transform:rotate(10deg); }
.hero-card::after { content:"❧"; position:absolute; right:34px; top:18px; color:rgba(var(--primary-rgb),.20); font-family:Georgia,serif; font-size:92px; transform:rotate(20deg); }
.panel, .form-grid, .module-card, .action-card, .stat-card { backdrop-filter:blur(8px); }
.panel { border-color:rgba(46,83,83,.09); background:rgba(255,255,255,.90); }
.soft-form { padding:18px; background:linear-gradient(145deg,rgba(244,250,248,.88),rgba(255,250,246,.75)); }
.danger-text { color:var(--danger); }
.privacy-note { padding:10px 12px; border-left:3px solid #d8aa65; border-radius:8px; background:#fff9ed; }

.organization-intro { padding:23px 26px; border:1px solid rgba(var(--primary-rgb),.12); border-radius:22px; background:linear-gradient(120deg,rgba(255,255,255,.92),rgba(229,244,241,.78),rgba(250,239,235,.72)); box-shadow:var(--shadow); }
.organization-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:18px 0; }
.organization-stats article { display:flex; align-items:center; gap:11px; padding:16px; border:1px solid rgba(38,79,81,.09); border-radius:15px; background:rgba(255,255,255,.86); }
.organization-stats article > span { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:var(--primary); background:rgba(var(--primary-rgb),.08); font-size:18px; }
.organization-stats strong, .organization-stats small { display:block; }
.organization-stats strong { font-size:22px; }
.organization-stats small { color:var(--muted); font-size:11px; }
.organization-tabs { display:flex; gap:8px; padding:7px; overflow-x:auto; border:1px solid rgba(38,79,81,.09); border-radius:16px; background:rgba(255,255,255,.74); }
.organization-tab { flex:1 0 auto; border:0; border-radius:11px; padding:11px 15px; color:#657679; background:transparent; font-weight:750; }
.organization-tab:hover { color:var(--primary); background:rgba(var(--primary-rgb),.06); }
.organization-tab.active { color:white; background:linear-gradient(135deg,var(--primary),#5b9b96); box-shadow:0 7px 18px rgba(var(--primary-rgb),.20); }
.organization-panel { display:none; margin-top:16px; }
.organization-panel.active-org-panel { display:block; animation:viewIn .2s ease; }
.manager-layout { display:grid; grid-template-columns:310px minmax(0,1fr); gap:16px; align-items:start; }
.manager-list-panel { position:sticky; top:106px; max-height:calc(100vh - 130px); overflow:auto; }
.record-list { display:grid; gap:8px; }
.record-list-item { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; text-align:left; }
.record-list-item:hover { border-color:rgba(var(--primary-rgb),.42); }
.record-list-item.active { border-color:var(--primary); background:linear-gradient(100deg,rgba(var(--primary-rgb),.10),rgba(255,255,255,.95)); box-shadow:0 6px 16px rgba(var(--primary-rgb),.08); }
.record-list-item span { min-width:0; display:grid; gap:3px; }
.record-list-item strong, .record-list-item small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.record-list-item strong { font-size:13px; }
.record-list-item small { color:var(--muted); font-size:10px; }
.record-list-item i { flex:0 0 auto; color:var(--primary); font-style:normal; font-size:10px; }
.record-status { padding:4px 6px; border-radius:99px; background:#eef3f3; }
.status-done { color:#40735c !important; background:#e7f4eb; }
.status-cancelled { color:#9b4d54 !important; background:#f9e8e9; }
.manager-editor-panel { min-width:0; }
.contact-editor-table { min-width:980px; }
.contact-editor-table td:first-child, .contact-editor-table td:last-child { width:auto; min-width:145px; text-align:left; }
.contact-editor-table td:last-child { min-width:48px; width:48px; text-align:center; }
.contact-editor-table .table-input { min-width:120px; }
.parent-contacts-print-table { font-size:6.4pt; }
.schedule-manager-layout { grid-template-columns:280px minmax(0,1fr); }
.schedule-settings { margin-bottom:16px; }
.schedule-grid-editor { overflow:auto; border:1px solid var(--line); border-radius:14px; background:white; }
.schedule-editor-table { width:100%; min-width:760px; border-collapse:collapse; table-layout:fixed; }
.schedule-editor-table th, .schedule-editor-table td { border:1px solid #dce3e3; padding:6px; }
.schedule-editor-table th { color:var(--primary); background:rgba(var(--primary-rgb),.06); font-size:11px; }
.schedule-editor-table th:first-child { width:52px; }
.schedule-editor-table input { width:100%; border:0; border-radius:7px; padding:9px; background:#fbfdfd; outline:none; }
.schedule-editor-table input:focus { box-shadow:0 0 0 2px rgba(var(--primary-rgb),.16); }
.checklist-app-preview { margin-top:16px; padding:20px; border:1px solid rgba(var(--primary-rgb),.12); border-radius:16px; background:linear-gradient(145deg,#fff,rgba(var(--primary-rgb),.04)); }
.checklist-app-preview h4 { margin:0 0 14px; color:var(--primary); font-family:Georgia,serif; font-size:20px; }
.app-checklist-columns, .print-checklist-columns { display:grid; gap:8px 20px; }
.app-checklist-columns.columns-2, .print-checklist-columns.columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.app-checklist-columns.columns-3, .print-checklist-columns.columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.app-checklist-columns span { display:flex; align-items:center; gap:8px; min-height:30px; border-bottom:1px solid #e5ebeb; font-size:12px; }
.app-checklist-columns i, .print-checklist-columns i { width:15px; height:15px; flex:0 0 15px; border:1px solid var(--primary); border-radius:4px; }

/* Tiskové listy Fáze 5 */
.watercolor-organic-page::before { content:""; position:absolute; z-index:0; width:90mm; height:55mm; left:-25mm; top:-22mm; border-radius:45% 55% 62% 38%; background:radial-gradient(ellipse at 62% 66%,rgba(var(--primary-rgb),calc(var(--bg-intensity) * .55)),transparent 62%); transform:rotate(-8deg); }
.botanical-corner { position:absolute; z-index:0; width:48mm; height:78mm; opacity:calc(.20 + var(--bg-intensity)); }
.botanical-corner::before, .botanical-corner::after { content:""; position:absolute; width:8mm; height:23mm; border-radius:100% 0 100% 0; background:rgba(var(--primary-rgb),.18); transform:rotate(36deg); box-shadow:10mm 12mm 0 rgba(var(--primary-rgb),.12),-4mm 24mm 0 rgba(var(--primary-rgb),.15),8mm 37mm 0 rgba(var(--primary-rgb),.10); }
.botanical-top { right:-5mm; top:5mm; transform:rotate(12deg); }
.botanical-bottom { left:3mm; bottom:-15mm; transform:rotate(196deg); }
.floral-wash { position:absolute; z-index:0; right:-20mm; bottom:-12mm; width:95mm; height:70mm; border-radius:55% 45% 38% 62%; background:radial-gradient(ellipse at 32% 35%,rgba(223,157,168,.18),transparent 18%),radial-gradient(ellipse at 55% 52%,rgba(var(--primary-rgb),.13),transparent 20%),radial-gradient(ellipse at 70% 30%,rgba(215,185,130,.13),transparent 18%); }
.meeting-print-meta { position:relative; z-index:1; margin:6mm 0 4mm; padding:3mm 4mm; border-radius:3mm; background:rgba(var(--primary-rgb),.05); font-size:8pt; }
.meeting-print-grid, .parent-print-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4mm; }
.meeting-print-grid .planner-box, .parent-print-grid .planner-box { min-height:78mm; }
.meeting-print-grid .span-2 { min-height:58mm; }
.filled-note-lines, .filled-check-lines { display:grid; }
.filled-note-lines span, .filled-check-lines span { min-height:7mm; display:flex; align-items:flex-end; gap:2mm; border-bottom:.25mm solid #d8e0e0; }
.filled-note-lines b, .filled-check-lines b { font-size:7.4pt; font-weight:500; line-height:1.25; }
.filled-check-lines i { width:3.7mm; height:3.7mm; flex:0 0 3.7mm; margin-bottom:1.2mm; border:.25mm solid var(--primary); border-radius:.8mm; }
.contact-print-page .contacts-table, .parent-contact-print-page .parent-contacts-print-table { position:relative; z-index:1; margin-top:7mm; }
.filled-schedule-table { position:relative; z-index:1; margin-top:8mm; font-size:8pt; }
.filled-schedule-table th, .filled-schedule-table td { height:14mm; text-align:center; white-space:pre-line; }
.checklist-watercolor { position:absolute; z-index:0; right:-25mm; top:22mm; width:80mm; height:110mm; border-radius:48% 52% 43% 57%; background:radial-gradient(ellipse at 40% 35%,rgba(var(--primary-rgb),.11),transparent 58%); transform:rotate(8deg); }
.print-checklist-columns { position:relative; z-index:1; margin-top:9mm; align-content:start; }
.print-checklist-columns span { min-height:8mm; display:flex; align-items:center; gap:3mm; border-bottom:.25mm solid #d8e0e0; }
.print-checklist-columns b { font-size:8.2pt; font-weight:500; }

@media (max-width: 1200px) {
  .organization-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .manager-layout, .schedule-manager-layout { grid-template-columns:250px minmax(0,1fr); }
}
@media (max-width: 880px) {
  .manager-layout, .schedule-manager-layout { grid-template-columns:1fr; }
  .manager-list-panel { position:static; max-height:none; }
  .record-list { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); }
  .organization-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .organization-stats { grid-template-columns:1fr; }
  .organization-intro { align-items:flex-start; }
  .record-list { grid-template-columns:1fr; }
}

@media print {
  #view-organization { display:none !important; }
  .watercolor-organic-page, .watercolor-organic-page * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}


/* FÁZE 6 – Design Studio */
.design-badge{border:1px solid rgba(var(--primary-rgb),.2);border-radius:999px;padding:7px 11px;color:var(--primary);background:rgba(var(--primary-rgb),.07);font-size:11px;font-weight:800}
.theme-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.theme-card{min-height:205px;padding:0;text-align:left}
.theme-card.selected::after{content:"✓";position:absolute;right:10px;top:10px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary)}
.theme-swatch{position:relative;height:138px;overflow:hidden}
.theme-art{position:absolute;inset:0;background:var(--theme-pattern);opacity:.86}
.theme-dots{position:absolute;left:11px;bottom:9px;display:flex;gap:5px;padding:5px;border-radius:999px;background:rgba(255,255,255,.82)}
.theme-dots i{width:14px;height:14px;border-radius:50%}.theme-dots i:nth-child(1){background:var(--theme-primary)}.theme-dots i:nth-child(2){background:var(--theme-secondary)}.theme-dots i:nth-child(3){background:var(--theme-accent)}
.theme-card>strong{display:block;padding:12px 14px 3px}.theme-card>span{display:block;padding:0 14px 14px;color:var(--muted);font-size:11px}
.design-studio-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);gap:18px;align-items:start}.design-color-grid{padding:0}.design-actions{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap}
.contrast-badge{border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.contrast-good{color:#286044;background:#e4f3eb}.contrast-warn{color:#7a5b17;background:#fff3d7}.contrast-bad{color:#8e343a;background:#fde7e8}
.design-preview-panel{position:sticky;top:20px}.design-live-preview{min-height:570px;padding:18px;border-radius:17px;background:linear-gradient(145deg,rgba(var(--secondary-rgb),.28),rgba(255,255,255,.75))}.design-preview-stage{position:relative;height:530px}
.design-preview-page{position:absolute;overflow:hidden;width:225px;height:318px;padding:21px;border:1px solid var(--design-line);border-radius:5px;color:#263337;background:var(--active-theme-bg,var(--paper-tint));box-shadow:0 16px 32px rgba(31,55,60,.15);transition:background .18s ease,border-color .18s ease}
.design-preview-page::before,.print-page::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:var(--bg-intensity);background:var(--active-theme-pattern,radial-gradient(ellipse at 18% 82%,rgba(var(--primary-rgb),.48),transparent 24%));transition:background .18s ease,opacity .18s ease}
.design-preview-page>*{position:relative;z-index:1}.preview-cover{left:5px;top:92px;transform:rotate(-7deg);text-align:center}.preview-plan{z-index:2;left:122px;top:18px;width:255px;transform:rotate(2deg)}.preview-notes{z-index:1;right:0;top:158px;transform:rotate(7deg)}
.design-preview-page small{color:var(--primary);font-size:7px;font-weight:900;letter-spacing:.12em}.design-preview-page h4{margin:10px 0 7px;color:var(--primary);font-family:Georgia,serif;font-size:22px;font-weight:500}.design-preview-page p{color:#657174;font-size:10px}.design-preview-page blockquote{font-family:Georgia,serif;font-size:9px;font-style:italic;color:#667174}
.preview-landscape{height:94px;margin:21px -21px 15px;background:linear-gradient(155deg,transparent 48%,rgba(var(--primary-rgb),.28) 49% 64%,transparent 65%),radial-gradient(ellipse at 50% 86%,rgba(var(--secondary-rgb),.48),transparent 42%)}
.preview-plan header{display:flex;justify-content:space-between;border-bottom:1px solid var(--design-line);padding-bottom:9px}.preview-plan header span{border-radius:999px;padding:5px 7px;color:var(--primary);background:rgba(var(--primary-rgb),.08);font-size:7px;font-weight:800}.preview-days{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:12px}.preview-days section{min-height:145px;padding:6px;border:1px solid var(--design-line);border-radius:7px;background:rgba(255,255,255,.62)}.preview-days b{display:block;color:var(--primary);font-size:8px}.preview-days i{display:block;height:1px;margin:17px 0;background:var(--design-line)}.preview-plan footer{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}.preview-plan footer span{padding:8px;border-radius:6px;background:rgba(var(--secondary-rgb),.18);font-size:7px}.preview-lines i{display:block;height:1px;margin:20px 0;background:var(--design-line)}.preview-colors{display:flex;gap:7px;position:absolute;bottom:16px}.preview-colors i{width:17px;height:17px;border-radius:50%}.preview-colors i:nth-child(1){background:var(--primary)}.preview-colors i:nth-child(2){background:var(--secondary)}.preview-colors i:nth-child(3){background:var(--accent)}
.print-page{background:var(--active-theme-bg,var(--paper-tint))}.print-page>*:not(.print-theme-image):not(.page-watermark):not(.prep-footer):not(.page-number):not(.botanical-corner):not(.floral-wash):not(.checklist-watercolor):not(.month-coloring-art){position:relative;z-index:1}.page-header,.planner-box,.month-day,.week-day,.prep-summary-card{border-color:var(--design-line)!important}
body[data-typography="modern"] .page-header h2,body[data-typography="modern"] .cover-content h1,body[data-typography="modern"] .design-preview-page h4{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:750;letter-spacing:-.03em}body[data-typography="soft"] .page-header h2,body[data-typography="soft"] .cover-content h1,body[data-typography="soft"] .design-preview-page h4{font-family:"Segoe Print","Bradley Hand",cursive}
body[data-panel="classic"] .panel,body[data-panel="classic"] .module-card{border-radius:10px}body[data-panel="minimal"] .panel,body[data-panel="minimal"] .module-card{border-radius:0;box-shadow:none}body[data-panel="minimal"] .planner-box{border-width:0 0 1px;border-radius:0}
body[data-decoration="none"] .print-page::before,body[data-decoration="none"] .design-preview-page::before,body[data-decoration="none"] .page-watermark,body[data-decoration="none"] .botanical-corner,body[data-decoration="none"] .floral-wash,body[data-decoration="none"] .checklist-watercolor{display:none!important}body[data-decoration="corners"] .print-page::before{background:radial-gradient(ellipse at 4% 96%,rgba(var(--primary-rgb),.48),transparent 20%),radial-gradient(ellipse at 96% 4%,rgba(var(--secondary-rgb),.42),transparent 19%)}body[data-decoration="top-bottom"] .print-page::before{background:linear-gradient(180deg,rgba(var(--secondary-rgb),.24),transparent 17%,transparent 83%,rgba(var(--primary-rgb),.20))}body[data-decoration="side"] .print-page::before{background:linear-gradient(90deg,rgba(var(--primary-rgb),.24),transparent 15%,transparent 92%,rgba(var(--accent-rgb),.13))}body[data-decoration="minimal"] .print-page::before{inset:auto 5mm 5mm auto;width:30mm;height:30mm;border-radius:50%}
body[data-print-mode="mono"]{--primary:#3f474b!important;--primary-rgb:63,71,75!important;--secondary:#c7cbcd!important;--secondary-rgb:199,203,205!important;--accent:#9ba0a3!important;--accent-rgb:155,160,163!important;--design-line:#c8ccce!important;--paper-tint:#fff!important}body[data-print-mode="economy"] .print-page{background:#fff}
body[data-theme="geometry"] .print-page::before{background:linear-gradient(135deg,transparent 0 70%,rgba(var(--primary-rgb),.18) 70% 82%,transparent 82%),radial-gradient(circle at 12% 82%,rgba(var(--accent-rgb),.28),transparent 18%)}body[data-theme="minimal"] .print-page::before{background:linear-gradient(90deg,transparent 0 97%,rgba(var(--primary-rgb),.24) 97%)}body[data-theme="mono-sea"] .print-page::before{background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 20mm,rgba(var(--primary-rgb),.12) 21mm 23mm)}
@media(max-width:1250px){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.design-studio-layout{grid-template-columns:1fr}.design-preview-panel{position:static}}@media(max-width:760px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.design-color-grid{grid-template-columns:1fr}.design-preview-stage{transform:scale(.78);transform-origin:top left;width:128%;height:440px}}


/* FÁZE 7 – finální prodejná verze */
.release-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:16px 0;padding:14px 18px;border:1px solid rgba(var(--primary-rgb),.13);border-radius:16px;background:linear-gradient(105deg,rgba(var(--primary-rgb),.08),rgba(255,255,255,.88));box-shadow:0 8px 24px rgba(40,72,75,.05)}
.release-strip>div{display:flex;align-items:center;gap:12px}.release-strip strong,.release-strip small{display:block}.release-strip small{margin-top:2px;color:var(--muted)}.release-version{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(135deg,var(--primary),#68aaa3);font-weight:900}
.help-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:18px;align-items:start}.help-side{display:grid;gap:14px;position:sticky;top:104px}.step-list{counter-reset:steps;display:grid;gap:0;margin:0;padding:0;list-style:none}.step-list li{counter-increment:steps;display:grid;grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;padding:15px 2px;border-bottom:1px solid var(--line)}.step-list li:last-child{border-bottom:0}.step-list li::before{content:counter(steps);grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;color:#fff;background:var(--primary);font-weight:850}.step-list b{font-size:13px}.step-list span{grid-column:2;color:var(--muted);font-size:12px}.text-link{align-self:center;border:0;padding:5px 7px;color:var(--primary);background:transparent;font-size:11px;font-weight:850;cursor:pointer}.text-link:hover{text-decoration:underline}.help-card{position:relative;overflow:hidden}.help-card ul{margin:10px 0 0;padding-left:18px;color:#536467;font-size:12px;line-height:1.7}.help-card p{color:#536467;font-size:12px;line-height:1.65}.help-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:11px;border-radius:14px;color:var(--primary);background:rgba(var(--primary-rgb),.09);font-size:18px;font-weight:900}.about-card{background:linear-gradient(145deg,rgba(var(--primary-rgb),.08),#fff)}
.preflight-results{display:grid;gap:9px}.preflight-item,.preflight-ok{display:flex;align-items:flex-start;gap:11px;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.preflight-item>span,.preflight-ok>span{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:9px;font-weight:900}.preflight-item div{min-width:0;flex:1}.preflight-item b,.preflight-item p{display:block}.preflight-item b{font-size:11px}.preflight-item p{margin:2px 0 0;color:#566568;font-size:12px}.level-error{border-color:#efc5c8;background:#fff9f9}.level-error>span{color:#9a323b;background:#fde8e9}.level-warning{border-color:#ead8ad;background:#fffcf4}.level-warning>span{color:#8c6517;background:#fff0c9}.level-info>span{color:#2f6671;background:#e6f2f4}.preflight-ok{align-items:center;border-color:#c8e3d2;background:#f7fcf8}.preflight-ok>span{color:#397252;background:#e5f3e9}.preflight-ok b,.preflight-ok small{display:block}.preflight-ok small{margin-top:2px;color:var(--muted)}.status-danger{color:#91313a;background:#fde8e9}.status-warning{color:#7c5c1b;background:#fff0c9}.status-success{color:#32684a;background:#e4f3e9}.compact-empty{padding:22px}
.modal-backdrop{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(26,42,45,.56);backdrop-filter:blur(5px)}.modal-backdrop[hidden]{display:none!important}.modal-card{position:relative;width:min(860px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid rgba(255,255,255,.75);border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(19,38,42,.30)}.modal-close{position:absolute;z-index:3;right:15px;top:15px;width:36px;height:36px;border:0;border-radius:12px;color:#506164;background:rgba(255,255,255,.84);font-size:24px;cursor:pointer}.onboarding-card{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr);overflow:hidden}.onboarding-art{min-height:520px;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.7),transparent 18%),linear-gradient(155deg,transparent 48%,rgba(var(--primary-rgb),.32) 49% 62%,transparent 63%),linear-gradient(145deg,#d8ece9,#f8fcfb 58%,#dbe8ee)}.onboarding-art span{width:106px;height:106px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.78);border-radius:34px;color:#fff;background:linear-gradient(145deg,var(--primary),#72afa8);box-shadow:0 18px 40px rgba(var(--primary-rgb),.25);font-family:Georgia,serif;font-size:37px}.onboarding-content{min-height:0;max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;padding:52px 46px 36px}.onboarding-content h2{margin:14px 0 8px;color:#25393c;font-family:Georgia,serif;font-size:34px}.onboarding-content>p{margin:0 0 22px;color:#607174;line-height:1.65}.onboarding-options{display:grid;gap:10px}.onboarding-option{display:grid;gap:4px;width:100%;padding:15px 17px;border:1px solid var(--line);border-radius:15px;color:#25373a;background:#fff;text-align:left;cursor:pointer}.onboarding-option:hover{border-color:rgba(var(--primary-rgb),.45);transform:translateY(-1px)}.onboarding-option.featured{border-color:rgba(var(--primary-rgb),.30);background:linear-gradient(105deg,rgba(var(--primary-rgb),.10),#fff)}.onboarding-option b{font-size:14px}.onboarding-option span{color:var(--muted);font-size:12px}.onboarding-check{margin-top:17px}.preflight-modal-card{width:min(740px,100%);padding:38px}.modal-heading{padding-right:30px}.modal-heading h2{margin:12px 0 4px;font-family:Georgia,serif;font-size:29px}.modal-heading p{color:var(--muted)}.modal-results{max-height:48vh;overflow:auto;margin-top:20px;padding-right:4px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}body.modal-open{overflow:hidden}
@media(max-width:900px){.help-layout{grid-template-columns:1fr}.help-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.onboarding-card{grid-template-columns:1fr}.onboarding-art{display:none}.onboarding-content{max-height:calc(100vh - 40px);overflow-y:auto;padding:48px 28px 30px}}
@media(max-width:620px){.release-strip{align-items:flex-start;flex-direction:column}.help-side{grid-template-columns:1fr}.step-list li{grid-template-columns:38px minmax(0,1fr)}.step-list .text-link{grid-column:2;justify-self:start;padding-left:0}.preflight-modal-card{padding:32px 18px 20px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}
@media print{#view-help,.modal-backdrop{display:none!important}}


/* 1.0.1 – tisková preflight oprava dynamických stran */
.weekly-spread{display:flex;flex-direction:column}
.weekly-spread>.page-header{flex:0 0 auto}
.weekly-spread-body{display:grid;grid-template-rows:minmax(0,1fr) auto;flex:1 1 auto;min-height:0;overflow:hidden;margin-top:4mm;padding-bottom:2mm}
.weekly-spread-body-left{grid-template-rows:minmax(0,1fr) auto}
.weekly-spread .week-days-stack{min-height:0;margin-top:0}
.weekly-spread .week-days-stack.day-count-3{grid-template-rows:repeat(3,minmax(0,1fr))}
.weekly-spread .week-days-stack.day-count-4{grid-template-rows:repeat(4,minmax(0,1fr))}
.weekly-spread .week-day-card.wide-card{height:100%;min-height:0}
.weekly-spread .spread-day .day-blocks,
.weekly-spread .dense-spread-day .day-blocks{min-height:0}
.weekly-spread .spread-day .day-blocks>div{min-height:0;padding:1.8mm 2mm;background:repeating-linear-gradient(to bottom,transparent 0 5mm,rgba(120,135,137,.18) 5mm 5.2mm)}
.weekly-spread .dense-spread-day .day-blocks>div{min-height:0;padding:1.25mm 1.8mm;background:repeating-linear-gradient(to bottom,transparent 0 4.5mm,rgba(120,135,137,.18) 4.5mm 4.7mm)}
.weekly-spread .spread-day>header,
.weekly-spread .dense-spread-day>header{padding:1.45mm 2mm}
.weekly-spread .spread-day>header strong,
.weekly-spread .dense-spread-day>header strong{font-size:7.7pt}
.weekly-spread .dense-spread-day .day-events{gap:.45mm;padding:.7mm 1.7mm 0}
.weekly-spread .dense-spread-day .day-event{font-size:5.3pt;line-height:1.1}
.weekly-spread .day-event-more{font-weight:800;color:var(--primary);background:transparent}
.weekly-spread .day-reflection-spread{min-height:0;margin:.8mm 1.4mm 1mm;padding:.8mm 1.1mm;gap:.6mm 1mm}
.weekly-spread .day-reflection-spread .face-svg{width:12px;height:12px}
.weekly-spread .dense-spread-day .day-reflection-spread{grid-template-columns:minmax(0,1fr) auto}
.weekly-spread .timeline-spread{min-height:0;grid-auto-rows:minmax(0,1fr)}
.weekly-spread .timeline-spread>div{min-height:0}
.weekly-spread .weekend-prep-strip{min-height:0;padding:.8mm 1.2mm;margin-top:.5mm}
.weekly-spread .weekend-notes-only>div{min-height:0!important}
.weekly-left-notes{display:grid;grid-template-columns:1fr 1fr;gap:3mm;margin-top:3mm}
.weekly-left-notes .weekly-quote{margin-top:0}
.weekly-right .week-days-stack{gap:1.6mm}
.weekly-right .weekly-extras-row{gap:1.8mm;margin-top:2mm}
.weekly-extras-compact .compact-weekly-extra{min-height:0!important;padding:1.7mm 2mm}
.weekly-extras-compact .compact-weekly-extra h3{margin-bottom:1mm;font-size:7.4pt;line-height:1.1}
.weekly-extras-compact .weekly-events-box{min-height:0}
.weekly-extras-compact .event-list-row{grid-template-columns:14mm 1fr;gap:1mm;padding:.55mm 0;font-size:5.4pt}
.weekly-extras-compact .check-lines{gap:.7mm}
.weekly-extras-compact .check-lines span{height:2.4mm}
.weekly-extras-compact .check-lines i{width:2.3mm;height:2.3mm;margin-right:1mm}
.weekly-extras-compact .blank-lines{gap:1.1mm}
.weekly-extras-compact .wellbeing-box p{margin:0 0 .8mm;font-size:5.4pt}
.weekly-extras-compact .weekly-reflection-grid{grid-template-columns:auto minmax(0,1fr);gap:.65mm 1mm;font-size:5.1pt}
.weekly-extras-compact .weekly-reflection-grid i{height:2.3mm}
.weekly-extras-compact .weekly-reflection-grid b{font-size:6pt}

.prep-table.compact th,.prep-table.compact td{padding:1.2mm}
.prep-table.compact td{height:7mm}
.prep-overview-page .prep-summary{gap:2mm;margin:4mm 0}
.prep-overview-page .prep-summary-card{padding:2.5mm 3mm}
.prep-overview-page .prep-sheet{margin-top:4mm}

/* A5 má vlastní kompaktní sazbu – nejde jen o zmenšenou A4. */
.print-page.paper-a5 .year-events-table{margin-top:4mm;font-size:6.5pt}
.print-page.paper-a5 .year-events-table th,
.print-page.paper-a5 .year-events-table td{height:6.6mm;padding:.8mm 1.2mm}

.print-page.paper-a5.weekly-spread .page-header{margin-bottom:0;padding-bottom:3mm}
.print-page.paper-a5.weekly-spread .weekly-spread-body{margin-top:2mm;padding-bottom:1mm}
.print-page.paper-a5.weekly-spread .week-days-stack{gap:1mm;margin-top:0}
.print-page.paper-a5.weekly-spread .week-day-card.wide-card{min-height:22mm}
.print-page.paper-a5.weekly-spread .week-day-card>header{padding:1.2mm 2mm}
.print-page.paper-a5.weekly-spread .week-day-card>header strong{font-size:7.5pt}
.print-page.paper-a5.weekly-spread .day-events{gap:.4mm;padding:.8mm 1.5mm 0}
.print-page.paper-a5.weekly-spread .day-event{font-size:5.5pt}
.print-page.paper-a5.weekly-spread .week-day-card.wide-card .day-blocks>div{min-height:12mm;padding:1.5mm}
.print-page.paper-a5.weekly-spread .week-day-card.wide-card.compact-weekend{min-height:17mm}
.print-page.paper-a5.weekly-spread .week-day-card.wide-card.compact-weekend .day-blocks>div:first-child{min-height:8mm}
.print-page.paper-a5.weekly-spread .day-blocks b{font-size:5.4pt}
.print-page.paper-a5.weekly-spread .weekly-left-notes{display:grid;grid-template-columns:1fr 1fr;gap:2mm;margin-top:2mm}
.print-page.paper-a5.weekly-spread .weekly-extras-row{gap:2mm;margin-top:2mm}
.print-page.paper-a5.weekly-spread .planner-box{padding:2mm}
.print-page.paper-a5.weekly-spread .planner-box h3{margin-bottom:1.4mm;font-size:7.2pt}
.print-page.paper-a5.weekly-spread .blank-lines{gap:1.5mm}
.print-page.paper-a5.weekly-spread .check-lines{gap:1mm}
.print-page.paper-a5.weekly-spread .check-lines span{height:2.5mm}
.print-page.paper-a5.weekly-spread .check-lines i{width:2.4mm;height:2.4mm;margin-right:1mm}
.print-page.paper-a5.weekly-spread .event-list-row{grid-template-columns:11mm 1fr;gap:1mm;padding:.6mm 0;font-size:5.5pt}
.print-page.paper-a5.weekly-spread .weekly-quote{margin:0;padding:2mm;font-size:6.4pt;line-height:1.25}
.print-page.paper-a5.weekly-spread .weekly-quote small,
.print-page.paper-a5.weekly-spread .weekly-quote cite{font-size:5.4pt}
.print-page.paper-a5.weekly-spread .wellbeing-box p{margin:0 0 1mm;font-size:5.7pt}

.print-page.paper-a5.vacation-page .vacation-hero{min-height:35mm;margin:3mm 0;padding:3mm}
.print-page.paper-a5.vacation-page .vacation-hero>span{font-size:18pt}
.print-page.paper-a5.vacation-page .vacation-hero h3{margin:1mm 0;font-size:12pt}
.print-page.paper-a5.vacation-page .vacation-grid{gap:2mm}
.print-page.paper-a5.vacation-page .planner-box{padding:2.5mm}
.print-page.paper-a5.vacation-page .planner-box h3{margin-bottom:1.5mm;font-size:8pt}
.print-page.paper-a5.vacation-page .blank-lines{gap:2mm}
.print-page.paper-a5.vacation-page .check-lines{gap:1.5mm}
.print-page.paper-a5.vacation-page .vacation-quote{margin-top:2mm;font-size:7pt}
.print-page.paper-a5.vacation-page .vacation-quote cite{margin-top:.8mm;font-size:5.8pt}

.print-page.paper-a5.landscape .schedule-table{margin-top:4mm;font-size:6.3pt}
.print-page.paper-a5.landscape .schedule-table th,
.print-page.paper-a5.landscape .schedule-table td{height:8mm;padding:.7mm 1mm}

.print-page.paper-a5.meeting-print-page .meeting-print-meta{margin:2mm 0}
.print-page.paper-a5.meeting-print-page .meeting-print-grid,
.print-page.paper-a5.parent-meeting-print-page .parent-print-grid{gap:2mm}
.print-page.paper-a5.meeting-print-page .meeting-print-grid .planner-box,
.print-page.paper-a5.parent-meeting-print-page .parent-print-grid .planner-box{min-height:45mm;padding:2.5mm}
.print-page.paper-a5.meeting-print-page .meeting-print-grid .span-2{min-height:34mm}
.print-page.paper-a5.meeting-print-page .planner-box h3,
.print-page.paper-a5.parent-meeting-print-page .planner-box h3{margin-bottom:1.5mm;font-size:8pt}
.print-page.paper-a5.meeting-print-page .filled-note-lines span,
.print-page.paper-a5.meeting-print-page .filled-check-lines span,
.print-page.paper-a5.parent-meeting-print-page .filled-note-lines span,
.print-page.paper-a5.parent-meeting-print-page .filled-check-lines span{min-height:5mm}
.print-page.paper-a5.meeting-print-page .filled-note-lines b,
.print-page.paper-a5.meeting-print-page .filled-check-lines b,
.print-page.paper-a5.parent-meeting-print-page .filled-note-lines b,
.print-page.paper-a5.parent-meeting-print-page .filled-check-lines b{font-size:6.2pt}

.print-page.paper-a5.checklist-print-page .print-checklist-columns{gap:4px 12px}
.print-page.paper-a5.checklist-print-page .print-checklist-columns span{min-height:26px;font-size:7pt}
.print-page.paper-a5.checklist-print-page .print-checklist-columns i{width:11px;height:11px;flex-basis:11px}


/* Verze 1.1 – stav ukládání, bezpečnostní body a demo */
.save-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.save-overview-card{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border:1px solid rgba(35,65,70,.11);border-radius:17px;background:rgba(255,255,255,.9)}.save-overview-card>div{display:flex;gap:12px}.save-overview-card h3{margin:0 0 5px;font-size:15px}.save-overview-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.save-overview-card.emphasized{border-color:rgba(var(--primary-rgb),.32);background:linear-gradient(120deg,rgba(var(--primary-rgb),.08),rgba(255,255,255,.96))}.save-overview-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;color:var(--primary);background:rgba(var(--primary-rgb),.10);font-weight:900}.snapshot-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:10px;align-items:center}.small-note{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.demo-banner{position:sticky;top:0;z-index:10001;display:flex;justify-content:center;gap:10px;padding:9px 16px;color:#fff;background:#9a5d45;box-shadow:0 3px 12px rgba(0,0,0,.12);font-size:13px}.demo-banner span{opacity:.92}.demo-edition .app-shell{min-height:calc(100vh - 37px)}.demo-edition button:disabled{cursor:not-allowed;opacity:.46}.demo-print-mode .print-page{position:relative}.demo-print-mode .print-page::after{content:'DEMO · UKÁZKOVÁ VERZE';position:absolute;z-index:40;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-30deg);padding:10px 18px;border:3px solid rgba(154,93,69,.18);border-radius:10px;color:rgba(154,93,69,.20);font:800 30px/1.1 Arial,sans-serif;letter-spacing:.12em;white-space:nowrap;pointer-events:none}.status-warning{color:#8b5a23!important;background:#fff3dc!important}.status-success{color:#25694a!important;background:#e7f5ed!important}.status-danger{color:#9b3d3d!important;background:#fbe7e7!important}
@media(max-width:1100px){.save-overview-grid{grid-template-columns:1fr}.snapshot-controls{grid-template-columns:1fr 1fr}.snapshot-controls select{grid-column:1/-1}}
@media(max-width:620px){.snapshot-controls{grid-template-columns:1fr}.snapshot-controls select{grid-column:auto}.demo-banner{align-items:center;flex-direction:column;gap:2px;text-align:center}}
@media print{.demo-banner{display:none!important}}
@media(max-width:1180px){.topbar{margin-inline:-18px;padding-inline:18px}}

/* Hotfix 1.1.1 – stabilní týdenní karta */
.print-page.paper-a5.landscape .week-days-grid.days-7 .week-day-card>header{padding:1.2mm 1.4mm;gap:.35mm}
.print-page.paper-a5.landscape .week-days-grid.days-7 .week-day-card>header strong{font-size:6.4pt}
.print-page.paper-a5.landscape .week-days-grid.days-7 .week-day-card>header .day-date{font-size:5.4pt}
.print-page.paper-a5.landscape .weekly-sidebar{gap:1.5mm}
.print-page.paper-a5.landscape .weekly-sidebar .planner-box{padding:1.8mm}
.print-page.paper-a5.landscape .weekly-sidebar .planner-box h3{margin-bottom:1mm;font-size:6.4pt}

/* === VERZE 1.2: bezpečné číslování, wellbeing, PO a rasterové motivy === */
.page-number{
  bottom:2.4mm;
  min-width:8mm;
  padding:.55mm 2mm;
  border-radius:999px;
  color:#5f6c70;
  background:rgba(255,255,255,.88);
  box-shadow:0 0 0 .2mm rgba(95,108,112,.10);
  line-height:1.2;
  pointer-events:none;
}
.print-page.paper-a5 .page-number{bottom:1.4mm;font-size:6pt;padding:.4mm 1.5mm}
.print-page .prep-footer{bottom:7.2mm}
.print-page.paper-a5 .prep-footer{bottom:4.7mm}
.page-chip{max-width:92mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.print-page.paper-a5 .page-chip{max-width:58mm;font-size:6.5pt;padding:1.8mm 2.5mm}

/* Rasterové akvarelové podklady nahradily jednoduché vektorové dekorace. */
.theme-swatch,.design-preview-page,.print-page{background-position:center;background-size:cover;background-repeat:no-repeat}
body[data-print-mode="economy"] .print-page{background-image:none!important}
body[data-print-mode="mono"] .print-page{background-blend-mode:luminosity}

.wellbeing-settings-panel{border-color:rgba(var(--primary-rgb),.18);background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(var(--secondary-rgb),.10))}
.schedule-print-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid rgba(var(--primary-rgb),.14);border-radius:13px;background:rgba(var(--primary-rgb),.045)}
.schedule-print-filter .check-field{margin:0}

.student-table .po-col{width:62px;text-align:center}
.mini-check{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;color:var(--primary)}
.mini-check input{width:16px;height:16px;accent-color:var(--primary)}
.student-support-note{min-width:150px}
.grading-generated-table .support-col{width:7mm;min-width:7mm;text-align:center}
.grading-generated-table .support-mark{text-align:center;font-weight:900;color:var(--primary)}
.grading-generated-table tr.support-row td{background:rgba(var(--secondary-rgb),.18)}
.grading-generated-table .support-note{display:block;margin-top:.3mm;color:#667274;font-size:4.7pt;font-weight:500;line-height:1.1;white-space:normal}

.day-reflection{display:grid;grid-template-columns:auto auto;align-items:center;gap:1mm 2mm;margin-top:auto;padding-top:1.4mm;border-top:1px dashed rgba(var(--primary-rgb),.24);color:#647174;font-size:5.4pt;line-height:1.15}
.day-reflection span{font-weight:800;color:var(--primary)}
.day-reflection b{font-size:7.1pt;letter-spacing:.35mm;white-space:nowrap}
.day-reflection i{grid-column:1/-1;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-day-card.compact-weekend .day-reflection{display:none}
.weekend-prep-strip{min-height:10mm;margin-top:1.2mm;padding:1.5mm;border:1px solid rgba(var(--primary-rgb),.16);border-radius:1.8mm;background:rgba(var(--primary-rgb),.035);font-size:6pt}
.weekend-notes-only>div{min-height:24mm!important}
.lined-label{display:block;margin-bottom:1mm;color:var(--primary);font-size:6pt}

.weekly-reflection-grid{display:grid;grid-template-columns:auto 1fr;gap:1.2mm 2mm;color:#667274;font-size:5.8pt}
.weekly-reflection-grid span{font-weight:750;color:var(--primary);white-space:nowrap}
.weekly-reflection-grid i{height:3.4mm;border-bottom:1px solid rgba(100,115,117,.35)}
.weekly-reflection-grid b{font-size:7pt;letter-spacing:.5mm}
.print-page.paper-a5 .weekly-reflection-grid{font-size:5.1pt;gap:.8mm 1.2mm}
.print-page.paper-a5 .weekly-reflection-grid span:nth-of-type(n+3),.print-page.paper-a5 .weekly-reflection-grid i:nth-of-type(n+3){display:none}

.wellbeing-rules{display:grid;gap:2.2mm;margin:2mm 0 3mm;padding-left:6mm;color:#465458;font-size:7.1pt;line-height:1.35}
.wellbeing-rules li::marker{color:var(--primary);font-weight:900}
.wellbeing-faces{margin:2mm 0 3mm!important;font-size:15pt!important;letter-spacing:2mm;text-align:center}
.wellbeing-week-print{display:grid;grid-template-columns:35mm 1fr;gap:2.5mm 4mm;margin-top:3mm;color:#5c696c;font-size:7pt}
.wellbeing-week-print span{font-weight:800;color:var(--primary)}
.wellbeing-week-print i{height:5mm;border-bottom:1px solid rgba(90,110,112,.36)}
.wellbeing-week-print b{letter-spacing:2mm;font-size:11pt}

@media(max-width:760px){
  .schedule-print-filter{display:grid;grid-template-columns:1fr}
  .student-support-note{min-width:120px}
}

@media print{
  .page-number{background:#fff!important;box-shadow:none!important}
}

/* Verze 1.2 – atribut hidden musí mít přednost před komponentovými styly. */
[hidden]{display:none!important;}


/* === VERZE 1.3: skutečný pracovní offline diář === */
.nav-divider{margin:9px 12px 5px;padding-top:10px;border-top:1px solid rgba(255,255,255,.13);color:rgba(255,255,255,.52);font-size:9px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.nav-item.nav-primary{background:rgba(255,255,255,.04)}.nav-item.nav-primary.active{background:rgba(255,255,255,.17)}
.digital-workspace-view{max-width:1500px}.workspace-datebar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.workspace-datebar h2{margin:3px 0 3px;font:700 28px/1.15 Georgia,serif;color:var(--ink)}.workspace-datebar p{margin:0;color:var(--muted)}.date-navigation{display:flex;align-items:center;gap:8px}.date-navigation input{height:39px;padding:0 12px;border:1px solid var(--border);border-radius:11px;background:#fff;color:var(--ink);font-weight:700}.date-arrow{width:38px;height:38px;font-size:24px}
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:14px}.week-strip button{position:relative;display:grid;gap:2px;place-items:center;min-height:64px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.9);color:var(--muted);cursor:pointer}.week-strip button span{font-size:10px;font-weight:850;text-transform:uppercase}.week-strip button b{font-size:19px;color:var(--ink)}.week-strip button i{position:absolute;right:7px;top:7px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(var(--accent-rgb),.18);color:#78583d;font-size:9px;font-style:normal;font-weight:900}.week-strip button.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.1);box-shadow:0 4px 15px rgba(var(--primary-rgb),.12)}.week-strip button.today::after{content:'';position:absolute;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.digital-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.digital-stats-grid article{display:flex;align-items:center;gap:11px;padding:14px 16px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.92)}.digital-stats-grid article>span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:rgba(var(--primary-rgb),.09);color:var(--primary);font-size:18px;font-weight:900}.digital-stats-grid strong{display:block;color:var(--ink);font-size:22px}.digital-stats-grid small{color:var(--muted)}
.workspace-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:14px}.workspace-side-stack{display:grid;gap:14px}.agenda-panel{min-height:430px}.daily-agenda{display:grid;gap:7px}.agenda-item{display:grid;grid-template-columns:68px 12px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:10px 11px;border:1px solid rgba(35,65,70,.1);border-radius:13px;background:#fff;text-align:left;color:inherit}.agenda-item.lesson{cursor:pointer}.agenda-item.lesson:hover{border-color:rgba(var(--primary-rgb),.35);transform:translateY(-1px)}.agenda-item.prepared{background:linear-gradient(100deg,rgba(var(--primary-rgb),.07),#fff)}.agenda-time{color:var(--muted);font-size:10px;font-weight:800}.agenda-dot{width:9px;height:9px;border-radius:50%;background:var(--line)}.agenda-item.lesson .agenda-dot{background:var(--primary)}.agenda-item.substitution .agenda-dot{background:#d18c41}.agenda-item.meeting .agenda-dot{background:#8b6cb0}.agenda-item.parents .agenda-dot{background:#d98b92}.agenda-item.holiday .agenda-dot{background:#6ea271}.agenda-content{display:grid;gap:2px}.agenda-content strong{font-size:13px;color:var(--ink)}.agenda-content small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-item em{padding:4px 7px;border-radius:999px;background:rgba(var(--primary-rgb),.08);color:var(--primary);font-size:9px;font-style:normal;font-weight:850}
.quick-add-row{display:grid;grid-template-columns:minmax(0,1fr) 105px auto;gap:7px;margin-bottom:9px}.quick-add-row input,.quick-add-row select,.quick-note-panel textarea,.compact-field input{width:100%;border:1px solid var(--border);border-radius:10px;background:#fff;padding:9px 10px;color:var(--ink)}.workspace-task-list{display:grid;gap:6px;margin-bottom:8px}.task-row{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border-left:3px solid var(--line);border-radius:9px;background:rgba(248,250,249,.9)}.task-row.priority-high{border-left-color:#d07962}.task-row.priority-low{border-left-color:#a8b6b4}.task-row.overdue{background:#fff4ef}.task-row.done{opacity:.58}.task-row.done strong{text-decoration:line-through}.task-toggle{width:22px;height:22px;border:1.5px solid var(--primary);border-radius:7px;background:#fff;color:var(--primary);font-weight:900;cursor:pointer}.task-row strong{display:block;font-size:12px}.task-row small{color:var(--muted);font-size:9.5px}.quick-note-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.quick-note-actions small{color:var(--muted);font-size:10px}
.workspace-bottom-grid{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:14px;margin-top:14px}.rating-faces{display:flex;gap:7px;margin-bottom:12px}.rating-faces button{width:42px;height:42px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;filter:grayscale(.15);opacity:.8;display:flex;align-items:center;justify-content:center;padding:0}.rating-faces button:hover,.rating-faces button.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.1);filter:none;opacity:1;transform:scale(1.04)}.face-svg{width:22px;height:22px;display:block}.bw-face-row{display:inline-flex;align-items:center;gap:4px;vertical-align:middle}.bw-face-row .bw-face-icon{display:inline-flex;align-items:center;justify-content:center}.bw-face-row .face-svg{width:17px;height:17px}.wellbeing-face-row .face-svg{width:16px;height:16px}.day-reflection .mood-scale{display:flex;align-items:center;justify-content:flex-end}.compact-field{display:grid;gap:4px;margin-top:8px}.compact-field span{color:var(--muted);font-size:10px;font-weight:800}.upcoming-items{display:grid;gap:4px}.upcoming-items>div{display:grid;grid-template-columns:45px 8px 1fr;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid rgba(35,65,70,.08)}.upcoming-date{color:var(--muted);font-size:10px;font-weight:850}.upcoming-items i{width:7px;height:7px;border-radius:50%;background:var(--primary)}.upcoming-items p{margin:0}.upcoming-items strong,.upcoming-items small{display:block}.upcoming-items strong{font-size:11px}.upcoming-items small{color:var(--muted);font-size:9px}.quick-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quick-action-grid button{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;gap:1px 7px;padding:11px;border:1px solid var(--border);border-radius:12px;background:#fff;text-align:left;cursor:pointer}.quick-action-grid button:hover{border-color:var(--primary);background:rgba(var(--primary-rgb),.04)}.quick-action-grid span{grid-row:1/3;align-self:center;color:var(--primary);font-size:20px}.quick-action-grid b{font-size:11px}.quick-action-grid small{color:var(--muted);font-size:9px}
.task-note-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px}.task-add-form{display:grid;grid-template-columns:minmax(180px,1fr) 145px 145px 145px auto;gap:8px;margin-bottom:10px}.task-add-form input,.task-add-form select,.task-filters input,.task-filters select,.note-add-form input,.note-add-form textarea,.digital-lesson-filters input{border:1px solid var(--border);border-radius:10px;background:#fff;padding:10px;color:var(--ink)}.task-filters{display:grid;grid-template-columns:145px 145px 1fr;gap:8px;margin-bottom:12px;padding:10px;border-radius:12px;background:rgba(var(--primary-rgb),.04)}.task-manager-list{display:grid;gap:7px}.task-manager-list .task-row{padding:11px}.note-add-form{display:grid;gap:8px;margin-bottom:13px}.note-manager-list{display:grid;gap:9px;max-height:620px;overflow:auto;padding-right:3px}.note-card{padding:12px;border:1px solid var(--border);border-radius:13px;background:#fff}.note-card.pinned{border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.055)}.note-card>div{display:flex;justify-content:space-between;gap:10px}.note-card strong{font-size:12px}.note-card small{color:var(--muted);font-size:9px}.note-card p{margin:8px 0;color:#4f5d60;font-size:11px;line-height:1.55}.note-card footer{display:flex;gap:10px}.text-link.danger{color:#a74d4d}
.digital-lessons-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px}.digital-lesson-filters{display:grid;gap:8px;margin-bottom:10px}.digital-lesson-list{display:grid;gap:7px;max-height:720px;overflow:auto}.digital-lesson-card{position:relative;display:grid;gap:3px;width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;text-align:left;cursor:pointer}.digital-lesson-card:hover,.digital-lesson-card.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.055)}.digital-lesson-card span{color:var(--muted);font-size:9px;font-weight:800}.digital-lesson-card strong{font-size:12px}.digital-lesson-card small{padding-right:68px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.digital-lesson-card em{position:absolute;right:8px;bottom:8px;padding:3px 6px;border-radius:999px;background:rgba(var(--primary-rgb),.08);color:var(--primary);font-size:8px;font-style:normal;font-weight:850}.digital-lesson-card em.status-ready{background:#e4f3e9;color:#377553}.digital-lesson-card em.status-done{background:#e6edf7;color:#45658c}.digital-lesson-card em.status-moved{background:#f5eadf;color:#956137}.digital-lesson-editor textarea{resize:vertical}
.empty-state.mini-empty{padding:14px;font-size:10px}.btn-danger{color:#a74444!important;border-color:#e6bcbc!important;background:#fff4f4!important}
@media(max-width:1200px){.workspace-bottom-grid{grid-template-columns:1fr 1fr}.quick-actions-panel{grid-column:1/-1}.task-add-form{grid-template-columns:1fr 1fr 1fr}.task-add-form #taskNewTitle{grid-column:1/-1}.digital-lessons-layout{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:900px){.workspace-main-grid,.task-note-layout,.digital-lessons-layout{grid-template-columns:1fr}.digital-lesson-list{max-height:330px}.workspace-bottom-grid{grid-template-columns:1fr}.quick-actions-panel{grid-column:auto}.digital-stats-grid{grid-template-columns:1fr 1fr}.task-add-form{grid-template-columns:1fr 1fr}.workspace-datebar{align-items:flex-start;flex-direction:column}.date-navigation{width:100%;flex-wrap:wrap}.week-strip{gap:5px}.week-strip button{min-height:55px}.agenda-panel{min-height:0}}
@media(max-width:620px){.week-strip{grid-template-columns:repeat(7,minmax(42px,1fr));overflow-x:auto}.week-strip button{min-width:43px}.digital-stats-grid{grid-template-columns:1fr 1fr;gap:7px}.digital-stats-grid article{padding:10px}.workspace-main-grid{display:block}.workspace-side-stack{margin-top:12px}.workspace-side-stack>.panel+ .panel{margin-top:12px}.quick-add-row{grid-template-columns:1fr}.quick-note-actions{align-items:stretch;flex-direction:column}.task-add-form,.task-filters{grid-template-columns:1fr}.task-add-form #taskNewTitle{grid-column:auto}.agenda-item{grid-template-columns:55px 9px minmax(0,1fr)}.agenda-item em{display:none}.workspace-datebar h2{font-size:24px}.date-navigation input{flex:1}.quick-action-grid{grid-template-columns:1fr}.digital-lesson-editor .three-col{grid-template-columns:1fr}.digital-lesson-editor .span-3{grid-column:auto}}
@media print{#view-workspace,#view-tasksNotes,#view-digitalLessons{display:none!important}}

@media(max-width:620px){.topbar{position:static!important;margin-inline:0!important;padding-inline:0!important}.top-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.top-actions .btn{width:100%}}


/* Verze 1.4 – digitální týdenní a měsíční kalendář */
.calendar-work-intro{align-items:flex-start}.calendar-toolbar{display:grid;grid-template-columns:auto minmax(290px,.8fr) minmax(320px,1fr);align-items:center;gap:14px;padding:12px 14px;margin-bottom:14px}.calendar-mode-switch{display:flex;padding:3px;border-radius:12px;background:rgba(var(--primary-rgb),.07)}.calendar-mode-switch button{border:0;background:transparent;padding:8px 13px;border-radius:9px;color:var(--muted);font-weight:800;cursor:pointer}.calendar-mode-switch button.active{background:#fff;color:var(--primary);box-shadow:0 4px 12px rgba(30,60,65,.09)}.calendar-period-nav,.calendar-filters{display:flex;align-items:center;gap:8px}.calendar-period-nav input,.calendar-filters input,.calendar-filters select{min-width:0}.calendar-filters input{flex:1}.calendar-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.calendar-summary-grid article{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid rgba(35,65,70,.1);border-radius:14px;background:rgba(255,255,255,.88)}.calendar-summary-grid article>span{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:rgba(var(--primary-rgb),.1);color:var(--primary);font-size:17px}.calendar-summary-grid strong,.calendar-summary-grid small{display:block}.calendar-summary-grid strong{font-size:19px;color:var(--ink)}.calendar-summary-grid small{font-size:10px;color:var(--muted)}
.calendar-work-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:14px}.calendar-side-stack{display:grid;gap:14px;align-content:start}.digital-calendar-grid{min-height:540px}.calendar-week-head,.calendar-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:5px}.calendar-week-head span,.calendar-month-head span{text-align:center;padding:7px 3px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.calendar-week-grid,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week-grid{min-height:500px}.calendar-day-cell{min-width:0;border:1px solid rgba(35,65,70,.11);border-radius:13px;background:#fff;padding:8px;text-align:left;color:inherit;cursor:pointer;overflow:hidden}.calendar-week-grid .calendar-day-cell{min-height:470px}.calendar-month-grid .calendar-day-cell{min-height:105px}.calendar-day-cell:hover,.calendar-day-cell.selected{border-color:rgba(var(--primary-rgb),.45);box-shadow:inset 0 0 0 1px rgba(var(--primary-rgb),.12)}.calendar-day-cell.today{background:linear-gradient(145deg,rgba(var(--primary-rgb),.08),#fff)}.calendar-day-cell.outside{opacity:.43}.calendar-day-number{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:7px}.calendar-day-number strong{font-size:14px}.calendar-day-number span{font-size:9px;color:var(--muted);white-space:nowrap}.calendar-chip-list{display:grid;gap:4px}.calendar-chip{display:block;min-width:0;padding:4px 6px;border-radius:7px;background:rgba(var(--primary-rgb),.08);border-left:3px solid var(--primary);font-size:9px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-chip.kind-task{border-color:#d29a48;background:#fff7e9}.calendar-chip.kind-lesson{border-color:#4d8da8;background:#eef8fb}.calendar-chip.kind-meeting{border-color:#8c70ad;background:#f6f1fb}.calendar-chip.kind-substitution{border-color:#cf7e45;background:#fff2e9}.calendar-chip.kind-holiday{border-color:#6d9c6c;background:#f1f8ef}.calendar-chip.kind-event{border-color:#d07885;background:#fff1f3}.calendar-more{font-size:9px;color:var(--muted);padding:2px 5px}.calendar-agenda-range{display:grid;gap:8px}.calendar-agenda-date{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid rgba(35,65,70,.09)}.calendar-agenda-date>strong{font-size:11px;color:var(--primary)}.calendar-agenda-items{display:grid;gap:5px}.calendar-agenda-item,.calendar-day-item{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:start;gap:8px;padding:7px 8px;border-radius:10px;background:rgba(var(--primary-rgb),.045);border:1px solid rgba(35,65,70,.08);text-align:left;color:inherit;width:100%}.calendar-agenda-item button,.calendar-day-item button{font:inherit}.calendar-item-dot{width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--primary)}.calendar-agenda-item.kind-task .calendar-item-dot,.calendar-day-item.kind-task .calendar-item-dot{background:#d29a48}.calendar-agenda-item.kind-lesson .calendar-item-dot,.calendar-day-item.kind-lesson .calendar-item-dot{background:#4d8da8}.calendar-agenda-item.kind-meeting .calendar-item-dot,.calendar-day-item.kind-meeting .calendar-item-dot{background:#8c70ad}.calendar-agenda-item.kind-substitution .calendar-item-dot,.calendar-day-item.kind-substitution .calendar-item-dot{background:#cf7e45}.calendar-agenda-item.kind-holiday .calendar-item-dot,.calendar-day-item.kind-holiday .calendar-item-dot{background:#6d9c6c}.calendar-agenda-item.kind-event .calendar-item-dot,.calendar-day-item.kind-event .calendar-item-dot{background:#d07885}.calendar-agenda-item strong,.calendar-day-item strong{display:block;font-size:11px}.calendar-agenda-item small,.calendar-day-item small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.calendar-agenda-item time,.calendar-day-item time{font-size:9px;color:var(--muted);white-space:nowrap}.calendar-day-agenda{display:grid;gap:6px;max-height:360px;overflow:auto}.calendar-event-form textarea{resize:vertical}.calendar-main-panel .panel-heading small{color:var(--muted)}
.task-row-actions{display:flex;gap:4px}.task-shift{border:0;border-radius:7px;background:rgba(var(--primary-rgb),.07);color:var(--primary);font-size:9px;font-weight:800;padding:5px 7px;cursor:pointer}.task-repeat-badge{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:999px;background:rgba(var(--primary-rgb),.08);color:var(--primary);font-size:8px;font-style:normal}.task-add-form.task-add-form-v14{grid-template-columns:minmax(180px,1.7fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(130px,.8fr) auto}.task-filters.task-filters-v14{grid-template-columns:minmax(120px,.7fr) minmax(120px,.7fr) minmax(140px,.8fr) minmax(180px,1fr)}
@media(max-width:1180px){.calendar-toolbar{grid-template-columns:1fr 1fr}.calendar-filters{grid-column:1/-1}.calendar-work-layout{grid-template-columns:1fr}.calendar-side-stack{grid-template-columns:1fr 1fr}.task-add-form.task-add-form-v14{grid-template-columns:repeat(3,1fr)}.task-add-form.task-add-form-v14 .btn{grid-column:auto}}
@media(max-width:760px){.calendar-toolbar{grid-template-columns:1fr}.calendar-filters{grid-column:auto}.calendar-period-nav,.calendar-filters{flex-wrap:wrap}.calendar-summary-grid{grid-template-columns:1fr 1fr}.calendar-side-stack{grid-template-columns:1fr}.calendar-week-grid,.calendar-month-grid{overflow-x:auto;display:flex;scroll-snap-type:x mandatory}.calendar-week-grid .calendar-day-cell,.calendar-month-grid .calendar-day-cell{flex:0 0 78%;min-height:300px;scroll-snap-align:start}.calendar-week-head,.calendar-month-head{display:none}.task-add-form.task-add-form-v14,.task-filters.task-filters-v14{grid-template-columns:1fr}.calendar-mode-switch{width:100%}.calendar-mode-switch button{flex:1}.calendar-summary-grid article{padding:9px}.calendar-summary-grid strong{font-size:16px}}

/* Mobilní ochrana: horizontální posun zůstává pouze uvnitř navigace a kalendáře. */
html,body{max-width:100%;overflow-x:hidden}

.agenda-item.custom .agenda-dot{background:#d07885}.upcoming-items i.type-custom{background:#d07885}

/* Verze 1.5 – Fáze 1: oslovení, hlášky žáků, uzavření období */
.onboarding-preferences{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(var(--primary-rgb),.045)}
.onboarding-preferences .field{margin:0}.onboarding-preferences input,.onboarding-preferences select{width:100%}
.hero-art-watercolor{position:relative;min-height:230px;overflow:hidden;border-radius:24px;background:linear-gradient(145deg,rgba(var(--primary-rgb),.08),rgba(255,255,255,.76))}
.hero-watercolor-image{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.25),transparent 45%),url('assets/img/b6cd28c6de97000e.jpg') center/cover no-repeat;filter:saturate(.82);opacity:.92}
.student-quotes-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:16px}
.student-quote-filters{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:8px;margin-bottom:12px}.student-quote-filters input,.student-quote-filters select{min-width:0;width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.student-quote-list{display:grid;gap:9px;max-height:680px;overflow:auto;padding-right:3px}.student-quote-card{position:relative;display:grid;gap:5px;width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:#fff;text-align:left;cursor:pointer}.student-quote-card:hover,.student-quote-card.selected{border-color:rgba(var(--primary-rgb),.42);background:rgba(var(--primary-rgb),.045)}.student-quote-card span,.student-quote-card small{color:var(--muted);font-size:10px}.student-quote-card blockquote{margin:2px 0;color:var(--ink);font-family:Georgia,serif;font-size:15px;line-height:1.5}.student-quote-card em{position:absolute;right:12px;top:10px;color:#bd8b3e;font-size:9px;font-style:normal}
.year-close-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:16px}.numbered-guide{display:grid;gap:12px;margin:0;padding:0;counter-reset:steps}.numbered-guide li{position:relative;display:grid;gap:3px;padding-left:42px;list-style:none}.numbered-guide li:before{counter-increment:steps;content:counter(steps);position:absolute;left:0;top:0;width:29px;height:29px;display:grid;place-items:center;border-radius:10px;color:#fff;background:var(--primary);font-weight:800}.numbered-guide b{font-size:12px}.numbered-guide span{color:var(--muted);font-size:10px;line-height:1.5}.privacy-warning{padding:11px 13px;border-radius:12px;background:rgba(var(--accent-rgb),.09);color:#5a5d58;font-size:10px;line-height:1.55}.rollover-preview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.rollover-preview>div{display:grid;gap:3px;min-height:75px;place-content:center;padding:10px;border:1px solid var(--border);border-radius:13px;background:rgba(var(--primary-rgb),.035);text-align:center}.rollover-preview strong{color:var(--primary);font-size:18px}.rollover-preview span{color:var(--muted);font-size:9px}
/* Formulář úkolu se nesmí roztahovat mimo panel. */
.task-manager-panel,.task-note-layout>*{min-width:0}.task-add-form.task-add-form-v14{grid-template-columns:minmax(0,2fr) repeat(4,minmax(105px,.8fr)) minmax(110px,auto);width:100%;max-width:100%}.task-add-form.task-add-form-v14>*{min-width:0;width:100%;max-width:100%;box-sizing:border-box}.task-filters.task-filters-v14>*{min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:1180px){.task-add-form.task-add-form-v14{grid-template-columns:repeat(2,minmax(0,1fr))}.task-add-form.task-add-form-v14 #taskNewTitle{grid-column:1/-1}.task-add-form.task-add-form-v14 .btn{grid-column:1/-1}}
@media(max-width:900px){.student-quotes-layout,.year-close-grid{grid-template-columns:1fr}.rollover-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.onboarding-preferences,.student-quote-filters,.task-add-form.task-add-form-v14{grid-template-columns:1fr}.task-add-form.task-add-form-v14 #taskNewTitle,.task-add-form.task-add-form-v14 .btn{grid-column:auto}.rollover-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.section-actions{flex-wrap:wrap}.section-actions .btn{flex:1}}

/* ===== Verze 1.5 · Fáze 2: reflexe, známky a volitelné pracovní moduly ===== */
.feature-settings-panel { overflow: hidden; }
.feature-toggle-grid,
.onboarding-feature-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-content: start; }
.onboarding-preferences .span-2 { grid-column: span 2; }

.reflection-overview-list { display: grid; gap: 14px; }
.reflection-record { padding: 0; overflow: hidden; }
.reflection-record > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--border); background: linear-gradient(135deg,rgba(var(--primary-rgb),.08),rgba(255,255,255,.75)); }
.reflection-record header span { color: var(--muted); font-size: .82rem; font-weight: 700; }
.reflection-record header h3 { margin: 4px 0; font-size: 1.05rem; }
.reflection-record header p { margin: 0; color: var(--muted); }
.reflection-record-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.reflection-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.reflection-columns section { min-height: 120px; padding: 16px 18px; border-right: 1px solid var(--border); }
.reflection-columns section:last-child { border-right: 0; }
.reflection-columns h4 { margin: 0 0 8px; color: var(--primary); font-size: .86rem; text-transform: uppercase; letter-spacing: .04em; }
.reflection-columns p { margin: 0; white-space: pre-wrap; line-height: 1.55; }

.grades-layout { display: grid; grid-template-columns: minmax(420px,.9fr) minmax(420px,1.1fr); gap: 18px; align-items: start; }
.grade-editor-panel { position: sticky; top: 88px; }
.grade-filters { display: grid; grid-template-columns: minmax(130px,.7fr) minmax(120px,.6fr) minmax(180px,1fr); gap: 8px; margin-bottom: 12px; }
.grade-filters input,.grade-filters select { width: 100%; min-width: 0; }
.grade-list { display: grid; gap: 8px; max-height: 670px; overflow: auto; padding-right: 4px; }
.grade-record { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 12px 13px; border: 1px solid var(--border); border-radius: 13px; background: var(--panel); color: inherit; text-align: left; cursor: pointer; }
.grade-record:hover,.grade-record.selected { border-color: var(--primary); box-shadow: 0 7px 20px rgba(var(--primary-rgb),.10); }
.grade-record span { min-width: 0; display: grid; gap: 3px; }
.grade-record strong,.grade-record small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grade-record small,.grade-record time { color: var(--muted); }
.grade-record b { min-width: 64px; text-align: center; padding: 7px 9px; border-radius: 10px; background: rgba(var(--primary-rgb),.10); color: var(--primary); }
.grade-record time { font-size: .78rem; white-space: nowrap; }

.nav-item[hidden], [data-feature][hidden] { display: none !important; }

@media (max-width: 1120px) {
  .grades-layout { grid-template-columns: 1fr; }
  .grade-editor-panel { position: static; }
  .five-col { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .feature-toggle-grid,.onboarding-feature-grid { grid-template-columns: 1fr; }
  .reflection-record > header { flex-direction: column; }
  .reflection-record-actions { justify-content: flex-start; }
  .reflection-columns { grid-template-columns: 1fr; }
  .reflection-columns section { border-right: 0; border-bottom: 1px solid var(--border); min-height: auto; }
  .reflection-columns section:last-child { border-bottom: 0; }
  .grade-filters { grid-template-columns: 1fr; }
  .grade-record { grid-template-columns: minmax(0,1fr) auto; }
  .grade-record time { grid-column: 1 / -1; }
  .five-col { grid-template-columns: 1fr; }
}
.form-grid.five-col { grid-template-columns: repeat(5,minmax(0,1fr)); }
@media (max-width: 1120px) { .form-grid.five-col { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) { .form-grid.five-col { grid-template-columns: 1fr; } }

/* VERZE 1.5 – FÁZE 3: klasický známkový arch a přesné náhledy motivů */
.gradebook-setup-panel,.gradebook-column-panel,.gradebook-table-panel{overflow:hidden}
.gradebook-selector-grid{grid-template-columns:1.05fr 1.2fr .8fr 1.35fr .8fr}
.gradebook-print-options{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.gradebook-column-form{display:grid;grid-template-columns:1.3fr .8fr .9fr .8fr auto;gap:12px;align-items:end}
.gradebook-column-form .btn{min-height:42px;margin-bottom:1px}
.gradebook-help-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-3px 0 12px;color:var(--muted);font-size:11px}
.gradebook-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;overscroll-behavior:contain}
.gradebook-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12px}
.gradebook-table th,.gradebook-table td{height:42px;padding:0;border-right:1px solid #dce6e4;border-bottom:1px solid #dce6e4;background:#fff;vertical-align:middle}
.gradebook-table thead th{position:sticky;z-index:4;top:0;height:74px;color:#314447;background:#edf5f3;font-size:10px;text-align:center}
.gradebook-table tbody tr:last-child>*{border-bottom:0}.gradebook-table tr>*:last-child{border-right:0}
.gradebook-table .sticky-col{position:sticky;z-index:3;background:#fbfdfc}.gradebook-table thead .sticky-col{z-index:6;background:#e8f2f0}
.gradebook-table .sticky-col-1,.gradebook-order{left:0;width:42px;min-width:42px;text-align:center}
.gradebook-table .sticky-col-2,.gradebook-student-name{left:42px;width:190px;min-width:190px}
.gradebook-student-name{position:sticky;z-index:2;padding:0 11px!important;color:#2a3c3f;background:#fbfdfc!important;font-weight:750;text-align:left}
.gradebook-table tbody tr:hover td,.gradebook-table tbody tr:hover th{background:#f7fbfa!important}
.gradebook-table tbody tr.support-row td,.gradebook-table tbody tr.support-row th{background:#fffaf0!important}
.gradebook-po{display:inline-grid;place-items:center;margin-left:7px;padding:2px 5px;border-radius:6px;color:#795e1f;background:#fff0bf;font-size:8px;font-weight:900}
.gradebook-support-head,.gradebook-support-note{width:110px;min-width:110px;max-width:110px;padding:5px 7px!important;color:#6a7476;font-size:9px;line-height:1.25}
.gradebook-assessment-head{width:84px;min-width:84px;max-width:84px}
.gradebook-head-box{position:relative;display:grid;gap:3px;align-content:center;height:100%;padding:6px 19px 5px 5px}
.gradebook-header-title{width:100%;min-width:0;border:0;border-bottom:1px dashed rgba(var(--primary-rgb),.35);padding:2px;color:#2d4144;background:transparent;font:inherit;font-weight:800;text-align:center}
.gradebook-header-title:focus{outline:2px solid rgba(var(--primary-rgb),.24);border-radius:5px;background:#fff}
.gradebook-head-box small{display:block;overflow:hidden;color:#718184;font-size:8px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.gradebook-delete-column{position:absolute;right:2px;top:2px;width:18px;height:18px;border:0;border-radius:5px;color:#8a5458;background:transparent;font-size:14px;cursor:pointer}.gradebook-delete-column:hover{background:#fde9e9}
.gradebook-value-cell{width:84px;min-width:84px;max-width:84px}.gradebook-cell-input,.gradebook-result-input,.gradebook-note-input{width:100%;height:100%;border:0;padding:5px 7px;color:#24383b;background:transparent;text-align:center;font:inherit;font-weight:750}
.gradebook-cell-input:focus,.gradebook-result-input:focus,.gradebook-note-input:focus{position:relative;z-index:1;outline:2px solid var(--primary);outline-offset:-2px;background:#fff}
.gradebook-average-head,.gradebook-average{width:67px;min-width:67px;text-align:center}.gradebook-average{color:#476165;background:#f3f8f7!important;font-weight:850}
.gradebook-result-head,.gradebook-result-cell{width:74px;min-width:74px}.gradebook-note-head,.gradebook-note-cell{width:150px;min-width:150px}.gradebook-note-input{text-align:left;font-weight:500}
.gradebook-legacy-panel{border-style:dashed;background:#fffcf4}
.gradebook-print-page .grade-col small,.gradebook-generated-table .grade-col small{display:block;margin-top:1mm;font-size:5.5pt;font-weight:500;line-height:1.05}
.gradebook-generated-table td{font-weight:700;text-align:center}

.theme-category-bar{display:flex;flex-wrap:wrap;gap:7px;margin:3px 0 8px}
.theme-category-bar button{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:#526366;background:#fff;font-size:11px;font-weight:800;cursor:pointer}
.theme-category-bar button:hover{border-color:rgba(var(--primary-rgb),.45)}.theme-category-bar button.active{border-color:var(--primary);color:#fff;background:var(--primary)}
.theme-preview-note{margin:0 0 13px;color:var(--muted);font-size:11px}
.theme-swatch{background:#f3f6f5}.theme-art{background:var(--theme-bg)!important;opacity:1!important}.theme-overlay{position:absolute;inset:0;background:var(--theme-pattern);opacity:.45;mix-blend-mode:multiply}.theme-dots{z-index:2}
.premium-raster-badge{position:absolute;left:9px;top:9px;z-index:4;padding:5px 8px;border-radius:999px;color:#fff;background:rgba(29,48,56,.88);box-shadow:0 3px 10px rgba(20,38,45,.18);font-size:7.5px;font-style:normal;font-weight:900;letter-spacing:.09em}
.theme-card:has(.premium-raster-badge){border-color:rgba(var(--primary-rgb),.13)}
.theme-card:has(.premium-raster-badge).selected{border-color:var(--primary)}
.playful-school-badge{position:absolute;right:9px;top:9px;z-index:4;padding:5px 8px;border-radius:999px;color:#fff;background:rgba(225,123,100,.9);box-shadow:0 3px 10px rgba(154,89,74,.18);font-size:8px;font-style:normal;font-weight:900;letter-spacing:.06em}
.theme-card:has(.playful-school-badge){border-color:rgba(225,123,100,.18)}
.theme-card:has(.playful-school-badge).selected{border-color:var(--primary)}


@media(max-width:1150px){.gradebook-selector-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gradebook-column-form{grid-template-columns:repeat(2,minmax(0,1fr))}.gradebook-column-form .btn{width:100%}}
@media(max-width:760px){.gradebook-selector-grid{grid-template-columns:1fr}.gradebook-column-form{grid-template-columns:1fr}.gradebook-print-options{display:grid}.gradebook-help-row{align-items:flex-start;flex-direction:column}.gradebook-student-name{width:145px;min-width:145px}.gradebook-table .sticky-col-2,.gradebook-student-name{left:42px}.gradebook-support-head,.gradebook-support-note{display:none}.theme-category-bar{flex-wrap:nowrap;overflow:auto;padding-bottom:4px}.theme-category-bar button{flex:0 0 auto}}
.gradebook-order{position:sticky;z-index:2;background:#fbfdfc!important}

/* FÁZE 3 · Akvarelové motivy používají vlastní malované pozadí bez starých geometrických dekorací. */
body:is([data-theme="forest"],[data-theme="sea"],[data-theme="botanical"],[data-theme="meadow"],[data-theme="mountains"],[data-theme="pastel"]) .page-watermark{display:none!important}
body:is([data-theme="forest"],[data-theme="sea"],[data-theme="botanical"],[data-theme="meadow"],[data-theme="mountains"],[data-theme="pastel"]) .theme-overlay{opacity:.18}


/* FÁZE 4 · Edice produktu a přehlednější iniciace */
.edition-badge{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border:1px solid rgba(var(--primary-rgb),.24);border-radius:999px;color:var(--primary);background:rgba(var(--primary-rgb),.075);font-size:11px;font-weight:900;white-space:nowrap}
.edition-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.edition-option{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon title" "icon text" "icon tag";gap:2px 12px;min-height:126px;padding:17px;border:1px solid var(--line);border-radius:18px;color:#2b3e41;background:linear-gradient(145deg,#fff,rgba(var(--primary-rgb),.025));text-align:left;cursor:pointer;transition:.18s ease}
.edition-option:hover{border-color:rgba(var(--primary-rgb),.42);transform:translateY(-2px);box-shadow:0 12px 28px rgba(34,67,72,.08)}
.edition-option.selected{border:2px solid var(--primary);background:linear-gradient(145deg,rgba(var(--primary-rgb),.11),#fff 64%);box-shadow:0 12px 32px rgba(var(--primary-rgb),.12)}
.edition-option.selected::after{content:"✓";position:absolute;right:12px;top:12px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-size:12px;font-weight:900}
.edition-icon{grid-area:icon;width:42px;height:42px;display:grid;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(145deg,var(--primary),var(--secondary));font-size:21px;box-shadow:0 8px 18px rgba(var(--primary-rgb),.18)}
.edition-option b{grid-area:title;padding-right:25px;font-size:15px}.edition-option small{grid-area:text;color:var(--muted);font-size:11px;line-height:1.45}.edition-option em{grid-area:tag;margin-top:5px;color:var(--primary);font-size:10px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.edition-summary{display:flex;align-items:flex-start;gap:12px;margin:10px 0 15px;padding:13px 15px;border-radius:14px;color:#526568;background:rgba(var(--primary-rgb),.055);font-size:12px;line-height:1.5}.edition-summary b{flex:0 0 auto;color:var(--primary)}.edition-summary.compact{margin:10px 0 0}
.edition-feature-grid{margin-top:12px;padding-top:13px;border-top:1px solid var(--line)}
.edition-dashboard-card{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:18px;background:linear-gradient(115deg,rgba(var(--primary-rgb),.10),#fff 58%,rgba(var(--secondary-rgb),.08))}.edition-dashboard-copy h3{margin:4px 0 4px;font-family:Georgia,serif;font-size:22px}.edition-dashboard-copy p{margin:0;color:var(--muted)}.edition-dashboard-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.onboarding-step{margin:0 0 16px}.onboarding-step-label{display:block;margin:0 0 8px;color:var(--primary);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.onboarding-edition-picker{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.onboarding-edition-picker .edition-option{min-height:118px}.onboarding-content{padding-top:38px}.onboarding-content>p{margin-bottom:18px}.onboarding-feature-grid{margin:0;padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(var(--primary-rgb),.035)}
body[data-edition="pdf"] .nav-primary{display:none!important}body[data-edition="pdf"] #todayBtnTop{display:none}
.theme-swatch{position:relative;overflow:hidden}.theme-art{position:absolute;inset:0;background-size:cover!important;background-position:center!important}.theme-card .theme-overlay{pointer-events:none}
.design-preview-page{background-size:cover!important;background-position:center!important;background-blend-mode:soft-light}
@media(max-width:980px){.edition-picker{grid-template-columns:1fr 1fr}.edition-picker .edition-option[data-edition="custom"]{grid-column:span 2}.edition-dashboard-card{align-items:flex-start;flex-direction:column}.edition-dashboard-actions{width:100%;justify-content:space-between}}
@media(max-width:680px){.top-actions .edition-badge{display:none}.edition-picker,.onboarding-edition-picker{grid-template-columns:1fr}.edition-picker .edition-option[data-edition="custom"]{grid-column:auto}.edition-option{min-height:112px}.edition-dashboard-actions{align-items:stretch;flex-direction:column}.edition-dashboard-actions .btn{width:100%}.edition-summary{flex-direction:column;gap:3px}}

/* Verze 1.5 · Fáze 5 – souhrny a pracovní ergonomie */
.dashboard-quick-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.dashboard-action{appearance:none;border:1px solid var(--border);background:rgba(255,255,255,.88);border-radius:18px;padding:15px;text-align:left;display:grid;grid-template-columns:38px 1fr;column-gap:10px;align-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(31,61,64,.06);transition:.18s ease;color:var(--text)}
.dashboard-action:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 12px 28px rgba(31,61,64,.11)}
.dashboard-action>span{grid-row:1/3;width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 11%,white);color:var(--primary);font-size:20px}
.dashboard-action b{font-size:14px}.dashboard-action small{font-size:11px;color:var(--muted);margin-top:2px}
.dashboard-attention-panel{margin-bottom:18px}.dashboard-attention-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.attention-item{border:1px solid var(--border);background:var(--paper);border-radius:14px;padding:12px;display:grid;grid-template-columns:34px 1fr 18px;gap:10px;text-align:left;align-items:center;cursor:pointer;color:var(--text)}
.attention-item>span,.attention-empty>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 10%,white);color:var(--primary);font-weight:800}
.attention-item strong{font-size:13px}.attention-item p,.attention-empty p{margin:3px 0 0;font-size:11px;color:var(--muted);line-height:1.4}.attention-item em{font-style:normal;font-size:20px;color:var(--muted)}
.attention-item.tone-danger{border-color:#edc1c1;background:#fffafa}.attention-item.tone-danger>span{background:#fce6e6;color:#a33}.attention-item.tone-warning{border-color:#ecd9b1;background:#fffdf7}.attention-item.tone-warning>span{background:#f8efd8;color:#936a19}
.attention-empty{display:flex;align-items:center;gap:10px;padding:12px;border:1px dashed var(--border);border-radius:14px;background:rgba(255,255,255,.55)}
.summary-period-panel{margin-top:12px}.summary-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.summary-stats-grid article{border:1px solid var(--border);background:rgba(255,255,255,.9);border-radius:16px;padding:14px;display:flex;gap:10px;align-items:center;min-width:0}
.summary-stats-grid article>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 10%,white);color:var(--primary);font-weight:800}.summary-stats-grid strong{display:block;font-size:23px;line-height:1}.summary-stats-grid small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.summary-main-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.summary-secondary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.summary-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto}.summary-list-item{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:10px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.68)}
.summary-list-item>span{font-size:11px;color:var(--primary);font-weight:700;padding-top:2px}.summary-list-item strong{font-size:13px;display:block}.summary-list-item p{margin:3px 0 0;font-size:11.5px;color:var(--muted);line-height:1.45;white-space:pre-wrap}
.weekly-review-panel{background:linear-gradient(145deg,rgba(255,255,255,.96),color-mix(in srgb,var(--secondary) 10%,white))}.weekly-review-footer{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-top:12px}.compact-field{max-width:220px}
@media(max-width:1180px){.dashboard-quick-actions{grid-template-columns:repeat(3,1fr)}.summary-secondary-grid{grid-template-columns:1fr 1fr}.summary-stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.dashboard-quick-actions{grid-template-columns:1fr 1fr}.dashboard-attention-list,.summary-main-grid,.summary-secondary-grid{grid-template-columns:1fr}.summary-stats-grid{grid-template-columns:1fr 1fr}.weekly-review-footer{align-items:stretch;flex-direction:column}.compact-field{max-width:none}}
@media(max-width:480px){.dashboard-quick-actions,.summary-stats-grid{grid-template-columns:1fr}.dashboard-action{padding:12px}.summary-list{max-height:none}}

/* === FINÁLNÍ VERZE 1.5: výkon a bezpečná sazba A5 === */
.cover-frame{overflow:hidden}
.print-page.paper-a5.landscape.month-page .month-layout{margin-top:3mm}

/* Dekorace zůstávají uvnitř A5 a nezvětšují tiskové plátno. */
.print-page.paper-a5 .botanical-corner{width:36mm;height:58mm}
.print-page.paper-a5 .botanical-top{right:0;top:4mm}
.print-page.paper-a5 .botanical-bottom{left:1mm;bottom:-3mm}
.print-page.paper-a5 .checklist-watercolor{right:2mm;width:42mm;height:75mm;transform:none}

/* Wellbeing na A5 má vlastní kompaktní, ale stále dobře zapisovatelnou sazbu. */
.print-page.paper-a5.module-wellbeing .page-header{padding-bottom:3mm}
.print-page.paper-a5.module-wellbeing .generic-two-col{gap:2mm;margin-top:3mm}
.print-page.paper-a5.module-wellbeing .planner-box{padding:2mm}
.print-page.paper-a5.module-wellbeing .planner-box h3{margin-bottom:1mm;font-size:7pt}
.print-page.paper-a5.module-wellbeing .wellbeing-rules{gap:.7mm;margin:1mm 0;padding-left:4mm;font-size:5.6pt;line-height:1.15}
.print-page.paper-a5.module-wellbeing .wellbeing-faces{margin:.5mm 0 1mm!important;font-size:10pt!important;letter-spacing:1mm}
.print-page.paper-a5.module-wellbeing .planner-box p{margin:1mm 0;font-size:5.6pt}
.print-page.paper-a5.module-wellbeing .blank-lines{gap:1.1mm}
.print-page.paper-a5.module-wellbeing .check-lines{gap:.7mm}
.print-page.paper-a5.module-wellbeing .check-lines span{height:2.2mm}
.print-page.paper-a5.module-wellbeing .check-lines i{width:2.2mm;height:2.2mm;margin-right:1mm}
.print-page.paper-a5.module-wellbeing .wellbeing-week-print{grid-template-columns:27mm 1fr;gap:.8mm 2mm;margin-top:1mm;font-size:5.4pt}
.print-page.paper-a5.module-wellbeing .wellbeing-week-print i{height:2.7mm}
.print-page.paper-a5.module-wellbeing .wellbeing-week-print b{font-size:7.5pt;letter-spacing:1mm}


/* === HOTFIX 1.5.1: stabilní psaní, čitelnější reflexe a bezpečná A5 sazba === */
.focus-highlight{outline:3px solid color-mix(in srgb,var(--accent) 65%,transparent)!important;outline-offset:4px;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 18%,transparent)!important;transition:.2s}

/* Úkolový formulář nikdy neopustí svůj panel. */
.task-manager-panel{overflow:hidden}
.task-add-form.task-add-form-v14{align-items:stretch}
.task-add-form.task-add-form-v14 .btn{min-height:42px;white-space:normal;line-height:1.15}
@media(max-width:1450px){.task-add-form.task-add-form-v14{grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(115px,.75fr));}.task-add-form.task-add-form-v14 #taskNewTitle{grid-column:1/-1}.task-add-form.task-add-form-v14 .btn{grid-column:1/-1}}

/* Černobílá nálada bez barevných emoji. */
.rating-faces button,.mood-scale,.wellbeing-faces,.bw-face-row{color:#202728!important}
.rating-faces button{filter:grayscale(1);background:#fff;border:1px solid var(--border)}
.rating-faces button.selected{background:rgba(var(--primary-rgb),.12);border-color:var(--primary)}

/* Denní reflexe zůstává uvnitř karty a dostává celou psací řádku. */
.day-reflection{grid-template-columns:minmax(0,1fr) auto;box-sizing:border-box;width:auto;min-height:15mm;margin:1.8mm 2mm 2mm;padding:2mm;border:1px solid rgba(var(--primary-rgb),.22);border-radius:1.8mm;background:rgba(255,255,255,.72);gap:1.4mm 2mm;overflow:hidden}
.day-reflection b,.day-reflection .mood-scale{font-size:7.3pt;letter-spacing:0}
.day-reflection i{display:grid;grid-template-columns:auto minmax(12mm,1fr);align-items:end;gap:1.5mm;min-width:0;white-space:normal;overflow:visible}
.day-reflection i em{font-style:normal;font-weight:700;color:#657174;white-space:nowrap}
.day-reflection i u{display:block;min-width:0;height:3.5mm;border-bottom:1px solid rgba(90,108,110,.45);text-decoration:none}

/* Delší řádky týdenní reflexe, včetně A5. */
.weekly-reflection-grid{grid-template-columns:minmax(28mm,auto) minmax(0,1fr);gap:1.7mm 2mm}
.weekly-reflection-grid i{height:4.4mm}
.print-page.paper-a5 .weekly-reflection-grid{font-size:5.4pt;gap:1.1mm 1.4mm}
.print-page.paper-a5 .weekly-reflection-grid span:nth-of-type(n+3),.print-page.paper-a5 .weekly-reflection-grid i:nth-of-type(n+3){display:block}
.print-page.paper-a5 .weekly-reflection-grid i{height:3.7mm}

/* A5 není pouhé zmenšení A4: větší psací rozestupy, ale stále uvnitř stránky. */
.print-page.paper-a5 .blank-lines{gap:2mm}
.print-page.paper-a5 .check-lines{gap:1.6mm}
.print-page.paper-a5 .check-lines span{height:3.2mm}
.print-page.paper-a5 .day-blocks>div{padding:2.6mm;background:repeating-linear-gradient(to bottom,transparent 0 6.6mm,rgba(120,135,137,.19) 6.6mm 6.85mm)}
.print-page.paper-a5 .lined-space{background:repeating-linear-gradient(to bottom,transparent 0 6.4mm,rgba(120,135,137,.18) 6.4mm 6.65mm)}

/* Samostatná bezpečná šablona měsíce A5 na šířku. */
.print-page.paper-a5.landscape.month-page{padding:7mm 8mm}
.print-page.paper-a5.landscape.month-page .page-header{padding-bottom:2.5mm}
.print-page.paper-a5.landscape.month-page .page-header h2{font-size:16pt}
.print-page.paper-a5.landscape.month-page .month-layout{grid-template-columns:minmax(0,1fr) 40mm;gap:3mm;margin-top:2mm;min-height:0}
.print-page.paper-a5.landscape.month-page .month-grid{min-height:85mm}
.print-page.paper-a5.landscape.month-page .month-weekdays span{padding:1.3mm .5mm;font-size:6.2pt}
.print-page.paper-a5.landscape.month-page .month-day{padding:.8mm}
.print-page.paper-a5.landscape.month-page .month-day>strong{font-size:6.5pt}
.print-page.paper-a5.landscape.month-page .month-sidebar{gap:2mm}
.print-page.paper-a5.landscape.month-page .month-sidebar .planner-box{padding:2mm}
.print-page.paper-a5.landscape.month-page .month-sidebar .planner-box h3{margin-bottom:1.2mm;font-size:6.8pt}
.print-page.paper-a5.landscape.month-page .month-sidebar .blank-lines{gap:1.25mm}
.print-page.paper-a5.landscape.month-page .event-list-row{grid-template-columns:13mm 1fr;padding:.8mm 0;font-size:5.2pt}

/* Opravy v tiskovém studiu jsou přímo klikatelné. */
.warning-item-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}
.warning-item-action .studio-warning-fix{white-space:nowrap;font-weight:850}


/* Patch 1.5.2 — design a ergonomie */
.wellbeing-settings-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.wellbeing-setting-card{align-content:start;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--primary) 5%,white));display:grid;gap:14px}
.wellbeing-setting-card.reflection-card{background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--accent) 8%,white))}
.wellbeing-setting-head{display:flex;align-items:flex-start;gap:12px}.wellbeing-setting-head>span{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:rgba(var(--primary-rgb),.09);color:var(--primary);font-size:20px}.wellbeing-setting-head h4{margin:0 0 4px;font-family:Georgia,serif;font-size:18px}.wellbeing-setting-head p{margin:0;color:var(--muted);font-size:12px}
.prep-class-filter-list{display:flex;flex-wrap:wrap;gap:10px}.prep-class-chip{display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}.prep-class-chip input{accent-color:var(--danger)}.prep-class-chip span{display:grid}.prep-class-chip b{font-size:13px}.prep-class-chip small{color:var(--muted);font-size:10px}.prep-class-chip.excluded{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:color-mix(in srgb,var(--danger) 6%,white)}.muted-inline{color:var(--muted);font-size:12px}
.panel-heading-actions{display:flex;align-items:center;gap:10px}
.lined-write-cell{background:repeating-linear-gradient(to bottom,transparent 0 6.1mm,rgba(91,112,118,.19) 6.1mm 6.35mm)!important}
.print-checklist-columns.lined span b,.app-checklist-columns.lined span{min-height:7mm;border-bottom:1px solid color-mix(in srgb,var(--design-line) 82%,#9ca9ac);padding-bottom:1.2mm}
.wellbeing-rules-page,.wellbeing-reflection-page{position:relative;z-index:1;display:grid;gap:5mm;margin-top:5mm}.wellbeing-main-box{min-height:80mm}.wellbeing-rules-large{gap:3.1mm;font-size:8.2pt;line-height:1.42}.wellbeing-rules-page h4{margin:4mm 0 2mm;color:var(--primary);font-family:Georgia,serif}.wellbeing-small-grid{gap:4mm}.wellbeing-reflection-page{grid-template-columns:1fr 1fr}.wellbeing-reflection-page>.planner-box{min-height:180mm}.wellbeing-week-print.expanded{grid-template-columns:37mm 1fr;gap:2mm 3mm}.wellbeing-week-print.expanded i{height:8mm}.wellbeing-faces{filter:grayscale(1);color:#202728!important}
.theme-card[data-theme-id="blueprint"] .theme-swatch,.theme-card[data-theme-id="technical-grid"] .theme-swatch,.theme-card[data-theme-id="technical-sketch"] .theme-swatch{border-color:color-mix(in srgb,var(--theme-primary) 35%,#ccd7dc)}
.print-page.paper-a5 .lined-write-cell{background:repeating-linear-gradient(to bottom,transparent 0 5.2mm,rgba(91,112,118,.19) 5.2mm 5.45mm)!important}
.print-page.paper-a5 .prep-table td{min-height:10mm;height:10mm}.print-page.paper-a5 .prep-table.compact td{height:8.5mm}.print-page.paper-a5 .print-checklist-columns.lined span b{min-height:8mm}.print-page.paper-a5.module-wellbeing-rules .wellbeing-main-box{min-height:82mm}.print-page.paper-a5.module-wellbeing-reflection .wellbeing-reflection-page{grid-template-columns:1fr;gap:3mm}.print-page.paper-a5.module-wellbeing-reflection .wellbeing-reflection-page>.planner-box{min-height:auto}.print-page.paper-a5.module-wellbeing-reflection .wellbeing-week-print.expanded{grid-template-columns:29mm 1fr;gap:1.2mm 2mm}.print-page.paper-a5.module-wellbeing-reflection .wellbeing-week-print.expanded i{height:5.5mm}
@media(max-width:900px){.wellbeing-settings-split{grid-template-columns:1fr}.panel-heading-actions{width:100%;justify-content:space-between}}
.theme-card[data-theme-id="blueprint"] .theme-art{background-position:top left!important}
.theme-card[data-theme-id="technical-grid"] .theme-art{background-position:top left!important}
.theme-card[data-theme-id="technical-sketch"] .theme-art{background-position:bottom right!important}
.theme-card[data-theme-id="mountains"] .theme-art{background-position:bottom center!important}

.print-page.paper-a4 .checklist-watercolor{right:4mm;width:58mm;height:92mm;transform:none}


/* 1.5.3 – Design Studio podle finálního vizuálního návrhu */
#view-design .section-intro h2,
#view-design .panel-heading h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.025em; }
#view-design .section-intro h2 { font-size: clamp(30px, 3vw, 46px); color: #24353a; }
#view-design .section-intro { align-items: flex-start; margin-bottom: 18px; }
#view-design .section-intro p { max-width: 760px; font-size: 13px; line-height: 1.6; }
#view-design .section-actions .btn { min-height: 44px; padding-inline: 20px; border-radius: 10px; box-shadow: 0 5px 16px rgba(32,62,66,.08); }
#view-design .design-theme-panel { padding: 20px 22px 24px; border-radius: 18px; }
#view-design .theme-preview-note { display: none; }
#view-design .theme-category-bar { margin: 7px 0 16px; gap: 8px; }
#view-design .theme-category-bar button { padding: 8px 15px; border-radius: 999px; font-family: Georgia, "Times New Roman", serif; font-size: 12px; font-weight: 600; }
#view-design .theme-grid { grid-template-columns: repeat(auto-fit,minmax(132px,1fr)); gap: 14px; }
#view-design .theme-card { min-height: 286px; border: 1px solid rgba(50,68,70,.10); border-radius: 15px; box-shadow: 0 7px 22px rgba(31,55,60,.075); background: #fff; }
#view-design .theme-card:hover { transform: translateY(-3px); box-shadow: 0 13px 30px rgba(31,55,60,.12); }
#view-design .theme-card.selected { border: 2px solid var(--primary); box-shadow: 0 12px 30px rgba(var(--primary-rgb),.15); }
#view-design .theme-card.selected::after { right: 9px; top: 9px; width: 30px; height: 30px; background: var(--primary); box-shadow: 0 5px 14px rgba(var(--primary-rgb),.25); }
#view-design .theme-swatch { height: 190px; background: #f6f4ed; }
#view-design .theme-art { opacity: 1; filter: saturate(.95) contrast(1.02); }
#view-design .theme-card>strong { padding: 13px 13px 3px; color: #27373b; font-family: Georgia, "Times New Roman", serif; font-size: 16px; font-weight: 500; }
#view-design .theme-card>span { min-height: 42px; padding: 1px 13px 13px; font-size: 10.5px; line-height: 1.45; }
#view-design .theme-dots { left: 10px; bottom: 8px; padding: 4px; box-shadow: 0 4px 12px rgba(40,60,60,.08); }
#view-design .theme-dots i { width: 15px; height: 15px; }
#view-design .design-badge { background: #f1f0e9; border-color: #dedbd1; color: #4d6062; }
#view-design .design-studio-layout { grid-template-columns: minmax(400px,.78fr) minmax(560px,1.22fr); gap: 18px; }
#view-design .design-studio-layout>.panel { border-radius: 18px; padding: 22px; }
#view-design .design-color-grid { gap: 13px 17px; }
#view-design .color-input-wrap { border-radius: 9px; overflow: hidden; }
#view-design .contrast-badge { background: #e8f4df; color: #2e6749; }
#view-design .design-preview-panel { top: 16px; }
#view-design .design-live-preview { min-height: 600px; padding: 22px; border: 1px solid #e5e0d6; border-radius: 15px; background: radial-gradient(circle at 50% 35%,rgba(255,255,255,.92),transparent 38%),linear-gradient(145deg,#f0ede4,#fbfaf7 54%,#e9e6dd); }
#view-design .design-preview-stage { height: 550px; max-width: 720px; margin: auto; }
#view-design .design-preview-page { border-radius: 3px; border-color: rgba(70,78,74,.18); box-shadow: 0 18px 38px rgba(45,48,43,.18); }
#view-design .preview-cover { left: 3%; top: 94px; transform: rotate(-6deg); }
#view-design .preview-plan { left: 26%; top: 20px; width: 270px; transform: rotate(1deg); }
#view-design .preview-notes { right: 1%; top: 145px; transform: rotate(6deg); }
#view-design .preview-landscape { background: transparent; }
#view-design .preview-plan footer span { border: 1px solid rgba(var(--primary-rgb),.10); background: rgba(255,255,255,.68); }
#view-design .panel-help { line-height: 1.5; }

/* Vizuálně odlišné karty – každá rodina používá vlastní kompozici. */
.theme-card[data-theme-id="blueprint"] .theme-art { background-position: center!important; }
.theme-card[data-theme-id="forest"] .theme-art { background-position: center bottom!important; }
.theme-card[data-theme-id="botanical-flowers"] .theme-art { background-position: center bottom!important; }
.theme-card[data-theme-id="meadow"] .theme-art { background-position: center bottom!important; }
.theme-card[data-theme-id="sea"] .theme-art { background-position: center!important; }
.theme-card[data-theme-id="minimal"] .theme-art { background-position: center!important; }
.theme-card[data-theme-id="technical-sketch"] .theme-art { background-position: center!important; }
.theme-card[data-theme-id="botanical"] .theme-art { background-position: center!important; }
body[data-theme="blueprint"] .print-page::before { background: linear-gradient(90deg,transparent 0 96%,rgba(var(--primary-rgb),.08) 96%), radial-gradient(ellipse at 12% 88%,rgba(var(--primary-rgb),.13),transparent 22%); }

@media (min-width: 1650px) {
  #view-design .theme-grid { grid-template-columns: repeat(8,minmax(0,1fr)); }
}
@media (max-width: 1280px) {
  #view-design .design-studio-layout { grid-template-columns: 1fr; }
  #view-design .design-preview-panel { position: static; }
  #view-design .theme-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  #view-design .section-intro h2 { font-size: 30px; }
  #view-design .theme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #view-design .theme-card { min-height: 246px; }
  #view-design .theme-swatch { height: 155px; }
  #view-design .design-live-preview { min-height: 470px; overflow: hidden; }
}

.quick-links-editor{display:grid;gap:12px}.quick-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:8px}.mini-field{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:16px;background:#fff}.mini-field b{font-size:.9rem;color:var(--text)}.dashboard-links-panel{margin-top:18px}.dashboard-links-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.dashboard-link-card{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:#fff;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.dashboard-link-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(31,55,60,.08);border-color:rgba(var(--primary-rgb),.35)}.dashboard-link-card strong{font-size:.95rem}.dashboard-link-card span{font-size:.83rem;color:var(--muted)}.dashboard-links-empty{padding:16px;border:1px dashed var(--border);border-radius:16px;color:var(--muted);background:rgba(255,255,255,.7)}

.print-page,.print-page *, .design-preview-page, .design-preview-page *, .theme-swatch, .theme-swatch *, .page-watermark { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body[data-print-mode="mono"] .print-page{filter:grayscale(1)}
body[data-print-mode="mono"] .print-page .page-number,body[data-print-mode="mono"] .print-page .page-chip,body[data-print-mode="mono"] .print-page h1,body[data-print-mode="mono"] .print-page h2,body[data-print-mode="mono"] .print-page h3{filter:none}

.print-page.theme-raster-print{background:var(--paper-tint)!important;isolation:isolate}
.print-theme-image{position:absolute!important;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0!important;pointer-events:none;opacity:clamp(.06,calc(var(--bg-intensity) * .95),.74);filter:saturate(.96) contrast(.98)}
body[data-print-mode="economy"] .print-theme-image{opacity:.055;filter:saturate(.3) contrast(.95)}
body[data-print-mode="mono"] .print-theme-image{opacity:.11;filter:grayscale(1) contrast(.92)}
body[data-decoration="none"] .print-theme-image{display:none!important}
.weekly-followup-grid{display:grid;grid-template-columns:1fr 1fr;gap:4mm;margin-top:4mm;position:relative;z-index:1}.weekly-followup-grid>.planner-box{min-height:66mm}.weekly-followup-grid>.span-2{grid-column:1/-1;min-height:38mm}.weekly-followup-energy>div{margin:3mm 0}.paper-a5 .weekly-followup-grid{gap:2.5mm}.paper-a5 .weekly-followup-grid>.planner-box{min-height:48mm}.paper-a5 .weekly-followup-grid>.span-2{min-height:30mm}
@media print{.print-theme-image{display:block!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.print-page.theme-raster-print{background:#fff!important}}


/* 2.0.0 – Android/Chrome tisková pojistka */
@media print {
  html,body{width:auto!important;min-width:0!important;overflow:visible!important}
  .safe-print-root{margin:0!important;padding:0!important;overflow:visible!important}
  .print-page{
    display:block!important;
    transform:none!important;
    zoom:1!important;
    overflow:hidden!important;
    box-shadow:none!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .print-theme-image{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    transform:none!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}


/* === 2.0.0: Android tisk přímo z top-level dokumentu === */
.android-print-host{display:none}
@media print{
  body.android-top-level-printing .android-print-host{display:block!important}
  body.android-top-level-printing .android-print-host .print-page:empty{display:none!important}
}

/* === 2.0.0: systémový tiskový wizard + Cloud Bridge === */
.print-wizard-card{width:min(980px,100%);padding:34px}.print-wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:24px 0 26px}.print-wizard-progress i{height:7px;border-radius:999px;background:#e7eded}.print-wizard-progress i.done{background:var(--primary)}.print-wizard-body{min-height:410px}.print-wizard-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.print-wizard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.print-wizard-summary article{padding:18px;border-radius:14px;background:var(--soft);border:1px solid var(--line)}.print-wizard-summary strong{display:block;font-size:25px;color:var(--primary);margin-bottom:3px}.print-wizard-summary small{color:var(--muted)}.print-device-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.print-device-guide article{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.print-device-guide b,.print-device-guide small{display:block}.print-device-guide small{margin-top:5px;color:var(--muted);line-height:1.45}.cloud-backup-panel{overflow:hidden}.cloud-bridge-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.cloud-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cloud-provider-card{padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}.cloud-provider-primary{background:linear-gradient(135deg,rgba(var(--primary-rgb),.07),#fff)}.cloud-provider-card p{margin:12px 0 15px;color:var(--muted);line-height:1.5;font-size:12px}.cloud-provider-head{display:flex;gap:11px;align-items:center}.cloud-provider-head b,.cloud-provider-head small{display:block}.cloud-provider-head small{margin-top:2px;color:var(--muted)}.cloud-provider-icon,.cloud-provider-brand{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--soft);font-weight:900;font-size:18px}.cloud-provider-brand.google{color:#4285f4;background:#eef4ff}.cloud-provider-brand.microsoft{color:#256fdb;background:#eef5ff}.cloud-provider-brand.apple{color:#333;background:#f1f1f1}.cloud-status-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.cloud-status-row div{padding:11px 13px;border-radius:11px;background:var(--soft)}.cloud-status-row span,.cloud-status-row b{display:block}.cloud-status-row span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.cloud-status-row b{margin-top:3px}.cloud-info-card{width:min(670px,100%);padding:34px}.cloud-info-card h2{font-family:Georgia,serif;font-size:29px}.cloud-info-list{display:grid;gap:10px;margin:20px 0}.cloud-info-list div{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}@media(max-width:760px){.print-wizard-card{padding:26px 18px}.print-wizard-module-grid,.print-wizard-summary,.print-device-guide,.cloud-bridge-actions,.cloud-provider-grid,.cloud-status-row{grid-template-columns:1fr}}

/* === 2.0.0: zjednodušené menu, wizard a lokální PDF === */
.nav-tool{font-weight:800}
.nav-detail-settings{border:1px solid rgba(255,255,255,.10)!important;background:rgba(255,255,255,.055)!important}
.nav-detail-settings:hover{background:rgba(255,255,255,.12)!important}
.nav-pdf{border:1px solid rgba(255,255,255,.14)!important;background:rgba(255,255,255,.09)!important}
.diary-settings-card{width:min(920px,100%);padding:34px}
.diary-advanced-card{width:min(900px,100%);padding:34px}
.diary-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-right:34px}
.diary-settings-head h2{margin:10px 0 6px;font-family:Georgia,serif;font-size:30px}
.diary-settings-head p{margin:0;color:var(--muted);line-height:1.55}
.diary-wizard-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:24px 0 26px}
.diary-wizard-progress i{height:7px;border-radius:999px;background:#e7eded}
.diary-wizard-progress i.done{background:var(--primary)}
.diary-wizard-body{min-height:370px}
.wizard-step-title{margin:0 0 6px;font-family:Georgia,serif;font-size:25px}
.wizard-step-copy{margin:0 0 22px;color:var(--muted)}
.wizard-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.wizard-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wizard-check{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}
.wizard-check input{margin-top:3px}
.wizard-check b,.wizard-check small{display:block}.wizard-check small{margin-top:3px;color:var(--muted);font-size:10.5px}
.wizard-theme-preview{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.wizard-theme-thumb{width:220px;height:310px;border-radius:14px;background:var(--theme-bg);background-size:cover;background-position:center;box-shadow:0 8px 24px rgba(25,50,55,.16);border:1px solid rgba(0,0,0,.06)}
.diary-wizard-footer{display:flex;justify-content:space-between;gap:14px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.diary-wizard-footer-right{display:flex;gap:10px}
.diary-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:26px 0}
.diary-advanced-link{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;cursor:pointer}
.diary-advanced-link:hover{border-color:rgba(var(--primary-rgb),.4);background:rgba(var(--primary-rgb),.035)}
.diary-advanced-link span{font-size:22px}.diary-advanced-link b{display:block}.diary-advanced-link small{display:block;margin-top:3px;color:var(--muted)}
.pdf-progress-card{width:min(480px,100%);padding:38px;text-align:center}
.pdf-progress-icon{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 14px;border-radius:22px;color:#fff;background:var(--primary);font-weight:900;font-size:19px}
.pdf-progress-card h2{margin:6px 0;font-family:Georgia,serif;font-size:28px}
.pdf-progress-card p{color:var(--muted)}
.pdf-progress-track{height:11px;overflow:hidden;margin:24px 0 12px;border-radius:999px;background:#e5ecec}
.pdf-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:var(--primary);transition:width .18s ease}
.pdf-progress-card small{color:var(--muted)}
.pdf-raster-host{position:fixed;left:-30000px;top:0;z-index:-999;width:1200px;background:#fff;pointer-events:none}
.sync-survey-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin:18px 0 22px;padding:20px 22px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.07),rgba(255,255,255,.96));border-color:rgba(var(--primary-rgb),.18)}
.sync-survey-card[hidden]{display:none!important}
.sync-survey-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:var(--primary);color:#fff;font-size:25px;font-weight:900;box-shadow:0 6px 18px rgba(var(--primary-rgb),.16)}
.sync-survey-copy h3{margin:4px 0 5px;font-size:20px}.sync-survey-copy p{margin:0;color:var(--muted);line-height:1.5}
.sync-survey-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.feedback-permanent-link{grid-column:1/-1}

@media(max-width:760px){
  .diary-settings-card,.diary-advanced-card{padding:26px 18px}
  .wizard-form-grid,.wizard-module-grid,.diary-advanced-grid{grid-template-columns:1fr}
  .wizard-theme-preview{grid-template-columns:1fr}.wizard-theme-thumb{width:100%;height:300px}
  .sync-survey-card{grid-template-columns:1fr}.sync-survey-actions{justify-content:flex-start}.sync-survey-icon{width:44px;height:44px}
  .diary-wizard-footer{align-items:stretch;flex-direction:column-reverse}
  .diary-wizard-footer-right{display:grid;grid-template-columns:1fr 1fr}
}


/* === 2.0.0: AKTIVNÍ CSS přenesené z tiskového iframe do hlavního dokumentu === */
/* === 2.0.0: mobilní modály a wizardy – viditelné spodní akce === */
.modal-backdrop{
  box-sizing:border-box;
  min-height:100vh;
  min-height:100dvh;
  padding:
    max(10px,env(safe-area-inset-top))
    max(10px,env(safe-area-inset-right))
    max(10px,env(safe-area-inset-bottom))
    max(10px,env(safe-area-inset-left));
  overflow:hidden;
}
.modal-card{
  box-sizing:border-box;
  max-height:calc(100vh - 20px);
  max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  overscroll-behavior:contain;
}

/* Oba hlavní průvodci mají pevnou hlavičku a spodní navigaci.
   Roluje pouze obsah aktuálního kroku. */
.print-wizard-card,
.diary-settings-card{
  display:flex;
  flex-direction:column;
  overflow:hidden!important;
}
.print-wizard-card > .diary-settings-head,
.diary-settings-card > .diary-settings-head,
.print-wizard-card > .print-wizard-progress,
.diary-settings-card > .diary-wizard-progress{
  flex:0 0 auto;
}
.print-wizard-body,
.diary-wizard-body{
  flex:1 1 auto;
  min-height:0!important;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
  padding-right:3px;
  padding-bottom:14px;
}
.print-wizard-card > .diary-wizard-footer,
.diary-settings-card > .diary-wizard-footer{
  position:relative;
  z-index:5;
  flex:0 0 auto;
  margin-top:0;
  padding-top:14px;
  padding-bottom:max(2px,env(safe-area-inset-bottom));
  background:#fff;
  box-shadow:0 -10px 22px rgba(33,52,56,.06);
}

/* Ostatní dialogy s tlačítky dole: akční lišta zůstane při rolování na očích. */
.modal-card > .modal-actions{
  position:sticky;
  z-index:6;
  bottom:0;
  margin-bottom:0;
  padding-bottom:max(2px,env(safe-area-inset-bottom));
  background:linear-gradient(to bottom,rgba(255,255,255,.94),#fff 24%);
}
.diary-advanced-card,
.preflight-modal-card,
.cloud-info-card,
#pdfOfflineModal .pdf-progress-card{
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}

/* Úvodní průvodce používá vlastní scrollovací obsah. */
.onboarding-card{
  max-height:calc(100vh - 20px);
  max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
}
.onboarding-content{
  max-height:inherit!important;
  padding-bottom:max(30px,calc(18px + env(safe-area-inset-bottom)))!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

@media(max-width:760px), (max-height:720px){
  .modal-backdrop{
    place-items:stretch center;
    padding:
      max(6px,env(safe-area-inset-top))
      max(6px,env(safe-area-inset-right))
      max(6px,env(safe-area-inset-bottom))
      max(6px,env(safe-area-inset-left));
  }
  .modal-card{
    width:100%!important;
    max-height:calc(100vh - 12px);
    max-height:calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    border-radius:18px;
  }
  .print-wizard-card,
  .diary-settings-card{
    height:calc(100vh - 12px);
    height:calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding:18px 15px 10px!important;
  }
  .diary-settings-head{
    gap:10px;
    padding-right:34px;
  }
  .diary-settings-head h2{
    margin:6px 0 3px;
    font-size:23px;
    line-height:1.08;
  }
  .diary-settings-head p{
    font-size:11px;
    line-height:1.35;
  }
  .diary-settings-head .status-badge{
    white-space:nowrap;
  }
  .print-wizard-progress,
  .diary-wizard-progress{
    margin:12px 0 13px!important;
  }
  .print-wizard-body,
  .diary-wizard-body{
    padding:2px 2px 16px 0;
  }
  .wizard-step-title{
    font-size:21px;
  }
  .wizard-step-copy{
    margin-bottom:14px;
    font-size:11.5px;
    line-height:1.45;
  }
  .wizard-check{
    padding:11px;
  }
  .wizard-theme-thumb{
    height:min(260px,36dvh)!important;
  }
  .diary-wizard-footer{
    gap:8px!important;
    padding-top:10px!important;
  }
  .diary-wizard-footer .btn{
    min-height:44px;
  }
  .diary-wizard-footer-right{
    gap:8px!important;
  }

  .diary-advanced-card,
  .cloud-info-card,
  .preflight-modal-card,
  #pdfOfflineModal .pdf-progress-card{
    padding:24px 16px 12px!important;
  }
  .diary-advanced-card .diary-advanced-grid{
    margin:15px 0;
  }
  .modal-card > .modal-actions{
    margin-left:-2px;
    margin-right:-2px;
    padding-top:12px;
  }
}

@media(max-width:430px){
  .diary-settings-head .chip{
    font-size:8px;
  }
  .diary-settings-head p{
    display:none;
  }
  .print-wizard-progress,
  .diary-wizard-progress{
    margin:9px 0 10px!important;
  }
  .diary-wizard-footer{
    flex-direction:column-reverse!important;
  }
  .diary-wizard-footer-right{
    display:grid!important;
    grid-template-columns:1fr 1fr;
  }
  .diary-wizard-footer > .btn{
    width:100%;
  }
}



/* === 2.0.0: orientace tisku + spolehlivější Cloud Bridge === */
.print-orientation-choice{align-items:flex-start}
.recommended-inline{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;margin-left:5px;border-radius:999px;background:rgba(var(--primary-rgb),.12);color:var(--primary)}
.cloud-button-stack{display:flex;gap:8px;flex-wrap:wrap}
.cloud-honesty-note{display:block;margin-top:11px;line-height:1.45;color:var(--muted)}
.cloud-backup-help{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--soft);font-size:11.5px;line-height:1.5;color:var(--muted)}
.cloud-backup-help:empty{display:none}
@media(max-width:600px){.cloud-button-stack{display:grid;grid-template-columns:1fr}.cloud-button-stack .btn{width:100%}.print-wizard-summary{grid-template-columns:1fr 1fr!important}}



/* === 2.0.0: tisková geometrie a Local cloud === */
.print-layout-audit-host .print-page{box-shadow:none!important;transform:none!important;zoom:1!important}
.cloud-provider-card button[hidden]{display:none!important}
.cloud-provider-card button:disabled{opacity:.55;cursor:not-allowed}



/* === 2.0.0: pevný rozpočet výšky týdenní dvoustránky === */
.print-page.weekly-spread .prep-footer{position:absolute!important}
.print-page.weekly-spread .weekly-spread-body{max-height:calc(100% - 24mm)}
.print-page.paper-a5.weekly-spread .weekly-spread-body{max-height:calc(100% - 18mm)}
.print-page.paper-a5.weekly-spread .spread-day>header,
.print-page.paper-a5.weekly-spread .dense-spread-day>header{padding:.85mm 1.4mm}
.print-page.paper-a5.weekly-spread .spread-day>header strong,
.print-page.paper-a5.weekly-spread .dense-spread-day>header strong{font-size:6.4pt}
.print-page.paper-a5.weekly-spread .dense-spread-day .day-events{padding:.4mm 1.2mm 0}
.print-page.paper-a5.weekly-spread .dense-spread-day .day-event{font-size:4.7pt}
.print-page.paper-a5.weekly-spread .spread-day .day-blocks>div,
.print-page.paper-a5.weekly-spread .dense-spread-day .day-blocks>div{padding:.75mm 1.2mm;min-height:0}
.print-page.paper-a5.weekly-spread .day-reflection-spread{margin:.35mm 1mm .45mm;padding:.45mm .8mm;font-size:4.7pt}
.print-page.paper-a5.weekly-spread .day-reflection-spread .face-svg{width:10px;height:10px}
.print-page.paper-a5.weekly-spread .day-reflection-spread i{display:none}
.print-page.paper-a5.weekly-spread .weekly-extras-row{gap:1mm;margin-top:1mm}
.print-page.paper-a5.weekly-spread .weekly-extras-compact .compact-weekly-extra{padding:1.1mm 1.3mm}
.print-page.paper-a5.weekly-spread .weekly-extras-compact .compact-weekly-extra h3{margin-bottom:.6mm;font-size:6.1pt}
.print-page.paper-a5.weekly-spread .weekly-extras-compact .event-list-row{grid-template-columns:10mm 1fr;padding:.25mm 0;font-size:4.5pt}
.print-page.paper-a5.weekly-spread .weekly-extras-compact .weekly-reflection-grid{font-size:4.4pt;gap:.35mm .7mm}
.print-page.paper-a5.weekly-spread .weekly-extras-compact .weekly-reflection-grid span:nth-of-type(n+3),
.print-page.paper-a5.weekly-spread .weekly-extras-compact .weekly-reflection-grid i:nth-of-type(n+3){display:none}
.print-page.paper-a5.weekly-spread .weekly-left-notes{gap:1.5mm;margin-top:1.5mm}



/* === 2.0.0: finální bezpečná sazba týdenní dvoustránky === */
.print-page.weekly-spread{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  align-content:stretch;
}
.print-page.weekly-spread>.page-header{
  min-height:0!important;
  flex:none!important;
}
.print-page.weekly-spread .weekly-spread-body{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  min-height:0!important;
  max-height:none!important;
  height:auto!important;
  overflow:hidden!important;
  margin-top:3mm!important;
  padding-bottom:0!important;
}
.print-page.weekly-spread .week-days-stack{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
  gap:1.6mm!important;
}
.print-page.weekly-spread .week-days-stack.day-count-3{grid-template-rows:repeat(3,minmax(0,1fr))!important}
.print-page.weekly-spread .week-days-stack.day-count-4{grid-template-rows:repeat(4,minmax(0,1fr))!important}
.print-page.weekly-spread .week-day-card.wide-card{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
}
.print-page.weekly-spread .week-day-card .day-blocks,
.print-page.weekly-spread .week-day-card .timeline,
.print-page.weekly-spread .week-day-card .lined-space{
  min-height:0!important;
  flex:1 1 auto!important;
  overflow:hidden!important;
}
.print-page.weekly-spread .week-day-card .day-blocks>div{
  min-height:0!important;
}
.print-page.weekly-spread .weekly-spread-lower{
  display:grid!important;
  min-height:0!important;
  max-height:31mm;
  gap:1.6mm!important;
  margin-top:1.6mm!important;
  overflow:hidden!important;
}
.print-page.weekly-spread .weekly-spread-lower-left{grid-template-columns:minmax(0,1.7fr) repeat(2,minmax(0,.65fr))}
.print-page.weekly-spread .weekly-spread-lower-left.count-1{grid-template-columns:1fr}
.print-page.weekly-spread .weekly-spread-lower-left.count-2{grid-template-columns:minmax(0,1.7fr) minmax(0,.8fr)}
.print-page.weekly-spread .weekly-spread-lower-right{grid-template-columns:repeat(2,minmax(0,1fr))}
.print-page.weekly-spread .weekly-spread-lower-right.count-1{grid-template-columns:1fr}
.print-page.weekly-spread .weekly-spread-lower .planner-box{
  min-height:0!important;
  height:100%;
  overflow:hidden!important;
  padding:1.5mm 1.8mm!important;
}
.print-page.weekly-spread .weekly-spread-lower .planner-box h3{
  margin:0 0 .8mm!important;
  font-size:7.2pt!important;
  line-height:1.05!important;
}
.print-page.weekly-spread .weekly-spread-lower .blank-lines{gap:.85mm!important}
.print-page.weekly-spread .weekly-spread-lower .check-lines{gap:.6mm!important}
.print-page.weekly-spread .weekly-spread-lower .check-lines span{height:2.6mm!important}
.print-page.weekly-spread .weekly-inline-quote{
  margin:1mm 0 0!important;
  padding-top:.8mm;
  border-top:1px solid rgba(var(--primary-rgb),.14);
  color:#59686a;
  font-family:Georgia,serif;
  font-size:5.5pt;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.print-page.weekly-spread .weekly-inline-quote small{font-family:sans-serif;font-size:5pt}
.print-page.weekly-spread .weekly-spread-question{margin:0 0 .8mm!important;font-size:5.5pt;line-height:1.15}
.print-page.weekly-spread .weekly-reflection-spread{
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:.55mm .8mm!important;
  font-size:5pt!important;
}
.print-page.weekly-spread .weekly-reflection-spread i{height:2.4mm!important}
.print-page.weekly-spread .weekly-reflection-spread b{font-size:5.5pt!important;letter-spacing:.25mm}
.print-page.weekly-spread .weekly-events-box .event-list-row{
  grid-template-columns:12mm minmax(0,1fr)!important;
  gap:.8mm!important;
  padding:.35mm 0!important;
  font-size:5.1pt!important;
}
.print-page.weekly-spread .prep-footer{
  position:absolute!important;
  z-index:10!important;
}

/* Druhá strana má čtyři dny, proto je záměrně o něco hustší. */
.print-page.weekly-spread.weekly-right .week-day-card>header{padding:1.05mm 1.6mm!important}
.print-page.weekly-spread.weekly-right .week-day-card>header strong{font-size:7pt!important}
.print-page.weekly-spread.weekly-right .day-events{padding:.45mm 1.3mm 0!important}
.print-page.weekly-spread.weekly-right .day-event{font-size:4.9pt!important}
.print-page.weekly-spread.weekly-right .day-blocks>div{padding:1mm 1.5mm!important}
.print-page.weekly-spread.weekly-right .day-reflection-spread{margin:.45mm 1.1mm .55mm!important;padding:.5mm .8mm!important}
.print-page.weekly-spread.weekly-right .day-reflection-spread i{display:none!important}

/* A5 musí mít vlastní sazbu, ne zmenšené A4. */
.print-page.paper-a5.weekly-spread .weekly-spread-body{margin-top:1.6mm!important}
.print-page.paper-a5.weekly-spread .week-days-stack{gap:.85mm!important}
.print-page.paper-a5.weekly-spread .weekly-spread-lower{
  max-height:21mm;
  gap:.8mm!important;
  margin-top:.8mm!important;
}
.print-page.paper-a5.weekly-spread .weekly-spread-lower .planner-box{padding:.8mm 1mm!important}
.print-page.paper-a5.weekly-spread .weekly-spread-lower .planner-box h3{margin-bottom:.35mm!important;font-size:5.7pt!important}
.print-page.paper-a5.weekly-spread .weekly-inline-quote{display:none}
.print-page.paper-a5.weekly-spread .weekly-spread-lower .blank-lines{gap:.35mm!important}
.print-page.paper-a5.weekly-spread .weekly-spread-lower .check-lines{gap:.25mm!important}
.print-page.paper-a5.weekly-spread .weekly-spread-lower .check-lines span{height:1.7mm!important}
.print-page.paper-a5.weekly-spread .weekly-events-box .event-list-row{grid-template-columns:8mm minmax(0,1fr)!important;padding:.12mm 0!important;font-size:4.1pt!important}
.print-page.paper-a5.weekly-spread .weekly-reflection-spread{font-size:4.1pt!important;gap:.25mm .5mm!important}
.print-page.paper-a5.weekly-spread .weekly-reflection-spread i{height:1.5mm!important}
.print-page.paper-a5.weekly-spread .weekly-reflection-spread b{font-size:4.4pt!important}
.print-page.paper-a5.weekly-spread.weekly-right .week-day-card>header{padding:.55mm 1mm!important}
.print-page.paper-a5.weekly-spread.weekly-right .week-day-card>header strong{font-size:5.5pt!important}
.print-page.paper-a5.weekly-spread.weekly-right .day-date{font-size:4.5pt!important}
.print-page.paper-a5.weekly-spread.weekly-right .day-events{padding:.18mm .8mm 0!important}
.print-page.paper-a5.weekly-spread.weekly-right .day-event{font-size:4pt!important}
.print-page.paper-a5.weekly-spread.weekly-right .day-blocks>div{padding:.55mm .9mm!important}
.print-page.paper-a5.weekly-spread.weekly-right .day-reflection-spread{margin:.15mm .7mm .2mm!important;padding:.2mm .5mm!important;font-size:4pt!important}

/* Automatický bezpečnostní stupeň 1 – použije se pouze když měření zjistí přetečení. */
.print-page.weekly-spread.print-fit-1 .page-header{padding-bottom:3mm!important}
.print-page.weekly-spread.print-fit-1 .weekly-spread-body{margin-top:1.8mm!important}
.print-page.weekly-spread.print-fit-1 .week-days-stack{gap:1mm!important}
.print-page.weekly-spread.print-fit-1 .week-day-card>header{padding:.7mm 1.2mm!important}
.print-page.weekly-spread.print-fit-1 .day-events{padding:.2mm 1mm 0!important}
.print-page.weekly-spread.print-fit-1 .day-blocks>div{padding:.7mm 1.1mm!important}
.print-page.weekly-spread.print-fit-1 .day-reflection-spread{margin:.2mm .8mm .25mm!important;padding:.25mm .55mm!important}
.print-page.weekly-spread.print-fit-1 .weekly-spread-lower{max-height:24mm;margin-top:.8mm!important}

/* Stupeň 2 je poslední pojistka pro extrémní kombinace. */
.print-page.weekly-spread.print-fit-2 .weekly-spread-lower{max-height:19mm!important}
.print-page.weekly-spread.print-fit-2 .weekly-inline-quote{display:none!important}
.print-page.weekly-spread.print-fit-2 .day-reflection-spread i{display:none!important}
.print-page.weekly-spread.print-fit-2 .day-reflection-spread{grid-template-columns:1fr auto!important}
.print-page.weekly-spread.print-fit-2 .day-event{font-size:4.2pt!important}
.print-page.weekly-spread.print-fit-2 .week-day-card>header strong{font-size:6pt!important}



/* === 2.0.0: velký mobilní náhled rastrových šablon === */
.wizard-theme-picker{
  margin-top:18px;
  min-width:0;
}
.wizard-theme-current{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:20px;
  align-items:center;
  padding:18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(145deg,#fff,var(--soft));
  overflow:hidden;
}
.wizard-theme-current-thumb{
  position:relative;
  width:210px;
  aspect-ratio:210 / 297;
  border-radius:15px;
  background-color:var(--preview-paper,#fff);
  overflow:hidden;
  box-shadow:0 10px 28px rgba(30,48,52,.16);
  border:1px solid rgba(0,0,0,.07);
}
.wizard-theme-current-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.wizard-theme-current-copy h4{
  margin:5px 0 7px;
  font-family:Georgia,serif;
  font-size:24px;
  line-height:1.08;
}
.wizard-theme-current-copy p{
  margin:0 0 10px;
  color:var(--muted);
  line-height:1.5;
}
.wizard-theme-current-copy small{
  display:block;
  color:var(--muted);
  line-height:1.45;
}
.wizard-theme-category-strip{
  display:flex;
  gap:7px;
  margin:14px 0 11px;
  padding:2px 1px 5px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.wizard-theme-chip{
  flex:0 0 auto;
  min-height:34px;
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.wizard-theme-chip.active{
  color:#fff;
  background:var(--primary);
  border-color:var(--primary);
}
.wizard-theme-gallery{
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:3px 3px 12px;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.wizard-theme-card{
  position:relative;
  flex:0 0 132px;
  scroll-snap-align:start;
  padding:7px;
  border:2px solid transparent;
  border-radius:14px;
  background:#fff;
  color:var(--text);
  text-align:left;
  box-shadow:0 4px 14px rgba(34,52,56,.07);
  cursor:pointer;
}
.wizard-theme-card:hover{border-color:rgba(var(--primary-rgb),.35)}
.wizard-theme-card.selected{
  border-color:var(--primary);
  box-shadow:0 7px 20px rgba(var(--primary-rgb),.18);
}
.wizard-theme-card-image{
  display:block;
  width:100%;
  aspect-ratio:210 / 297;
  border-radius:9px;
  background-color:var(--preview-paper,#fff);
  overflow:hidden;
  border:1px solid rgba(0,0,0,.05);
}
.wizard-theme-card-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.wizard-theme-card-label{
  display:block;
  min-height:30px;
  margin-top:7px;
  font-size:10.5px;
  line-height:1.25;
  font-weight:750;
}
.wizard-theme-selected-mark{
  position:absolute;
  top:11px;
  right:11px;
  display:none;
  width:25px;
  height:25px;
  place-items:center;
  border-radius:999px;
  background:var(--primary);
  color:#fff;
  font-weight:900;
  box-shadow:0 3px 10px rgba(0,0,0,.18);
}
.wizard-theme-card.selected .wizard-theme-selected-mark{display:grid}

@media(max-width:760px){
  .wizard-theme-current{
    grid-template-columns:1fr;
    gap:13px;
    padding:13px;
  }
  .wizard-theme-current-thumb{
    width:min(78vw,300px)!important;
    height:auto!important;
    aspect-ratio:210 / 297;
    justify-self:center;
  }
  .wizard-theme-current-copy{
    text-align:center;
  }
  .wizard-theme-current-copy h4{
    font-size:21px;
  }
  .wizard-theme-current-copy .section-kicker{
    justify-content:center;
  }
  .wizard-theme-category-strip{
    margin-left:-2px;
    margin-right:-2px;
  }
  .wizard-theme-gallery{
    margin-left:-4px;
    margin-right:-4px;
    padding-left:4px;
    padding-right:18vw;
    scroll-snap-type:x mandatory;
  }
  .wizard-theme-card{
    flex-basis:min(43vw,150px);
    scroll-snap-align:center;
  }
  .wizard-theme-card-label{
    font-size:11px;
  }
}

@media(max-width:430px){
  .wizard-theme-current{
    padding:10px;
  }
  .wizard-theme-current-thumb{
    width:min(74vw,270px)!important;
  }
  .wizard-theme-current-copy p{
    font-size:11px;
  }
  .wizard-theme-current-copy small{
    font-size:10px;
  }
  .wizard-theme-gallery{
    padding-right:22vw;
  }
  .wizard-theme-card{
    flex-basis:min(46vw,145px);
  }
}



/* === 2.0.0: spolehlivé miniatury šablon === */
.wizard-theme-current-thumb.preview-image-failed,
.wizard-theme-card-image.preview-image-failed{
  background:
    linear-gradient(145deg,rgba(var(--primary-rgb),.10),transparent 48%),
    var(--preview-paper,#fff);
}
.wizard-theme-current-thumb.preview-image-failed::after,
.wizard-theme-card-image.preview-image-failed::after{
  content:"Náhled";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:10px;
  font-weight:750;
}
.wizard-theme-card-image{position:relative}



/* === 2.0.0: náhledy skutečných stran místo galerie šablon === */
.wizard-page-previews{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
  min-width:0;
}
.wizard-page-preview-heading{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:end;
  margin-bottom:12px;
}
.wizard-page-preview-heading h4{
  margin:4px 0 0;
  font-family:Georgia,serif;
  font-size:22px;
}
.wizard-page-preview-heading small{
  max-width:370px;
  color:var(--muted);
  line-height:1.45;
  text-align:right;
}
.wizard-page-preview-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;
}
.wizard-page-preview-card{
  min-width:0;
  padding:8px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--text);
  font:inherit;
  cursor:pointer;
  text-align:left;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.wizard-page-preview-card:hover{
  transform:translateY(-2px);
  border-color:rgba(var(--primary-rgb),.35);
  box-shadow:0 8px 20px rgba(28,46,50,.10);
}
.wizard-page-preview-stage{
  position:relative;
  display:block;
  width:100%;
  height:245px;
  overflow:hidden;
  border-radius:9px;
  background:#e9eded;
  border:1px solid rgba(0,0,0,.05);
}
.wizard-page-preview-page{
  position:absolute;
  display:block;
  transform-origin:top left;
  will-change:transform;
}
.wizard-page-preview-page>.print-page{
  margin:0!important;
  box-shadow:none!important;
  transform:none!important;
  zoom:1!important;
  pointer-events:none!important;
}
.wizard-page-preview-page .print-theme-image{
  display:block!important;
}
.wizard-page-preview-label{
  display:block;
  margin-top:7px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:10.5px;
  font-weight:750;
}

@media(max-width:900px){
  .wizard-page-preview-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .wizard-page-preview-heading{
    align-items:start;
    flex-direction:column;
    gap:4px;
  }
  .wizard-page-preview-heading small{
    max-width:none;
    text-align:left;
  }
  .wizard-page-preview-grid{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:2px 18vw 10px 2px;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }
  .wizard-page-preview-card{
    flex:0 0 min(72vw,260px);
    scroll-snap-align:center;
  }
  .wizard-page-preview-stage{
    height:min(58vh,350px);
  }
  /* stará spodní galerie šablon se už nikde nezobrazuje */
  .wizard-theme-picker{
    display:none!important;
  }
}
@media(max-width:430px){
  .wizard-page-preview-card{
    flex-basis:min(76vw,250px);
  }
  .wizard-page-preview-stage{
    height:min(54vh,325px);
  }
}



/* === 2.0.0: plusové / mínusové body === */
.plus-minus-panel .panel-heading{align-items:flex-start}
.plus-minus-settings{align-items:end}
.compact-callout{margin-top:14px;padding:12px 14px}
.student-table .pm-col{min-width:104px;text-align:center}
.student-table .pm-summary-head,.student-table .pm-summary-cell{min-width:92px}
.student-table.pm-disabled .pm-col{display:none}
.pm-counter{display:grid;grid-template-columns:34px 48px;justify-content:center;gap:5px;align-items:center;padding:3px 5px}
.pm-step{width:34px;height:32px;border:0;border-radius:9px;color:#fff;font-size:17px;font-weight:900;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.10)}
.pm-step:active{transform:translateY(1px)}
.pm-step-positive{background:#2f9b61}.pm-step-positive:hover{background:#258052}
.pm-step-negative{background:#cc4d53}.pm-step-negative:hover{background:#ae3e44}
.pm-number{width:48px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:center;font:inherit;font-weight:800;color:var(--text)}
.pm-number:focus{outline:2px solid rgba(var(--primary-rgb),.25);border-color:var(--primary)}
.pm-summary-badge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:30px;padding:4px 7px;border-radius:9px;background:#f1f5f4;color:#425658;font-weight:900;white-space:nowrap}
.pm-summary-badge.pm-positive-highlight,.pm-number.pm-positive-highlight{background:#def4e6!important;color:#176437!important;box-shadow:inset 0 0 0 1px #9ed5b2}
.pm-summary-badge.pm-negative-highlight,.pm-number.pm-negative-highlight{background:#fde1e2!important;color:#972e35!important;box-shadow:inset 0 0 0 1px #efaaad}
.pm-inline-badge{display:inline-flex;margin-left:7px;padding:2px 5px;border-radius:6px;background:#edf4f2;color:#496063;font-size:8px;font-weight:850;vertical-align:middle}
.gradebook-student-name .pm-inline-badge.pm-positive-highlight{background:#def4e6;color:#176437}
.gradebook-student-name .pm-inline-badge.pm-negative-highlight{background:#fde1e2;color:#972e35}
.grading-generated-table .pm-print-col{width:7mm;max-width:7mm;font-size:4.6pt;text-align:center}
.grading-generated-table td.pm-print-col{font-weight:850}
.grading-generated-table td.pm-positive-highlight{background:#e4f4e9!important;color:#195f37!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
.grading-generated-table td.pm-negative-highlight{background:#f9e3e4!important;color:#8d3137!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
.combined-grading-table .pm-print-col{width:6.5mm;max-width:6.5mm}
@media(max-width:760px){
  .plus-minus-settings{grid-template-columns:1fr!important}
  .student-table .pm-col{min-width:92px}
  .pm-counter{grid-template-columns:32px 44px}
  .pm-step{width:32px}
  .pm-number{width:44px}
}



/* === 2.0.0: Zasedací pořádek === */
.seating-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:18px;align-items:start}
.seating-plan-list-panel{position:sticky;top:20px}
.seating-plan-list{display:grid;gap:7px;margin-bottom:10px}
.seating-plan-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text);text-align:left;cursor:pointer}
.seating-plan-list-item span{min-width:0}.seating-plan-list-item strong,.seating-plan-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seating-plan-list-item small{margin-top:3px;color:var(--muted);font-size:9.5px}.seating-plan-list-item i{font-style:normal;color:var(--muted);font-size:9px}
.seating-plan-list-item.active{border-color:var(--primary);background:rgba(var(--primary-rgb),.07);box-shadow:0 4px 12px rgba(var(--primary-rgb),.09)}
.seating-main{min-width:0}
.seating-editor-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;align-items:start}
.seating-tools-panel{position:sticky;top:20px}
.seating-palette{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.seating-palette button{display:flex;align-items:center;gap:7px;min-height:45px;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);text-align:left;cursor:pointer}
.seating-palette button:hover{border-color:rgba(var(--primary-rgb),.45);background:rgba(var(--primary-rgb),.04)}
.seating-palette button:disabled{opacity:.45;cursor:not-allowed}
.seating-palette button span{display:grid;place-items:center;flex:0 0 27px;height:27px;border-radius:8px;background:var(--soft);font-weight:900;color:var(--primary)}
.seating-palette button b{font-size:9.5px;line-height:1.2}
.seating-selected-tools,.seating-seat-editor{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.seating-selected-actions{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}
#seatingSelectedInfo{margin:5px 0 0;color:var(--muted);font-size:9.5px;line-height:1.45}
.seating-seat-assignments{display:grid;gap:6px;margin-top:8px}
.seating-seat-field{display:grid;grid-template-columns:50px minmax(0,1fr);gap:6px;align-items:center}
.seating-seat-field span{font-size:9px;font-weight:750}.seating-seat-field select{min-width:0;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 6px;font-size:9px}
.tiny-note{font-size:9px;color:var(--muted);line-height:1.4;margin:6px 0}
.seating-canvas-panel{min-width:0}
.seating-canvas-wrap{display:grid;place-items:center;min-height:560px;padding:14px;border-radius:16px;background:#e8eeee;overflow:auto}
.seating-canvas,.seating-static-room{position:relative;box-sizing:border-box;overflow:hidden;border:7px solid #48585a;background-color:#fdfcf9;background-image:linear-gradient(rgba(95,115,115,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(95,115,115,.08) 1px,transparent 1px);background-size:5% 5%;box-shadow:0 8px 25px rgba(25,43,46,.12);touch-action:none}
.seating-canvas.room-rect{width:min(100%,900px);aspect-ratio:1.42/1}
.seating-canvas.room-square{width:min(100%,720px);aspect-ratio:1/1}
.seating-static-room.room-rect{aspect-ratio:1.42/1}.seating-static-room.room-square{aspect-ratio:1/1}
.seating-front-label{position:absolute;left:50%;top:5px;transform:translateX(-50%);z-index:2;padding:3px 8px;border-radius:99px;background:rgba(255,255,255,.9);color:#6b797a;font-size:7px;font-weight:850;letter-spacing:.08em;white-space:nowrap;pointer-events:none}
.seating-object{position:absolute;width:var(--obj-w);height:var(--obj-h);transform:rotate(var(--rot));transform-origin:center;z-index:3;cursor:grab;user-select:none;touch-action:none}
.seating-object:active{cursor:grabbing}.seating-object.selected{z-index:8}
.seating-object.selected::after{content:"";position:absolute;inset:-5px;border:2px solid var(--primary);border-radius:8px;box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12);pointer-events:none}
.seating-object-rotator{position:relative;width:100%;height:100%;box-sizing:border-box;border:2px solid #657678;border-radius:7px;background:#d9c5a7;box-shadow:0 2px 5px rgba(0,0,0,.12)}
.seating-kind-table .seating-object-rotator,.seating-kind-nest .seating-object-rotator{background:#d0bd9d;border-width:3px}
.seating-kind-nest .seating-object-rotator::after{content:"";position:absolute;left:5%;right:5%;top:50%;border-top:3px double #6b5b45}
.seating-kind-teacher .seating-object-rotator{background:#c7a981;border-color:#6a5844}
.seating-kind-board .seating-object-rotator{background:#385d55;border-color:#243e39;color:#fff}
.seating-kind-door .seating-object-rotator{background:transparent;border:0;border-left:5px solid #8d7156;border-bottom:2px dashed #b99b7b;border-radius:0 0 0 100%}
.seating-kind-wall .seating-object-rotator{background:repeating-linear-gradient(180deg,#8b999a 0 7px,#dde3e3 7px 12px);border-color:#6e7c7d}
.seating-fixture-label{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:2px;font-size:7px;line-height:1.05;font-weight:900;transform:rotate(calc(-1 * var(--rot)))}
.seating-kind-board .seating-fixture-label{color:#fff}
.seating-seat{position:absolute;display:grid;grid-template-rows:14px 1fr;place-items:center;width:44%;min-width:34px;max-width:72px;transform:translate(-50%,-50%) rotate(calc(-1 * var(--rot)));pointer-events:none}
.seating-seat i{display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#fff;border:1px solid #7d8988;color:#536260;font-size:6px;font-style:normal;font-weight:900}
.seating-seat b{display:block;max-width:72px;margin-top:1px;padding:1px 3px;border-radius:4px;background:rgba(255,255,255,.93);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6px;line-height:1.2;font-weight:800}
.seating-seat.assigned i{background:#dff1e5;border-color:#73ae89;color:#24623c}
.seating-canvas-help{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:9px}
.seating-print-page{overflow:hidden!important}
.seating-print-room-wrap{height:calc(100% - 37mm);display:grid;place-items:center;overflow:hidden;padding:2mm 0 5mm}
.seating-print-room-wrap .seating-static-room{width:min(96%,240mm);height:auto;max-height:100%;box-shadow:none;border-width:3px;background-size:5% 5%}
.seating-print-room-wrap .seating-static-room.room-square{width:min(74%,170mm)}
.seating-print-room-wrap .seating-object{cursor:default}
.seating-print-room-wrap .seating-seat b{font-size:5.7pt;max-width:26mm}
.seating-print-room-wrap .seating-seat i{font-size:4.5pt}
.seating-print-room-wrap .seating-fixture-label{font-size:6pt}
.seating-print-legend{position:absolute;left:16mm;right:16mm;bottom:13mm;display:flex;justify-content:center;gap:10mm;color:#667575;font-size:6pt}
@media(max-width:1120px){
  .seating-layout{grid-template-columns:1fr}.seating-plan-list-panel{position:static}
  .seating-plan-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .seating-editor-layout{grid-template-columns:1fr}.seating-tools-panel{position:static}
  .seating-tools-panel{order:2}.seating-canvas-panel{order:1}
  .seating-palette{grid-template-columns:repeat(3,minmax(0,1fr))}
  .seating-canvas-wrap{min-height:420px;padding:8px}
}
@media(max-width:600px){
  .seating-plan-list{grid-template-columns:1fr}
  .seating-palette{grid-template-columns:1fr 1fr}
  .seating-palette button{min-height:42px}
  .seating-canvas-wrap{min-height:340px;margin-left:-5px;margin-right:-5px}
  .seating-canvas.room-rect{width:680px;max-width:none}
  .seating-canvas.room-square{width:560px;max-width:none}
  .seating-canvas-help{font-size:8px}
}
@media print{
  .seating-print-page .seating-static-room{break-inside:avoid!important;page-break-inside:avoid!important}
  .seating-print-page .seating-object.selected::after{display:none!important}
}



/* === 2.0.0: Testový režim === */
.test-mode-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(520px,1.4fr);gap:18px;align-items:start}
.test-mode-settings-stack{display:grid;gap:18px}
.test-scale-preview{margin-top:14px;padding:12px;border-radius:12px;background:var(--soft)}
.test-scale-preview-title{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}
.test-scale-preview-title small{max-width:300px;color:var(--muted);font-size:8.5px;text-align:right;line-height:1.35}
.test-scale-table{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.test-scale-table span,.test-scale-mini span{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:6px 7px;border-radius:8px;background:#fff;border:1px solid rgba(0,0,0,.05)}
.test-scale-table b,.test-scale-mini b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff}
.test-scale-table i,.test-scale-mini i{font-style:normal;font-weight:850;color:#526466}
.test-mode-preview-panel{min-width:0;position:sticky;top:18px}
.test-presentation-stage{--test-bg:#eef6f5;--test-fg:#173c40;--test-muted:#557276;--test-accent:#187b83;--test-accent-2:#d8a463;--test-panel:rgba(255,255,255,.78);position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;min-height:610px;overflow:hidden;border-radius:20px;background:var(--test-bg);color:var(--test-fg);font-family:Inter,Arial,sans-serif;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.test-design-web{--test-bg:linear-gradient(145deg,#e9f6f4 0%,#f9fbf9 52%,#f8efe5 100%);--test-fg:#173c40;--test-muted:#557276;--test-accent:#177f86;--test-accent-2:#dc9c5d;--test-panel:rgba(255,255,255,.78)}
.test-design-classroom{--test-bg:linear-gradient(145deg,#173e3a,#244f48 55%,#173b37);--test-fg:#fffdf2;--test-muted:#d1e0d9;--test-accent:#f2c45d;--test-accent-2:#ec845d;--test-panel:rgba(255,255,255,.09)}
.test-design-pastel{--test-bg:linear-gradient(145deg,#fff8f5,#edf8f4 48%,#f4effc);--test-fg:#4c5260;--test-muted:#7c8190;--test-accent:#9b75b5;--test-accent-2:#df9d86;--test-panel:rgba(255,255,255,.75)}
.test-design-dark{--test-bg:linear-gradient(145deg,#10161b,#18232b 58%,#0e151b);--test-fg:#eef8f8;--test-muted:#a9bbc0;--test-accent:#4fd3cb;--test-accent-2:#f0b25d;--test-panel:rgba(255,255,255,.06)}
.test-design-lab{--test-bg:linear-gradient(135deg,#eef4f4 0%,#f9fbfb 100%);--test-fg:#1e3640;--test-muted:#667a83;--test-accent:#2e748b;--test-accent-2:#d17b52;--test-panel:rgba(255,255,255,.78);background-image:linear-gradient(rgba(46,116,139,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(46,116,139,.055) 1px,transparent 1px),linear-gradient(135deg,#eef4f4,#f9fbfb);background-size:28px 28px,28px 28px,auto}
.test-stage-topline{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}
.test-stage-chip{padding:6px 10px;border:1px solid color-mix(in srgb,var(--test-accent) 35%,transparent);border-radius:999px;color:var(--test-accent);font-size:10px;font-weight:900;letter-spacing:.12em;background:var(--test-panel)}
.test-stage-clock{font-size:14px;font-weight:850;color:var(--test-muted)}
.test-stage-main{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:20px;padding:20px 28px 22px}
.test-stage-heading{text-align:center}.test-stage-heading p{margin:0 0 5px;color:var(--test-muted);font-size:10px;font-weight:900;letter-spacing:.14em}.test-stage-heading h2{margin:0;font-family:Georgia,serif;font-size:38px;line-height:1.05;color:var(--test-fg)}
.test-stage-timer-block{text-align:center}.test-stage-timer-block>span{display:block;color:var(--test-muted);font-size:9px;font-weight:900;letter-spacing:.12em}.test-stage-timer-block>strong{display:block;margin:3px 0 8px;font-size:74px;line-height:.95;letter-spacing:-.04em;color:var(--test-accent);font-variant-numeric:tabular-nums}
.test-stage-progress{height:8px;max-width:560px;margin:auto;border-radius:999px;background:color-mix(in srgb,var(--test-muted) 16%,transparent);overflow:hidden}.test-stage-progress i{display:block;width:100%;height:100%;border-radius:inherit;background:var(--test-accent);transition:width .4s linear,background .2s}.test-stage-progress.warning i{background:var(--test-accent-2)}.test-stage-progress.danger i{background:#d94f55}
.test-stage-info-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(190px,.7fr);gap:16px;min-height:0}
.test-stage-info-grid>section{min-height:0;padding:17px 19px;border-radius:17px;background:var(--test-panel);border:1px solid color-mix(in srgb,var(--test-muted) 12%,transparent);backdrop-filter:blur(8px)}
.test-stage-info-grid>section>span{display:block;margin-bottom:10px;color:var(--test-muted);font-size:9px;font-weight:900;letter-spacing:.12em}
.test-stage-instructions{font-size:16px;line-height:1.55;white-space:normal;overflow:auto}
.test-stage-points-card{text-align:center}.test-stage-points-card>strong{display:flex;justify-content:center;align-items:baseline;gap:7px;margin:8px 0 15px;font-size:18px}.test-stage-points-card>strong b{font-size:48px;color:var(--test-accent)}
.test-scale-mini{display:grid;gap:5px}.test-scale-mini span{padding:4px 6px;background:color-mix(in srgb,var(--test-panel) 88%,var(--test-bg));border-color:color-mix(in srgb,var(--test-muted) 12%,transparent)}.test-scale-mini b{width:20px;height:20px;background:var(--test-accent);font-size:10px}.test-scale-mini i{color:var(--test-fg);font-size:10px}
.test-stage-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 24px 18px;color:var(--test-muted);font-size:10px;font-weight:750}
.test-stage-footer>span:first-child,.test-stage-footer>div:first-child{color:var(--test-accent);font-weight:900}
.test-presentation-stage.time-ended{animation:testTimePulse 1.2s ease-in-out infinite}.test-presentation-stage.time-ended .test-stage-timer-block>strong{color:#d94f55}
@keyframes testTimePulse{0%,100%{box-shadow:inset 0 0 0 2px rgba(217,79,85,.18)}50%{box-shadow:inset 0 0 0 7px rgba(217,79,85,.42)}}
.test-mode-controls{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:13px}
.test-presentation-overlay{position:fixed;inset:0;z-index:999999;background:#000;display:grid}
.test-presentation-overlay[hidden]{display:none!important}
.test-presentation-overlay .test-presentation-stage{width:100vw;height:100dvh;min-height:0;border-radius:0;box-shadow:none}
.test-presentation-overlay .test-stage-topline{padding:2.5vh 3.5vw 0}.test-presentation-overlay .test-stage-main{padding:2vh 4vw 2.5vh;gap:2.6vh}.test-presentation-overlay .test-stage-heading h2{font-size:clamp(34px,5.2vw,78px)}.test-presentation-overlay .test-stage-timer-block>strong{font-size:clamp(80px,13vw,190px)}.test-presentation-overlay .test-stage-info-grid{grid-template-columns:minmax(0,1.9fr) minmax(230px,.6fr);gap:2vw}.test-presentation-overlay .test-stage-instructions{font-size:clamp(18px,2vw,32px);line-height:1.48}.test-presentation-overlay .test-stage-points-card>strong b{font-size:clamp(52px,6vw,94px)}.test-presentation-overlay .test-stage-footer{padding:1vh 3.5vw 2.5vh;font-size:clamp(10px,1vw,16px)}
.test-exit-button{position:absolute;right:18px;top:18px;z-index:20;width:42px;height:42px;border:0;border-radius:50%;background:rgba(0,0,0,.22);color:var(--test-fg);font-size:28px;cursor:pointer;backdrop-filter:blur(8px)}
.test-presentation-controls{display:flex;gap:6px}.test-presentation-controls button{min-width:42px;height:34px;border:1px solid color-mix(in srgb,var(--test-muted) 20%,transparent);border-radius:9px;background:var(--test-panel);color:var(--test-fg);font:inherit;font-weight:900;cursor:pointer}
body.test-presentation-open{overflow:hidden}
.test-design-modal-card{width:min(850px,calc(100vw - 30px))}
.test-design-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}
.test-design-choice{padding:9px;border:2px solid transparent;border-radius:14px;background:#fff;color:var(--text);text-align:left;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.06)}
.test-design-choice.selected{border-color:var(--primary);box-shadow:0 7px 20px rgba(var(--primary-rgb),.16)}
.test-design-choice b,.test-design-choice small{display:block}.test-design-choice b{margin-top:8px}.test-design-choice small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.3}
.test-design-swatch{display:grid;place-items:center;aspect-ratio:1.45/1;border-radius:9px;font-size:22px;font-weight:900;overflow:hidden}.test-design-swatch i{font-style:normal}
.swatch-web{background:linear-gradient(145deg,#e9f6f4,#f8efe5);color:#177f86}.swatch-classroom{background:#244f48;color:#f2c45d}.swatch-pastel{background:linear-gradient(145deg,#fff8f5,#f4effc);color:#9b75b5}.swatch-dark{background:#18232b;color:#4fd3cb}.swatch-lab{background-color:#eef4f4;background-image:linear-gradient(rgba(46,116,139,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(46,116,139,.12) 1px,transparent 1px);background-size:10px 10px;color:#2e748b}
@media(max-width:1050px){.test-mode-layout{grid-template-columns:1fr}.test-mode-preview-panel{position:static}.test-design-choices{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  .test-mode-preview-panel{padding-left:10px!important;padding-right:10px!important}
  .test-presentation-stage.test-stage-inline{min-height:580px}
  .test-stage-main{padding:16px 14px;gap:15px}.test-stage-heading h2{font-size:30px}.test-stage-timer-block>strong{font-size:62px}.test-stage-info-grid{grid-template-columns:1fr}.test-stage-instructions{font-size:14px}.test-stage-points-card{display:grid;grid-template-columns:auto 1fr;column-gap:10px;text-align:left}.test-stage-points-card>span{grid-column:1/-1}.test-stage-points-card>strong{justify-content:flex-start;margin:0}.test-stage-points-card>strong b{font-size:40px}.test-scale-mini{grid-template-columns:repeat(5,minmax(0,1fr))}
  .test-design-choices{grid-template-columns:1fr 1fr}
  .test-scale-preview-title{align-items:start;flex-direction:column}.test-scale-preview-title small{text-align:left}
  .test-presentation-overlay .test-stage-info-grid{grid-template-columns:1fr}.test-presentation-overlay .test-stage-main{overflow:auto}.test-presentation-overlay .test-stage-timer-block>strong{font-size:clamp(70px,20vw,120px)}.test-presentation-overlay .test-stage-instructions{font-size:clamp(16px,4vw,24px)}.test-presentation-overlay .test-stage-points-card{display:grid;grid-template-columns:auto 1fr;align-items:center;text-align:left}.test-presentation-overlay .test-stage-points-card>span{grid-column:1/-1}.test-presentation-overlay .test-stage-points-card>strong{justify-content:flex-start}.test-presentation-overlay .test-scale-mini{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:430px){.test-design-choices{grid-template-columns:1fr}.test-stage-topline{padding-left:14px;padding-right:14px}.test-stage-footer{padding-left:14px;padding-right:14px}.test-mode-controls .btn{flex:1 1 40%}}



/* === 2.0.0: opravy podle skutečného Chromium print-media QA === */

/* Měsíční plánovací strana má vlastní pevnou tiskovou zónu.
   Nemůže už růst do zápatí. */
.print-page.month-planning-page{
  position:relative!important;
}
.print-page.month-planning-page .month-planning-grid{
  position:absolute!important;
  left:16mm!important;
  right:16mm!important;
  top:47mm!important;
  bottom:17mm!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:44mm minmax(0,1fr) 38mm!important;
  gap:3mm!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
}
.print-page.month-planning-page .month-planning-grid .planner-box{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
  padding:2.5mm!important;
}
.print-page.month-planning-page .month-planning-grid .tall,
.print-page.month-planning-page .month-planning-grid .notes-large{
  min-height:0!important;
}
.print-page.month-planning-page .event-planning-table{
  font-size:6pt!important;
}
.print-page.month-planning-page .event-planning-table th,
.print-page.month-planning-page .event-planning-table td{
  height:5.3mm!important;
  padding:.65mm 1mm!important;
}
.print-page.month-planning-page .event-overflow-summary td{
  font-style:italic;
  color:#667679;
}
.print-page.month-planning-page.landscape .month-planning-grid{
  top:34mm!important;
  bottom:16mm!important;
  grid-template-rows:30mm minmax(0,1fr) 27mm!important;
  gap:2mm!important;
}
.print-page.month-planning-page.landscape .event-planning-table th,
.print-page.month-planning-page.landscape .event-planning-table td{
  height:4.4mm!important;
  padding:.4mm .8mm!important;
}

/* A5 není zmenšené A4 – má vlastní, kratší plánovací sazbu. */
.print-page.paper-a5.month-planning-page .month-planning-grid{
  left:10mm!important;
  right:10mm!important;
  top:36mm!important;
  bottom:16mm!important;
  grid-template-rows:28mm minmax(0,1fr) 24mm!important;
  gap:2mm!important;
}
.print-page.paper-a5.month-planning-page .month-planning-grid .planner-box{
  padding:1.5mm!important;
}
.print-page.paper-a5.month-planning-page .month-planning-grid h3{
  font-size:6.3pt!important;
  margin-bottom:.8mm!important;
}
.print-page.paper-a5.month-planning-page .event-planning-table{
  font-size:4.8pt!important;
}
.print-page.paper-a5.month-planning-page .event-planning-table th,
.print-page.paper-a5.month-planning-page .event-planning-table td{
  height:4mm!important;
  padding:.3mm .55mm!important;
}
.print-page.paper-a5.landscape.month-planning-page .month-planning-grid{
  left:9mm!important;
  right:9mm!important;
  top:28mm!important;
  bottom:12mm!important;
  grid-template-rows:21mm minmax(0,1fr) 18mm!important;
  gap:1.4mm!important;
}
.print-page.paper-a5.landscape.month-planning-page .event-planning-table th,
.print-page.paper-a5.landscape.month-planning-page .event-planning-table td{
  height:3.2mm!important;
  font-size:4pt!important;
}

/* Týdenní dvoustránka používá absolutní bezpečnou zónu mezi hlavičkou
   a zápatím. To je robustnější než kombinace flex/grid min-height. */
.print-page.weekly-spread{
  display:block!important;
  position:relative!important;
}
.print-page.weekly-spread .weekly-spread-body{
  position:absolute!important;
  left:16mm!important;
  right:16mm!important;
  top:44mm!important;
  bottom:19mm!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  gap:1.2mm!important;
}
.print-page.weekly-spread .weekly-spread-lower{
  max-height:23mm!important;
  margin-top:0!important;
  gap:1mm!important;
}
.print-page.weekly-spread .week-days-stack{
  min-height:0!important;
  height:100%!important;
  gap:1mm!important;
}
.print-page.weekly-spread .week-day-card.wide-card{
  min-height:0!important;
  height:100%!important;
}
.print-page.weekly-spread .day-reflection-spread{
  min-height:0!important;
}
.print-page.weekly-spread.landscape .weekly-spread-body{
  left:16mm!important;
  right:16mm!important;
  top:33mm!important;
  bottom:14mm!important;
}
.print-page.weekly-spread.landscape .weekly-spread-lower{
  max-height:18mm!important;
}

/* A5 týden */
.print-page.paper-a5.weekly-spread .weekly-spread-body{
  left:10mm!important;
  right:10mm!important;
  top:34mm!important;
  bottom:16mm!important;
  gap:.7mm!important;
}
.print-page.paper-a5.weekly-spread .weekly-spread-lower{
  max-height:16mm!important;
  gap:.55mm!important;
}
.print-page.paper-a5.weekly-spread .week-days-stack{
  gap:.55mm!important;
}
.print-page.paper-a5.weekly-spread .day-reflection-spread i{
  display:none!important;
}
.print-page.paper-a5.landscape.weekly-spread .weekly-spread-body{
  left:9mm!important;
  right:9mm!important;
  top:27mm!important;
  bottom:12mm!important;
}
.print-page.paper-a5.landscape.weekly-spread .weekly-spread-lower{
  max-height:12mm!important;
}

/* Safety fit nyní jen zhutňuje obsah uvnitř již pevné zóny. */
.print-page.weekly-spread.print-fit-1 .weekly-spread-body,
.print-page.weekly-spread.print-fit-2 .weekly-spread-body{
  margin:0!important;
}
.print-page.weekly-spread.print-fit-1 .weekly-spread-lower{max-height:18mm!important}
.print-page.weekly-spread.print-fit-2 .weekly-spread-lower{max-height:14mm!important}
.print-page.paper-a5.weekly-spread.print-fit-1 .weekly-spread-lower{max-height:13mm!important}
.print-page.paper-a5.weekly-spread.print-fit-2 .weekly-spread-lower{max-height:10mm!important}


/* 2.0.0 – A5 týden používá vlastní kompaktní spodní pás */
.print-page.paper-a5.weekly-spread .weekly-a5-strip{
  display:grid!important;
  min-height:0!important;
  height:10mm!important;
  max-height:10mm!important;
  gap:.7mm!important;
  margin:0!important;
  overflow:hidden!important;
}
.print-page.paper-a5.weekly-spread .weekly-a5-strip-left{grid-template-columns:repeat(3,minmax(0,1fr))}
.print-page.paper-a5.weekly-spread .weekly-a5-strip-right{grid-template-columns:minmax(0,1.7fr) minmax(0,.7fr)}
.print-page.paper-a5.weekly-spread .weekly-a5-strip section{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:.7mm!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:.8mm 1mm!important;
  border:1px solid var(--design-line)!important;
  border-radius:1.6mm!important;
  background:rgba(255,255,255,.72)!important;
  font-size:4.4pt!important;
}
.print-page.paper-a5.weekly-spread .weekly-a5-strip b{font-size:4.5pt!important;white-space:nowrap}
.print-page.paper-a5.weekly-spread .weekly-a5-strip i{display:block;height:1.7mm;border-bottom:1px solid var(--design-line)}
.print-page.paper-a5.weekly-spread .weekly-a5-strip span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:4.2pt!important}
.print-page.paper-a5.weekly-spread .weekly-spread-lower{display:none!important}

/* Mobilní wizard: karta je opravdu ukotvena k visual viewportu, nikoli
   pouze položena do gridu modal-backdrop. */
@media(max-width:760px), (max-height:720px){
  #printWizardModal,
  #diarySettingsModal{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    padding:0!important;
    overflow:hidden!important;
    align-items:stretch!important;
    justify-items:stretch!important;
  }
  #printWizardModal:not([hidden]),
  #diarySettingsModal:not([hidden]){
    display:block!important;
  }
  #printWizardModal .print-wizard-card,
  #diarySettingsModal .diary-settings-card{
    position:fixed!important;
    top:max(6px,env(safe-area-inset-top))!important;
    right:max(6px,env(safe-area-inset-right))!important;
    bottom:max(6px,env(safe-area-inset-bottom))!important;
    left:max(6px,env(safe-area-inset-left))!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
  }
  #printWizardModal .print-wizard-body,
  #diarySettingsModal .diary-wizard-body{
    min-height:0!important;
    overflow-y:auto!important;
  }
  #printWizardModal .diary-wizard-footer,
  #diarySettingsModal .diary-wizard-footer{
    flex:0 0 auto!important;
    position:relative!important;
    bottom:auto!important;
  }
}




/* === 2.0.0: pevné bezpečné zóny pro jednostránkový měsíc a týden === */
.print-page.weekly-single,
.print-page.month-page{position:relative!important}

/* Týden na jedné stránce: default je landscape. */
.print-page.weekly-single .weekly-single-layout{
  position:absolute!important;
  left:16mm!important;right:16mm!important;
  top:33mm!important;bottom:14mm!important;
  width:auto!important;height:auto!important;
  min-height:0!important;max-height:none!important;
  margin:0!important;padding:0!important;
  overflow:hidden!important;
  display:grid!important;
}
.print-page.weekly-single:not(.landscape) .weekly-single-layout{top:44mm!important;bottom:19mm!important}
.print-page.weekly-single .week-days-grid,
.print-page.weekly-single .weekly-sidebar{min-height:0!important;height:100%!important;overflow:hidden!important}
.print-page.weekly-single .week-day-card{min-height:0!important;overflow:hidden!important}
.print-page.weekly-single .weekly-sidebar{gap:1.6mm!important}
.print-page.weekly-single .weekly-sidebar .planner-box{min-height:0!important;overflow:hidden!important;padding:1.8mm!important}
.print-page.weekly-single .weekly-sidebar .planner-box h3{margin-bottom:1mm!important}

/* A5 týden na jedné stránce */
.print-page.paper-a5.weekly-single .weekly-single-layout{left:9mm!important;right:9mm!important;top:27mm!important;bottom:12mm!important;gap:2mm!important}
.print-page.paper-a5.weekly-single:not(.landscape) .weekly-single-layout{left:10mm!important;right:10mm!important;top:34mm!important;bottom:16mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar{gap:.7mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar .planner-box{padding:.8mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar .planner-box h3{font-size:5pt!important;margin-bottom:.4mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar .blank-lines{gap:.35mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar .check-lines{gap:.25mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar .check-lines span{height:1.7mm!important}
.print-page.paper-a5.weekly-single .weekly-sidebar .weekly-quote{display:none!important}
.print-page.paper-a5.weekly-single .weekly-reflection-grid{font-size:4pt!important;gap:.3mm!important}

/* Měsíc na jedné stránce: landscape má zvláštní pevnou zónu. */
.print-page.month-page:not(.spread-month-page) .month-layout:not(.spread-calendar){
  position:absolute!important;
  left:16mm!important;right:16mm!important;
  top:34mm!important;bottom:14mm!important;
  width:auto!important;height:auto!important;
  min-height:0!important;max-height:none!important;
  margin:0!important;padding:0!important;
  overflow:hidden!important;
}
.print-page.month-page:not(.landscape) .month-layout:not(.spread-calendar){top:47mm!important;bottom:19mm!important}
.print-page.month-page .month-calendar,
.print-page.month-page .month-sidebar{min-height:0!important;height:100%!important;overflow:hidden!important}
.print-page.month-page .month-sidebar{gap:1.5mm!important}
.print-page.month-page .month-sidebar .planner-box{min-height:0!important;overflow:hidden!important;padding:1.7mm!important}
.print-page.month-page .month-sidebar .planner-box h3{margin-bottom:.7mm!important}
.print-page.month-page .month-sidebar .event-list-row{padding:.45mm 0!important;font-size:5.2pt!important}

/* A5 jednostránkový měsíc */
.print-page.paper-a5.month-page .month-layout:not(.spread-calendar){left:9mm!important;right:9mm!important;top:28mm!important;bottom:12mm!important;gap:2mm!important}
.print-page.paper-a5.month-page:not(.landscape) .month-layout:not(.spread-calendar){left:10mm!important;right:10mm!important;top:36mm!important;bottom:16mm!important}
.print-page.paper-a5.month-page .month-sidebar{gap:.6mm!important}
.print-page.paper-a5.month-page .month-sidebar .planner-box{padding:.7mm!important}
.print-page.paper-a5.month-page .month-sidebar .planner-box h3{font-size:4.8pt!important;margin-bottom:.3mm!important}
.print-page.paper-a5.month-page .month-sidebar .event-list-row{font-size:3.9pt!important;padding:.12mm 0!important;grid-template-columns:8mm minmax(0,1fr)!important}
.print-page.paper-a5.month-page .month-sidebar .blank-lines{gap:.3mm!important}
.print-page.paper-a5.month-page .month-sidebar .blank-lines i{min-height:1.7mm!important}



/* === 2.0.0: vlastní kompaktní sazba jednostránkového týdne pro A5 / portrait === */
.print-page.weekly-single.compact-single-week .weekly-single-layout{grid-template-columns:minmax(0,1fr) 34mm!important;gap:2mm!important}
.print-page.weekly-single.compact-single-week .week-days-grid{gap:1mm!important}
.print-page.weekly-single.compact-single-week .compact-single-day{height:100%!important;min-height:0!important;overflow:hidden!important}
.print-page.weekly-single.compact-single-week .compact-single-day>header{padding:1mm 1.2mm!important;gap:.4mm!important;flex-direction:column!important;align-items:flex-start!important}
.print-page.weekly-single.compact-single-week .compact-single-day>header strong{font-size:6pt!important;line-height:1!important}
.print-page.weekly-single.compact-single-week .compact-single-day>header .day-date{font-size:4.7pt!important}
.compact-single-event{padding:.55mm .8mm;border-bottom:1px solid var(--design-line);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:4.3pt;line-height:1.15;color:#5d6e70}
.compact-single-event b{color:var(--primary)}
.compact-single-timeline{display:grid;flex:1;min-height:0;overflow:hidden}
.compact-single-timeline>div{display:grid;grid-template-columns:7mm minmax(0,1fr);min-height:0;border-bottom:1px solid var(--design-line)}
.compact-single-timeline time{display:grid;place-items:center;border-right:1px solid var(--design-line);font-size:4pt;color:#778486}
.compact-single-timeline i{display:block}
.compact-single-lines,.compact-single-block{flex:1;min-height:0;overflow:hidden;padding:.6mm .8mm}
.compact-single-lines .blank-lines{gap:.55mm!important}
.compact-single-lines .blank-lines i{min-height:2.5mm!important}
.compact-single-block b{display:block;margin-bottom:.5mm;font-size:4.4pt;color:#69787a}
.compact-single-block .blank-lines{gap:.5mm!important}.compact-single-block .blank-lines i{min-height:2.5mm!important}
.compact-single-reflection{display:flex;justify-content:space-between;gap:.5mm;align-items:center;padding:.45mm .7mm;border-top:1px solid var(--design-line);font-size:3.8pt;color:#6c7a7c;white-space:nowrap}
.compact-single-reflection b{font-size:4pt;letter-spacing:.15mm}
.print-page.weekly-single.compact-single-week .weekly-sidebar{display:grid!important;grid-template-rows:auto auto!important;align-content:start!important;gap:1mm!important}
.print-page.weekly-single.compact-single-week .weekly-sidebar .planner-box{height:auto!important;min-height:0!important;padding:1.2mm!important;overflow:hidden!important}
.print-page.weekly-single.compact-single-week .weekly-sidebar .planner-box h3{margin:0 0 .8mm!important;font-size:5.5pt!important}
.compact-week-summary>div,.compact-week-reflection>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7mm;margin:.45mm 0;font-size:4.3pt;line-height:1.1}
.compact-week-summary i,.compact-week-reflection i{display:block;height:2.2mm;border-bottom:1px solid var(--design-line)}
.compact-week-summary span,.compact-week-reflection span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.compact-week-event{grid-template-columns:auto minmax(0,1fr)!important}
.print-page.paper-a5.weekly-single.compact-single-week .weekly-single-layout{grid-template-columns:minmax(0,1fr) 27mm!important;gap:1.2mm!important}
.print-page.paper-a5.weekly-single.compact-single-week .week-days-grid{gap:.55mm!important}
.print-page.paper-a5.weekly-single.compact-single-week .compact-single-day>header{padding:.55mm .7mm!important}
.print-page.paper-a5.weekly-single.compact-single-week .compact-single-day>header strong{font-size:4.8pt!important}
.print-page.paper-a5.weekly-single.compact-single-week .compact-single-day>header .day-date{font-size:3.8pt!important}
.print-page.paper-a5 .compact-single-event{font-size:3.4pt;padding:.3mm .45mm}
.print-page.paper-a5 .compact-single-timeline>div{grid-template-columns:5.5mm minmax(0,1fr)}
.print-page.paper-a5 .compact-single-timeline time{font-size:3.2pt}
.print-page.paper-a5 .compact-single-lines .blank-lines i,.print-page.paper-a5 .compact-single-block .blank-lines i{min-height:1.7mm!important}
.print-page.paper-a5 .compact-single-reflection{font-size:3.1pt;padding:.25mm .4mm}.print-page.paper-a5 .compact-single-reflection b{font-size:3.2pt}
.print-page.paper-a5.weekly-single.compact-single-week .weekly-sidebar{gap:.55mm!important}
.print-page.paper-a5.weekly-single.compact-single-week .weekly-sidebar .planner-box{padding:.65mm!important}
.print-page.paper-a5.weekly-single.compact-single-week .weekly-sidebar .planner-box h3{font-size:4.4pt!important;margin-bottom:.35mm!important}
.print-page.paper-a5 .compact-week-summary>div,.print-page.paper-a5 .compact-week-reflection>div{font-size:3.4pt;margin:.2mm 0;gap:.35mm}
.print-page.paper-a5 .compact-week-summary i,.print-page.paper-a5 .compact-week-reflection i{height:1.5mm}



/* === 2.0.0: poslední A5 portrait pojistka pro úzké víkendové sloupce === */
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .week-days-grid.days-7.weekend-compact{gap:.35mm!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-single-day>header{padding:.35mm .4mm!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-single-day>header strong{font-size:4.2pt!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-single-day>header .day-date{font-size:3.2pt!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-single-event{font-size:3pt!important;padding:.2mm .3mm!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-single-reflection{font-size:2.8pt!important;padding:.18mm .25mm!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-single-reflection b{font-size:2.8pt!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-weekend .compact-single-reflection{display:none!important}
.print-page.paper-a5.weekly-single.compact-single-week:not(.landscape) .compact-weekend .compact-single-timeline time{font-size:2.7pt!important}



/* === 2.0.0 PWA === */
.pwa-panel{border-color:rgba(var(--primary-rgb),.24);background:linear-gradient(145deg,#fff,rgba(var(--primary-rgb),.035))}
.pwa-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pwa-status-grid article{padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}
.pwa-status-grid span,.pwa-status-grid strong,.pwa-status-grid small{display:block}.pwa-status-grid span{font-size:8px;font-weight:900;letter-spacing:.11em;color:var(--muted)}.pwa-status-grid strong{margin:4px 0;font-size:17px}.pwa-status-grid small{font-size:9px;line-height:1.35;color:var(--muted)}
.pwa-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pwa-update-banner{position:fixed;right:18px;bottom:18px;z-index:9999999;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;width:min(560px,calc(100vw - 24px));padding:13px 14px;border:1px solid rgba(var(--primary-rgb),.24);border-radius:15px;background:#fff;box-shadow:0 18px 50px rgba(14,42,46,.22)}
.pwa-update-banner[hidden]{display:none!important}.pwa-update-banner div b,.pwa-update-banner div span{display:block}.pwa-update-banner div span{margin-top:2px;color:var(--muted);font-size:9px}
@media(max-width:700px){.pwa-status-grid{grid-template-columns:1fr}.pwa-actions .btn{flex:1 1 45%}.pwa-update-banner{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;grid-template-columns:1fr auto}.pwa-update-banner #pwaDismissUpdateBtn{position:absolute;right:5px;top:5px}.pwa-update-banner div{padding-right:20px}}


/* === 2.0.2: viditelné ± body v klasifikačním archu + automatické rozložení zasedacího pořádku === */
.grading-pm-print-toggle{padding:10px 12px;border:1px solid rgba(var(--primary-rgb),.15);border-radius:11px;background:rgba(var(--primary-rgb),.045)}
.grading-pm-print-toggle.active-option{border-color:rgba(var(--primary-rgb),.38);background:rgba(var(--primary-rgb),.10)}
.grading-pm-print-toggle span{font-weight:800;color:var(--primary)}
.seating-auto-layout{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(120px,.5fr) minmax(110px,.5fr) auto;gap:12px;align-items:end;margin-top:16px;padding:14px;border:1px solid rgba(var(--primary-rgb),.15);border-radius:14px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.055),rgba(255,255,255,.72))}
.seating-auto-layout-copy{align-self:center}.seating-auto-layout-copy strong,.seating-auto-layout-copy small{display:block}.seating-auto-layout-copy strong{margin:3px 0 4px;font-size:13px}.seating-auto-layout-copy small{max-width:520px;color:var(--muted);font-size:9.5px;line-height:1.4}
.seating-auto-layout-action{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:38px}.seating-auto-layout-action .design-badge{white-space:nowrap}
@media(max-width:900px){.seating-auto-layout{grid-template-columns:1fr 1fr}.seating-auto-layout-copy{grid-column:1/-1}.seating-auto-layout-action{justify-content:flex-start}}
@media(max-width:600px){.seating-auto-layout{grid-template-columns:1fr}.seating-auto-layout-copy{grid-column:auto}.seating-auto-layout-action{align-items:stretch;flex-direction:column}.seating-auto-layout-action .btn{width:100%}}


/* === 2.0.3: minikalendář má rezervovanou tiskovou zónu === */
.print-page.month-page.has-mini-months .page-header{
  position:relative;
  z-index:4;
  min-height:24mm;
  align-items:flex-start;
}
.print-page.month-page.has-mini-months .mini-months{
  position:relative;
  z-index:5;
  flex:0 0 auto;
}
.print-page.month-page.has-mini-months.landscape .month-layout:not(.spread-calendar){
  top:43mm!important;
}
.print-page.month-page.has-mini-months.landscape .month-sidebar{
  padding-top:0!important;
}
.print-page.month-page.has-mini-months.landscape .month-sidebar .goals-box{
  position:relative;
  z-index:2;
}
@media print{
  .print-page.month-page.has-mini-months.landscape .month-layout:not(.spread-calendar){
    top:43mm!important;
  }
}
/* A5 minikalendáře zůstávají skryté, takže se layout neposouvá. */
.print-page.paper-a5.month-page.has-mini-months .month-layout:not(.spread-calendar){
  top:28mm!important;
}

/* === 2.0.3: editace procent přímo v Testovém režimu === */
.test-threshold-editor{
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--soft);
}
.test-threshold-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  margin-bottom:9px;
}
.test-threshold-head b,.test-threshold-head small{display:block}
.test-threshold-head small{margin-top:2px;color:var(--muted);font-size:8.5px;line-height:1.35}
.test-threshold-head>span{font-weight:900;color:var(--primary)}
.test-threshold-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.test-threshold-grid label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px;align-items:center}
.test-threshold-grid label span{font-size:9px;font-weight:800;white-space:nowrap}
.test-threshold-grid input{
  min-width:0;
  width:100%;
  height:34px;
  padding:0 7px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-weight:850;
  text-align:center;
}
.test-threshold-warning{
  margin-top:8px;
  padding:7px 9px;
  border-radius:8px;
  background:#fde5e6;
  color:#96353a;
  font-size:9px;
  font-weight:800;
}
.test-scale-invalid{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:8px 10px;
  border-radius:9px;
  background:#fde5e6;
  color:#96353a;
}
.test-scale-invalid span{font-size:9px}
@media(max-width:560px){
  .test-threshold-grid{grid-template-columns:1fr 1fr}
}
