:root{--forest:#214735;--forest2:#133626;--leaf:#4f825a;--cream:#f8f6ef;--sage:#edf2e9;--ink:#1e382b;--muted:#697b6f;--line:#dde6d9;--paper:#fffdf9;--shadow:0 12px 38px #27482b0d; font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}.hide{display:none!important}#shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(160deg,#26523c,var(--forest2));color:#fff;min-height:100vh;padding:34px 17px 22px;position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 10px}.brand-art{width:45px;height:45px;background:#ffffff19;border:1px solid #ffffff22;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px}.brand strong{display:block;font-size:21px;line-height:1.13;letter-spacing:-.5px;color:white}.brand small{display:block;font-size:11px;color:#c6d9c9;margin-top:7px;line-height:1.5}.side-decoration{text-align:center;font-size:28px;opacity:.22;letter-spacing:12px;margin-top:75px}.side-info{background:#ffffff12;border:1px solid #ffffff19;border-radius:15px;padding:18px 15px;margin-top:38px}.side-info p{line-height:1.5;color:#e1efe0;font-size:14px;margin:15px 0 0}.pill{border-radius:15px;padding:6px 10px;background:#b6d1a32c;color:#e6f6df;font-weight:700;font-size:10px;letter-spacing:1px}.side-footer{margin-top:auto;font-size:11px;color:#a9c5b1;text-align:center;padding-top:20px}.sidebar nav{display:flex;flex-direction:column;gap:6px;margin-top:30px}.nav-item{background:transparent;text-align:left;color:#e9f1e6;padding:12px;border:1px solid transparent;border-radius:9px}.nav-item:hover{background:#ffffff20}.workarea{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:26px clamp(18px,4.2vw,65px) 18px;border-bottom:1px solid #e4e9df;background:#fffdf9d9;flex-wrap:wrap}.topbar h1{font-size:clamp(23px,2.5vw,34px);letter-spacing:-1px;margin:4px 0 0;color:#193e2b}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:800;color:#6b9274}.user-badge{font-size:12px;font-weight:700;color:#42684c;background:#e9f2e5;padding:9px 12px;border-radius:30px}main{max-width:1210px;padding:24px clamp(16px,4.2vw,65px) 80px;margin:auto}h2{font-size:clamp(23px,2.7vw,32px);letter-spacing:-.7px;margin:0 0 11px}h3{font-size:19px;margin:0 0 12px;letter-spacing:-.35px}h4{margin:0 0 9px}p{line-height:1.55;margin:8px 0 13px}.intro{min-height:190px;background:linear-gradient(110deg,#ebf1e4,#f8f2df);border:1px solid #d9e6cf;border-radius:19px;display:flex;align-items:center;justify-content:space-between;padding:26px 34px;gap:25px;margin-bottom:16px}.intro p{max-width:510px}.card{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:23px;margin-bottom:17px;box-shadow:var(--shadow)}.login-card{max-width:640px;margin:45px auto}#login>.card{max-width:720px}.label-row,.spread{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.muted,.small-muted{color:var(--muted)}.small-muted{font-size:12px;line-height:1.5}.note{background:#f1f4e9;border:1px solid #dce6cc;color:#345840;border-radius:12px;padding:14px 16px;margin-bottom:16px}.notice{padding:14px 17px;margin-bottom:16px;background:#e6f2e5;color:#204c30;border:1px solid #c5dfc3;border-radius:12px}.notice.error{background:#fff0eb;color:#a13927;border-color:#f2cfc0}.notice.info{background:#f0f4f6;color:#35586a;border-color:#d4e0e6}label{display:block;margin:13px 0 6px;font-size:13px;font-weight:750}input,textarea,select{width:100%;border:1px solid #cddacc;border-radius:10px;background:#fff;padding:12px;color:var(--ink);font-size:16px}input:focus,textarea:focus,select:focus{outline:2px solid #8bac8a;outline-offset:1px}textarea{min-height:105px;resize:vertical}input[type=file]{padding:9px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:15px 0}.button-primary,.button-secondary,.button-danger{display:inline-flex;align-items:center;justify-content:center;min-height:43px;border:0;border-radius:10px;padding:11px 17px;font-weight:720;font-size:14px}.button-primary{background:#285e40;color:#fff}.button-primary:hover{background:#1d4c32}.button-secondary{color:#235039;background:#e6eee3}.button-secondary:hover{background:#d8e8d5}.button-danger{color:#913f31;background:#fbe7e0}.text-button{background:none;border:0;color:#2d6647;font-weight:750;padding:6px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:12px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:11px}.stat{background:#edf3e9;border:1px solid #e1eadb;border-radius:13px;padding:16px}.stat b{display:block;font-size:27px;letter-spacing:-1px}.stat small{font-size:12px;color:var(--muted)}.tile{display:block;border-radius:13px;padding:16px;background:#f7faf4;border:1px solid #d8e5d6;color:var(--ink);min-height:105px;text-align:left;width:100%}.tile:hover{border-color:#82b18a;background:#eef6ec}.tile strong{font-size:17px;display:block;margin-bottom:6px}.tile small{color:#667a68}.school-card{border-left:4px solid #8fae87}.group-meta{font-size:12px;border-radius:15px;padding:5px 10px;color:#3e7048;background:#e8f0e4;font-weight:750;white-space:nowrap}.photo{display:block;max-width:100%;max-height:265px;object-fit:contain;margin:12px 0 0;border-radius:12px;border:1px solid #dce5d8}.phase-head{display:flex;justify-content:space-between;gap:9px;align-items:center;flex-wrap:wrap}.phase-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.span-all{grid-column:1/-1}.student-list{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.student-token{font-size:11px;background:#f1f2eb;border-radius:14px;padding:5px 9px}.group-top{margin-bottom:15px}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th,.report-table td{border-bottom:1px solid #e5ebe3;padding:9px 7px;text-align:left}.report-table th{text-transform:uppercase;color:#6b7a6c;font-size:10px;letter-spacing:.6px}.report-table td.num{text-align:right;font-variant-numeric:tabular-nums}.scroll-x{overflow-x:auto}.group-link{word-break:break-all;font-size:12px;background:#f5f8f2;padding:9px;border-radius:8px}#syncAlert{background:#eff3e0;padding:12px;border-radius:12px;margin-bottom:15px;font-size:13px}dialog{width:min(620px,calc(100vw - 26px));max-height:92vh;overflow:auto;border:1px solid #d9e3d6;border-radius:17px;padding:23px;background:#fffdf8;color:var(--ink);box-shadow:0 30px 60px #15321d50}dialog::backdrop{background:#14221c88}.dialog-top{display:flex;justify-content:space-between;align-items:center}.icon-btn{background:none;border:0;font-size:20px;color:#4d6a52}.qr-wrap{display:flex;align-items:center;justify-content:center;padding:20px;background:white;border-radius:14px;margin:12px auto;width:max-content;max-width:100%}.qr-wrap canvas,.qr-wrap img{max-width:100%}.print-report{display:none}.print-head{border-bottom:3px solid #29533a;padding-bottom:15px;margin-bottom:20px}.print-foot{border-top:1px solid #cbd7c9;margin-top:28px;padding-top:10px;font-size:11px;color:#5c765e}.warning{border-left:3px solid #c39342;padding:12px 15px;background:#fff6e9;color:#805724;font-size:13px;margin:12px 0}a{color:#2b6743}
@media(max-width:830px){#shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;min-height:0;padding:17px 17px 13px}.brand{padding:0}.brand small{display:none}.brand-art{height:37px;width:37px;font-size:21px}.side-decoration,.side-info,.side-footer{display:none}.sidebar nav{flex-direction:row;margin-top:11px;flex-wrap:wrap}.nav-item{font-size:12px;padding:8px 10px}.topbar{padding:17px}.topbar h1{font-size:24px}main{padding:16px 14px 55px}.intro{padding:22px}.card{padding:17px}.phase-form{grid-template-columns:1fr}}
@media(max-width:390px){.actions>button{flex:1}.stat{padding:11px}.grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}
@media print{*{box-shadow:none!important}html,body{background:white!important;font-family:Arial,sans-serif!important;color:#1d3326!important}#shell,dialog{display:none!important}#printArea{display:block!important;padding:0!important;font-size:12px}#printArea .print-report{display:block!important}#printArea .card{border:0;border-radius:0;padding:0;margin:0 0 18px}#printArea .grid{grid-template-columns:repeat(2,1fr)}#printArea .stats{display:flex;flex-wrap:wrap}#printArea .stat{background:#f4f7f2!important;min-width:105px;padding:9px}#printArea .stat b{font-size:19px}#printArea table{width:100%;border-collapse:collapse}#printArea th,#printArea td{border-bottom:1px solid #ddd;padding:7px 6px;text-align:left}#printArea img{max-height:105mm;width:auto;max-width:100%;object-fit:contain;page-break-inside:avoid}#printArea .photo-block{page-break-inside:avoid}#printArea .report-break{page-break-before:always} @page{size:A4;margin:14mm}}

/* Přepínání zobrazení bez dekorativního obrázku houby. */
.brand-art{font-weight:800;font-size:19px;letter-spacing:.02em;font-family:Georgia,serif}
.intro>div:first-child{flex:1}

/* Volitelné pojmenování Houbária */
.tile-nickname{display:block;color:#366a45;font-size:14px;font-weight:750;margin:1px 0 5px;overflow-wrap:anywhere}.group-name-line{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#f0f6e9;border:1px solid #dce8d7;border-radius:11px;padding:10px 13px;margin:10px 0 17px;color:#335b3b}.group-name-line span{overflow-wrap:anywhere}.group-name-line button{min-height:36px;padding:7px 11px}

/* Editace názvů škol a tříd – viditelné ovládání pouze pro administrátorku */
.class-manage{display:flex;flex-direction:column;gap:8px;min-width:0}
.class-manage>.tile{flex:1}
.class-manage>.rename-class{align-self:flex-start;min-height:34px;padding:7px 10px;font-size:12px}

/* Trvalé QR Houbárií a přepínání pěstebních cyklů. */
.cycle-banner{border:1px solid #b9d1ba;background:linear-gradient(110deg,#f1f6e9,#fffdf8);border-left:5px solid #5b9567}
.cycle-banner .spread{align-items:flex-start}
.cycle-banner h3{margin:5px 0 5px}
.cycle-banner p{font-size:13px;color:#54705b;margin:4px 0 10px}
.unit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:13px}
.unit-card{background:#f8faf4;border:1px solid #d8e5d6;border-radius:14px;padding:16px;min-width:0}
.unit-card>.spread{margin-bottom:8px}
.unit-card>.spread strong{font-size:16px;color:#214d38}
.unit-card>.spread .group-meta{white-space:normal}
.unit-current{font-size:13px;color:#617566;background:#edf4eb;padding:10px;border-radius:9px;margin-bottom:11px;min-height:42px}
.unit-card>.show-unit-qr{width:100%}
.cycle-history{border-top:1px solid #dae3d7;margin-top:12px;padding-top:10px}
.cycle-entry{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed #dce6db}
.cycle-entry span{display:flex;flex-direction:column;min-width:0;gap:3px}
.cycle-entry small{color:#667a68;font-size:11px}
.cycle-entry .actions{margin:0;gap:2px}
.cycle-entry .text-button{font-size:12px;white-space:nowrap}
.unit-card>.finish-unit{margin-top:12px;width:100%}
@media(max-width:620px){.unit-grid{grid-template-columns:1fr}.cycle-entry{flex-wrap:wrap}.cycle-entry .actions{margin-left:auto}}

/* Centrální administrace škol – pouze administrátorská obrazovka */
.admin-school-list{display:grid;gap:12px;margin-top:18px}
.admin-school-row{background:#f9faf5;border:1px solid #d8e2d6;border-radius:14px;padding:15px}
.admin-school-title{font-size:1.05rem;color:#1e4632}
.admin-school-row .spread{align-items:flex-start}
.admin-mini-classes{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.admin-mini-classes .button-secondary{font-size:.82rem;padding:8px 11px}
.admin-schools-panel .phase-form{margin-top:15px}
@media(max-width:650px){.admin-school-row{padding:12px}.admin-school-row .spread{flex-wrap:wrap}.admin-school-row .actions{display:flex;flex-wrap:wrap}}

/* Bezpecna sprava mazani skol */
.admin-delete-all{border:1px solid #eac4bc;background:#fff5f2;border-radius:14px;padding:16px;margin:22px 0 10px;display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap}
.admin-delete-all strong{color:#913f31}.admin-delete-all p{margin:5px 0 0;max-width:700px}
.admin-school-row .button-danger{font-size:12px;min-height:37px;padding:8px 11px}

/* Botanická elegance – sjednocený úvodní panel, bez zásahu do dat a formulářů. */
.intro {
  position: relative;
  isolation: isolate;
  min-height: 232px;
  overflow: hidden;
  background: radial-gradient(circle at 91% 13%, #f9f2e4 0, transparent 35%),
              linear-gradient(118deg,#e9f1e5 0%,#f4f5e9 60%,#f8f1df 100%);
  border: 1px solid #d9e5d2;
  box-shadow: 0 12px 30px rgba(31,69,46,.045);
  padding: 30px 36px;
}
.intro::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -44px;
  right: -32px;
  width: clamp(215px,30%,360px);
  height: calc(100% + 100px);
  background: url('assets/hliva-watermark.png') center center / contain no-repeat;
  opacity: .86;
  pointer-events:none;
}
.intro::after {
  content: "";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,rgba(239,246,233,.6) 0%,rgba(239,246,233,.16) 58%,transparent 82%);
  pointer-events:none;
}
.intro-copy {position:relative;z-index:1;max-width: min(690px,72%)}
.intro .eyebrow {display:inline-block;color:#567e5b;font-size:11px;letter-spacing:2px}
.intro h2 {font-family: Georgia, Cambria, serif;font-weight:700;font-size:clamp(27px,3.25vw,43px);line-height:1.13;letter-spacing:-1.15px;color:#204934;margin:12px 0 12px}
.intro p {font-size:14px;line-height:1.65;color:#40594a;max-width:580px;margin-bottom:14px}
.hero-tags {display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.hero-tags span {font-size:11px;letter-spacing:.1px;background:#fffefaad;border:1px solid #d7e2d2;color:#42694b;padding:7px 11px;border-radius:25px;font-weight:650}
.side-info {background:linear-gradient(135deg,#ffffff17,#ffffff0b);border:1px solid #ffffff2e;box-shadow:inset 0 1px 0 #ffffff12}
.side-info .pill {display:inline-block;background:#bbd9b336;color:#e6f3e4;letter-spacing:1.05px}
.side-decoration{font-size:25px;color:#bad6b9;opacity:.45}
#content>.card:first-of-type .stat {background:#edf4eb;border-color:#e0eadd}
#content>.card:first-of-type .stat b {color:#214735}
@media(max-width:960px){.intro-copy{max-width:78%}.intro::before{opacity:.40;right:-80px}}
@media(max-width:620px){
  .intro{padding:24px 22px;min-height:205px}
  .intro-copy{max-width:100%}
  .intro::before{width:230px;right:-115px;opacity:.20}
  .intro::after{background:linear-gradient(90deg,rgba(240,247,235,.92),rgba(240,247,235,.64))}
  .intro h2{font-size:30px}
  .hero-tags{margin-top:14px}
  .hero-tags span{padding:5px 9px}
}
@media print{.intro::before,.intro::after{display:none!important}}

/* Kalendář workshopů, připomínky a dopad */
.program-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.program-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.program-dow{font-size:11px;font-weight:750;color:#5b765e;text-align:center;padding:6px}
.program-day{border:1px solid #dde7db;border-radius:10px;min-height:100px;padding:8px;background:#fbfcf8;min-width:0}
.program-day.other{opacity:.35}.program-day.today{outline:2px solid #608d68}.program-day strong{display:block;font-size:12px;margin-bottom:5px}
.program-chip{display:block;width:100%;padding:4px 5px;margin:3px 0;border-radius:6px;background:#e1eee2;color:#204d36;font-size:10px;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.program-chip.workshop{background:#f8ecd4;color:#77551f}.program-chip.ended{background:#edf0eb;color:#667368}
.program-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.program-filters select{width:auto;min-width:180px}
.program-row{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(190px,2fr) auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #e2eae0}
.program-row:last-child{border-bottom:0}.program-row small{display:block;color:#647769}.program-pill{display:inline-block;border-radius:30px;background:#e6f0e4;color:#275b3d;font-size:11px;padding:4px 9px;font-weight:700}
.program-datebox{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.program-datebox label{display:grid;gap:5px;font-size:12px;font-weight:700}
.program-datebox input,.program-datebox select{width:100%}.program-empty{color:#667967;background:#f7f9f3;padding:18px;border-radius:10px}
.impact-chart{display:flex;align-items:flex-end;gap:12px;min-height:185px;padding:18px 8px;border-bottom:1px solid #dbe6d8}
.impact-bar{flex:1;min-width:45px;max-width:130px;display:flex;flex-direction:column;gap:5px;justify-content:flex-end;align-items:center;height:155px}
.impact-bar .bar{width:60%;min-height:3px;border-radius:8px 8px 0 0;background:#5b9567}.impact-bar b{font-size:12px}.impact-bar span{font-size:11px;color:#58715b}.impact-note{font-size:12px;color:#5e7163;line-height:1.6}
@media(max-width:780px){.program-grid{gap:3px}.program-day{min-height:70px;padding:4px}.program-chip{font-size:9px}.program-row{grid-template-columns:1fr}.program-datebox{grid-template-columns:1fr}.program-filters select{min-width:140px}}

/* Oprava přístupnosti map po rozšíření menu: mapa trvale nahoře, navigace rolovatelná */
@media(min-width:831px){
  .sidebar{overflow:hidden;min-height:0}
  .sidebar .brand{flex-shrink:0}
  .sidebar-public-map{display:block!important;flex:0 0 auto;margin:19px 0 2px!important;padding:12px!important;background:#ffffff17;border:1px solid #ffffff35;border-radius:10px;font-size:12px;line-height:1.35}
  .sidebar .side-decoration{margin-top:16px;font-size:17px}
  .sidebar .side-info{margin-top:12px;padding:11px 12px}
  .sidebar .side-info p{font-size:12px;margin:8px 0 0}
  .sidebar nav{min-height:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;margin-top:13px;padding-right:4px;padding-bottom:12px;scrollbar-color:#7ea48a transparent;scrollbar-width:thin}
  .sidebar nav .nav-item{flex:0 0 auto;padding:10px 11px;line-height:1.35;font-size:13px}
  .sidebar .side-footer{flex:0 0 auto;padding-top:9px}
}
@media(max-width:830px){
  .sidebar-public-map{display:inline-block!important;background:#ffffff18;border:1px solid #ffffff28;color:#eff7eb;margin:11px 0 0!important;font-size:12px;max-width:max-content}
  .sidebar nav{max-height:none;overflow:visible}
}


/* Přehledné oddíly navigace, veřejná mapa součástí hlavního menu */
.sidebar .nav-section-label{color:#b5d2bd;font-size:10px;font-weight:800;letter-spacing:.14em;padding:18px 11px 5px;line-height:1.4;pointer-events:none}
.sidebar .nav-section-label:first-child{padding-top:4px}
.sidebar nav .nav-item{white-space:normal;overflow-wrap:anywhere}
.sidebar .nav-section-label:not(:first-child){border-top:1px solid #ffffff20;margin-top:8px}
.public-map-login-link a{color:#235c3d;font-weight:750;text-underline-offset:4px}
@media(max-width:830px){.sidebar .nav-section-label{padding:13px 11px 4px}}

/* První nastavení pedagoga */
.teacher-setup-card{max-width:700px;margin-inline:auto}
.teacher-setup-card input{max-width:100%}
.teacher-setup-card label{margin-top:18px}
.teacher-setup-card .actions{margin-top:20px}
