/* Appka oboru: společný vzhled všech šesti oborů. */
:root{
  --red:#d80000; --red-dark:#a30000; --red-pale:#fdeaea; --red-text:#7a1414; --red-ink:#d80000;
  --mat-pale:#fbf1de; --mat-border:#8a5a12; --mat-text:#6b4a10;
  --zs-pale:#e6eef5; --zs-border:#2f5f8a; --zs-text:#1f3f5c;
  --anj-pale:#f1e9f9; --anj-border:#6d3fa0; --anj-text:#4a2d70;
  --ikt-pale:#e3f3f0; --ikt-border:#1f7a6b; --ikt-text:#14493f;
  --vs-pale:#fbeee0; --vs-border:#b5691d; --vs-text:#7a4712;
  --pravo-pale:#eaeef3; --pravo-border:#4a5a78; --pravo-text:#2f3c54;
  --tv-pale:#e6f3ea; --tv-border:#2f6b4f; --tv-text:#1f4a35;
  --tv-accent:#2f6b4f; --mat-accent:#8a5a12; --zs-accent:#2f5f8a;
  --anj-accent:#6d3fa0; --ikt-accent:#1f7a6b; --vs-accent:#b5691d; --pravo-accent:#4a5a78;
  --bg:#faf8f6; --surface:#ffffff; --surface-2:#f3efe9;
  --ink:#1c1a17; --ink-soft:#5c574f; --border:#e4ddd2;
  --grp-l: 92%; --grp-s: 62%; --grp-text-l: 28%;
  --shadow: 0 1px 2px rgba(28,26,23,.06), 0 4px 14px rgba(28,26,23,.06);
  --radius: 14px;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
@media all{
  :root:not([data-theme="light"]){
    --red-pale:#3a1414; --red-text:#ffd3d3; --red-dark:#d80000;
    --mat-pale:#33270f; --mat-border:#e0b155; --mat-text:#ffe3ad;
    --zs-pale:#0f2534; --zs-border:#6fa8d0; --zs-text:#c7e4f7;
    --anj-pale:#2a1f3a; --anj-border:#c19ee6; --anj-text:#e3d4f7;
    --ikt-pale:#0f2f2a; --ikt-border:#6fd0be; --ikt-text:#c7f0e6;
    --vs-pale:#3a2810; --vs-border:#e0a35a; --vs-text:#ffdcae;
    --pravo-pale:#232a38; --pravo-border:#9fb0cc; --pravo-text:#dde5f2;
    --tv-pale:#0f2a1c; --tv-border:#7fd9a8; --tv-text:#c8f0da;
    --tv-accent:#7fd9a8; --mat-accent:#e0b155; --zs-accent:#7fb8e8;
    --anj-accent:#c19ee6; --ikt-accent:#6fd0be; --vs-accent:#e0a35a; --pravo-accent:#9fb0cc;
    --bg:#171512; --surface:#211e1a; --surface-2:#2a2621;
    --ink:#f2ede6; --ink-soft:#c2b9ac; --border:#3a352d;
    --grp-l: 22%; --grp-s: 48%; --grp-text-l: 82%;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 4px 18px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --red-pale:#3a1414; --red-text:#ffd3d3; --red-dark:#d80000;
  --mat-pale:#33270f; --mat-border:#e0b155; --mat-text:#ffe3ad;
  --zs-pale:#0f2534; --zs-border:#6fa8d0; --zs-text:#c7e4f7;
  --anj-pale:#2a1f3a; --anj-border:#c19ee6; --anj-text:#e3d4f7;
  --ikt-pale:#0f2f2a; --ikt-border:#6fd0be; --ikt-text:#c7f0e6;
  --vs-pale:#3a2810; --vs-border:#e0a35a; --vs-text:#ffdcae;
  --pravo-pale:#232a38; --pravo-border:#9fb0cc; --pravo-text:#dde5f2;
    --tv-pale:#0f2a1c; --tv-border:#7fd9a8; --tv-text:#c8f0da;
  --tv-accent:#7fd9a8; --mat-accent:#e0b155; --zs-accent:#7fb8e8;
  --anj-accent:#c19ee6; --ikt-accent:#6fd0be; --vs-accent:#e0a35a; --pravo-accent:#9fb0cc;
  --bg:#171512; --surface:#211e1a; --surface-2:#2a2621;
  --ink:#f2ede6; --ink-soft:#c2b9ac; --border:#3a352d;
  --grp-l: 22%; --grp-s: 48%; --grp-text-l: 82%;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 4px 18px rgba(0,0,0,.35);
}
*{box-sizing:border-box;}
html{background:var(--surface);}   /* pruh nad hlavičkou (stavový řádek telefonu) má stejnou barvu jako hlavička */
body{
  margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans);
  padding-bottom:60px; -webkit-font-smoothing:antialiased; min-height:100vh;
}
.wrap{max-width:1180px; margin:0 auto; padding:0 16px;}

/* HEADER */
header.top{
  background:var(--surface); border-bottom:3px solid var(--red);
  background-image: linear-gradient(180deg, var(--surface) 0%, var(--surface) 92%, var(--red-pale) 100%);
}
.top-inner{
  max-width:1180px; margin:0 auto; padding:18px 16px 16px;
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.top-inner img{height:46px; width:auto; display:block;}
.logo-link{display:block; border-radius:8px; transition:.15s; flex-shrink:0;}
.logo-link:hover{opacity:.8; outline:2px solid var(--red); outline-offset:3px;}
.top-text h1{font-size:1.4rem; margin:0; letter-spacing:-.01em; font-weight:800;}
.top-text p{margin:2px 0 0; color:var(--ink-soft); font-size:.85rem;}
.top-text p.obor{font-weight:600; color:var(--red-dark);}
@media all{:root:not([data-theme="light"]) .top-text p.obor{color:#d80000;}}   /* červená jako v logu */
.gen-stamp{margin-left:auto; font-size:.75rem; color:var(--ink-soft); text-align:right; line-height:1.4;}
.beta-badge{
  flex-shrink:0; align-self:center; font-size:.72rem; font-weight:800; white-space:nowrap;
  background:var(--mat-pale); color:var(--mat-text); border:1px solid var(--mat-border);
  padding:5px 10px; border-radius:999px; cursor:help;
}
.beta-tag{display:inline-block; font-size:.66rem; font-weight:800; letter-spacing:.04em; padding:1px 7px; border-radius:999px; background:var(--mat-pale); color:var(--mat-text); border:1px solid var(--mat-border); vertical-align:1px;}      /* 2. a 3. ročník: zatím zkušebně */
.gen-stamp b{color:var(--red-ink); font-weight:600;}
.gen-stamp .mygrp{
  display:inline-block; margin-top:5px; padding:3px 10px; border-radius:999px;
  font-weight:700; font-size:.74rem;
}


/* GROUP PICKER */
.grouppicker{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  margin:16px 0 0; padding:13px 15px;
  background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--red);
  border-radius:var(--radius); box-shadow:var(--shadow);
}
.grouppicker .lbl{font-size:.8rem; color:var(--ink-soft); line-height:1.4;}
.grouppicker .lbl b{color:var(--ink); display:block; font-size:.88rem;}
.grouppicker select{
  padding:9px 13px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--ink); font-size:.88rem; font-weight:700;
  cursor:pointer; min-width:150px;
}
.grouppicker .hint{font-size:.76rem; color:var(--ink-soft); flex:1; min-width:180px;}

/* STATS BOX */
.stats-box{
  display:flex; gap:10px; flex-wrap:wrap; margin:0 0 14px;
}
.stat-card{
  flex:1 1 130px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:10px 12px; box-shadow:var(--shadow);
}
.stat-card .sv{font-size:1.25rem; font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums;}
.stat-card .sl{font-size:.72rem; color:var(--ink-soft); margin-top:3px; line-height:1.3;}
.stat-card.warn .sv{color:var(--red-ink);}
.stat-card.good .sv{color:#1f7a44;}
:root:not([data-theme="light"]) .stat-card.good .sv{color:#7fd9a8;}
@media all{:root:not([data-theme="light"]) .stat-card.good .sv{color:#7fd9a8;}}
:root[data-theme="dark"] .stat-card.good .sv{color:#7fd9a8;}

/* VARIANT CARDS */
.variant{
  border:1px solid var(--border); border-left:3px solid var(--red);
  background:var(--surface-2); border-radius:var(--radius);
  padding:12px 14px; margin-bottom:10px;
}
.variant h4{margin:0 0 4px; font-size:.95rem;}
.variant .vsub{font-size:.76rem; color:var(--ink-soft); margin-bottom:8px;}
.variant .vstats{display:flex; gap:12px; flex-wrap:wrap; font-size:.78rem; margin-bottom:9px;}
.variant .vstats b{font-variant-numeric:tabular-nums;}
.variant .vpicks{font-size:.74rem; color:var(--ink-soft); margin-bottom:10px; line-height:1.5;}
.variant .vpicks span{display:inline-block; background:var(--surface); border:1px solid var(--border);
  border-radius:999px; padding:2px 8px; margin:2px 4px 2px 0;}

/* MODAL (shared) */
.mdl{position:fixed; inset:0; background:rgba(0,0,0,.55); display:none; z-index:60;
  align-items:flex-start; justify-content:center; padding:20px 14px; overflow-y:auto;}
.mdl.show{display:flex;}
.mdl-box{background:var(--surface); border-radius:18px; max-width:620px; width:100%;
  padding:20px 20px 18px; box-shadow:0 14px 50px rgba(0,0,0,.4); margin:auto 0;}
.mdl-box h3{margin:0 0 4px; font-size:1.15rem;}
.mdl-box .mdl-sub{font-size:.82rem; color:var(--ink-soft); margin:0 0 14px; line-height:1.5;}
.mdl-box label.opt{display:flex; gap:8px; align-items:flex-start; font-size:.82rem;
  margin:8px 0; line-height:1.45; cursor:pointer;}
.mdl-box .drow{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:10px 0;}
.mdl-box .drow label{font-size:.78rem; color:var(--ink-soft); display:flex; flex-direction:column; gap:4px;}
.mdl-box input[type=date]{padding:8px 10px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--ink); font-size:.85rem; font-family:var(--sans);}
.mdl-actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px;}
.mdl-note{font-size:.75rem; color:var(--ink-soft); margin-top:12px; line-height:1.5;
  border-top:1px solid var(--border); padding-top:10px;}

/* UIS registration list */
.uis-row{
  padding:10px 12px; border-radius:9px;
  background:var(--surface-2); margin-bottom:6px; font-size:.88rem;
}
.uis-row .uis-sub{font-weight:800; color:var(--ink); display:block; margin-bottom:4px;}
.uis-row .uis-meta{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.uis-row .uis-when{color:var(--ink-soft); font-size:.82rem;}
.uis-row .uis-grp{
  font-weight:800; background:var(--red); color:#fff; padding:2px 9px;
  border-radius:20px; font-size:.78rem; white-space:nowrap; flex-shrink:0;
}

/* CUSTOM SLOT LIST */
.custom-list{margin-top:12px;}
.custom-list h5{margin:0 0 6px; font-size:.82rem; color:var(--ink-soft); font-weight:700;}
.custom-item{display:flex; align-items:center; gap:8px; font-size:.8rem;
  background:var(--surface-2); border:1px solid var(--border); border-radius:10px;
  padding:6px 10px; margin-bottom:5px;}
.custom-item .ci-x{margin-left:auto; border:none; background:transparent; color:var(--red-ink);
  cursor:pointer; font-size:1rem; line-height:1; padding:2px 4px;}
.own-tag{display:inline-block; background:var(--vs-pale); color:var(--vs-text);
  border:1px solid var(--vs-border); border-radius:999px; padding:1px 7px; font-size:.68rem; font-weight:700;}

/* SHARE BANNER */
.share-banner{
  display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:space-between;
  margin:14px 0 0; padding:12px 16px; border-radius:var(--radius);
  background:var(--zs-pale); border:1px solid var(--zs-border); color:var(--zs-text);
  font-size:.84rem; line-height:1.4;
}

/* TABS */
.tabs{display:flex; gap:8px; margin:18px 0 14px; flex-wrap:wrap;}
.tab-btn{
  border:1px solid var(--border); background:var(--surface); color:var(--ink);
  padding:9px 16px; border-radius:999px; font-size:.9rem; cursor:pointer;
  font-family:var(--sans); font-weight:600; transition:.15s;
  min-height:44px; box-sizing:border-box; display:inline-flex; align-items:center;
}
.tab-btn.active{background:var(--red); border-color:var(--red); color:#fff;}
.panel{display:none;}
.panel.active{display:block;}

/* UIS BAR */
.uisbar{
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  margin:16px 0 4px; padding:12px 14px;
  background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--red);
  border-radius:var(--radius);
}
.uisbar .lbl{font-size:.8rem; color:var(--ink-soft); margin-right:2px; line-height:1.4;}
.uisbar .lbl b{color:var(--ink); display:block; font-size:.86rem;}
.uislink{
  display:inline-flex; align-items:center; gap:6px; text-decoration:none;
  border:1px solid var(--border); background:var(--surface-2); color:var(--ink);
  padding:8px 14px; border-radius:10px; font-weight:700; font-size:.8rem;
  white-space:nowrap; transition:.15s;
}
.uislink:hover{border-color:var(--red); color:var(--red-ink); background:var(--red-pale);}
.uislink.primary{background:var(--red); border-color:var(--red); color:#fff;}
.uislink.primary:hover{background:var(--red-dark); color:#fff;}
@media (max-width:560px){ .uisbar{flex-direction:column; align-items:stretch;} .uislink{justify-content:center;} }

/* DISCLAIMER */
.disclaimer{
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
  padding:12px 16px; font-size:.82rem; color:var(--ink-soft); margin-bottom:16px; line-height:1.5;
}
.disclaimer b{color:var(--ink);}

/* FILTER BAR */
.filterbar{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:14px;}
.chip{
  border:1px solid var(--border); background:var(--surface); color:var(--ink-soft);
  padding:6px 13px; border-radius:999px; font-size:.82rem; cursor:pointer; font-weight:600; transition:.15s;
  min-height:40px; display:inline-flex; align-items:center;
}
.chip.on{background:var(--red-pale); border-color:var(--red); color:var(--red-text);}
.chip-row{display:flex; gap:8px; flex-wrap:wrap; flex:1 1 100%; min-width:0;}
/* telefon: čipy v jednom posuvném řádku, vpravo se ztrácejí (je vidět, že jich je víc), vyhledávání pod nimi */
@media (max-width:600px){
  .chip-row{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; margin:0 -16px; padding:0 16px 2px;
    -webkit-mask-image:linear-gradient(90deg, #000 85%, transparent); mask-image:linear-gradient(90deg, #000 85%, transparent);}
  .chip-row::-webkit-scrollbar{display:none;}
  .chip-row .chip{flex:0 0 auto; white-space:nowrap; min-height:36px; padding:5px 12px; font-size:.8rem;}
  .filterbar .search{flex:1 1 100%;}
}
.search{
  flex:1; min-width:160px; padding:8px 12px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface); color:var(--ink); font-size:.88rem;
}
.week-toggle{display:flex; border:1px solid var(--border); border-radius:10px; overflow:hidden;}
.week-toggle button{
  border:none; background:var(--surface); color:var(--ink-soft); padding:7px 12px; font-size:.82rem;
  cursor:pointer; font-weight:600; border-right:1px solid var(--border);
}
.week-toggle button:last-child{border-right:none;}
.week-toggle button.on{background:var(--red); color:#fff;}

/* CARDS */
.day-group{
  margin-bottom:12px; border:1px solid var(--border); border-radius:12px;
  background:var(--surface); overflow:hidden;
}
.day-group summary{
  cursor:pointer; list-style:none; padding:11px 14px; display:flex; align-items:center;
  gap:8px; background:var(--surface-2); -webkit-tap-highlight-color:transparent;
}
.day-group summary::-webkit-details-marker{display:none;}
.day-group summary::before{
  content:'▸'; color:var(--red); font-size:.85rem; transition:transform .15s; display:inline-block;
}
.day-group[open] summary::before{ transform:rotate(90deg); }
.day-group summary h3{
  font-size:1rem; margin:0; color:var(--ink); font-weight:800; flex:1;
}
.day-group summary .daycount{
  font-size:.76rem; font-weight:600; color:var(--ink-soft); background:var(--surface);
  border:1px solid var(--border); border-radius:999px; padding:2px 9px;
}
.day-group .day-body{padding:12px 14px 4px;}
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:11px 13px; margin-bottom:8px; display:flex; align-items:flex-start; gap:10px;
  flex-wrap:wrap; box-shadow:var(--shadow); transition:.15s;
}
.card:hover{border-color:var(--red);}
.card.mine{border-left:3px solid var(--red);}
.card .time{font-variant-numeric:tabular-nums; font-weight:700; font-size:.86rem; min-width:92px;}
.card .info{flex:1 1 170px; min-width:170px;}
.card .subj{font-weight:700; font-size:.92rem;}
.card .subj.TV{color:var(--tv-accent);} .card .subj.MAT{color:var(--mat-accent);} .card .subj.ZS{color:var(--zs-accent);}
.card .subj.ANJ{color:var(--anj-accent);} .card .subj.IKT{color:var(--ikt-accent);} .card .subj.VS{color:var(--vs-accent);} .card .subj.PRAVO{color:var(--pravo-accent);}
.card .meta{font-size:.82rem; color:var(--ink-soft); margin-top:1px;}
.notes{margin-top:6px; display:flex; gap:5px; flex-wrap:wrap; align-items:center;}
.note-badge{
  background:var(--surface-2); color:var(--ink-soft); border:1px solid var(--border);
  border-radius:6px; padding:2px 7px; font-size:.72rem; cursor:pointer; font-weight:600; font-family:inherit; line-height:inherit;
}
.note-badge:hover{border-color:var(--red);}
.wk-tag{font-size:.7rem; font-weight:700; padding:2px 7px; border-radius:6px; white-space:nowrap;}
.wk-tag.lichy{background:var(--mat-pale); color:var(--mat-text);}
.wk-tag.sudy{background:var(--zs-pale); color:var(--zs-text);}
.wk-tag.oba{background:var(--surface-2); color:var(--ink-soft); border:1px solid var(--border);}
.clash-tag{
  font-size:.7rem; font-weight:700; padding:2px 7px; border-radius:6px;
  background:var(--red-pale); color:var(--red-text); border:1px solid var(--red);
  max-width:100%; white-space:normal; line-height:1.35;
}
.swap-tag{
  font-size:.7rem; font-weight:700; padding:2px 7px; border-radius:6px;
  background:var(--surface-2); color:var(--ink-soft); border:1px solid var(--border);
  max-width:100%; white-space:normal; line-height:1.35;
}
.free-tag{
  font-size:.7rem; font-weight:700; padding:2px 7px; border-radius:6px; white-space:nowrap;
  background:var(--tv-pale); color:var(--tv-text); border:1px solid var(--tv-border);
}
.card.has-clash > .info{opacity:.8;}     /* ztlumí se jen text, tlačítko zůstane čitelné */
.card.has-clash .addbtn{border-color:var(--red); color:#fff;}
.tblock .tblock-wk{font-size:.56rem; padding:1px 5px; vertical-align:middle; margin-left:2px;}

/* GROUP BADGES */
.grp-badges{display:inline-flex; gap:4px; flex-wrap:wrap; vertical-align:middle;}
.grp-badge{
  font-size:.68rem; font-weight:800; padding:2px 7px; border-radius:6px; white-space:nowrap;
  border:1px solid transparent;
}
.grp-badge.is-mine{outline:2px solid var(--red); outline-offset:1px;}
.grp-free{
  font-size:.68rem; font-weight:700; padding:2px 7px; border-radius:6px;
  background:var(--surface-2); color:var(--ink-soft); border:1px dashed var(--border);
}
.addbtn{
  border:none; background:var(--red); color:#fff; border-radius:8px; padding:7px 14px;
  font-size:.78rem; font-weight:700; cursor:pointer; white-space:nowrap; align-self:center;
  min-height:44px; min-width:44px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
  margin-left:auto;
}
.addbtn.added{background:var(--tv-accent); color:#0b2a1b;}
.mand-tag{
  margin-left:auto;
  align-self:center; white-space:nowrap; font-size:.74rem; font-weight:700;
  color:var(--ink-soft); background:var(--surface-2); border:1px solid var(--border);
  border-radius:8px; padding:6px 10px;
}

/* TOOLTIP */
#globalTip{
  position:fixed; z-index:999; display:none; max-width:250px; background:var(--ink); color:var(--bg);
  font-size:.76rem; padding:8px 10px; border-radius:8px; line-height:1.4; box-shadow:var(--shadow);
  pointer-events:none;
}

/* WELCOME MODAL */
.modal-overlay{
  position:fixed; inset:0; z-index:1000; background:rgba(10,9,8,.55);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, visibility 0s linear .18s;
}
.modal-overlay.show{
  opacity:1; visibility:visible; pointer-events:auto;
  transition:opacity .18s ease, visibility 0s linear 0s;
}
.modal-box{
  background:var(--surface); border-top:4px solid var(--red); border-radius:20px;
  max-width:480px; width:100%; max-height:85vh; overflow-y:auto; padding:24px 24px 26px;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
  transform:translateY(10px) scale(.98); transition:transform .18s ease;
}
.modal-overlay.show .modal-box{ transform:translateY(0) scale(1); }
.modal-emoji{font-size:2rem; margin-bottom:2px;}
.modal-box h2{margin:0 0 10px; font-size:1.3rem; font-weight:800;}
.modal-box p{margin:0 0 12px; font-size:.92rem; line-height:1.55; color:var(--ink);}
.modal-box b{color:var(--red-ink);}
.modal-warn{
  background:var(--mat-pale); border:1px solid var(--mat-border); color:var(--mat-text);
  border-radius:10px; padding:11px 13px; font-size:.86rem; line-height:1.5; margin-bottom:12px;
}
.modal-warn b{color:inherit;}
.modal-tip{
  background:var(--zs-pale); border:1px solid var(--zs-border); color:var(--zs-text);
  border-radius:10px; padding:11px 13px; font-size:.86rem; line-height:1.5; margin-bottom:6px;
}
.modal-tip b{color:inherit;}
.modal-outro{font-weight:800; font-size:1.02rem; margin:14px 0 14px; text-align:center;}
.modal-close{width:100%; padding:12px; font-size:.95rem; min-height:44px;}
.help-reopen{
  border:1px solid var(--border); background:var(--surface); color:var(--ink-soft);
  width:34px; height:34px; border-radius:999px; font-weight:800; font-size:.9rem; cursor:pointer;
  flex-shrink:0;
}
.undo-redo-bar{
  position:fixed; right:14px; bottom:14px; z-index:500; display:flex; gap:8px;
  background:var(--surface); border:1px solid var(--border); border-radius:999px;
  padding:6px; box-shadow:0 4px 16px rgba(0,0,0,.35);
}
.undo-redo-bar button{
  width:38px; height:38px; border-radius:999px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--ink); font-size:1.1rem; cursor:pointer;
}
.undo-redo-bar button:disabled{opacity:.35; cursor:not-allowed;}
.undo-redo-bar button:not(:disabled):hover{border-color:var(--red); color:var(--red-ink);}

/* TIMELINE GRID */
.grid-scroll{overflow-x:auto; border-radius:var(--radius); border:1px solid var(--border); background:var(--surface);}
.timeline{min-width:1180px;}
.timeline-axis{display:flex; border-bottom:1px solid var(--border);}
.timeline-corner{
  width:64px; flex-shrink:0; background:var(--surface-2); font-size:.7rem; font-weight:800; color:var(--ink-soft);
  display:flex; align-items:center; justify-content:center; position:sticky; left:0; z-index:3;
}
.timeline-axis-track{display:flex; flex:1;}
.timeline-axis-track .axis-period{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.15;
  font-size:.62rem; font-weight:700; color:#fff; background:var(--red); padding:5px 1px;
  border-left:1px solid rgba(255,255,255,.25); white-space:nowrap;
}
.timeline-axis-track .axis-period b{font-size:.64rem;}
.timeline-axis-track .axis-period i{font-style:normal;}
.timeline-axis-track .axis-gap{flex:1; background:var(--surface-2); border-left:1px solid var(--border);}
.timeline-day-row{display:flex; border-bottom:1px solid var(--border);}
.timeline-day-row:last-child{border-bottom:none;}
.timeline-daylabel{
  width:64px; flex-shrink:0; background:var(--surface-2); font-size:.78rem; font-weight:700; color:var(--ink);
  display:flex; align-items:center; justify-content:center; position:sticky; left:0; z-index:2;
}
.timeline-lane-wrap{position:relative; flex:1; min-height:70px;}
.timeline-lane{position:relative; height:82px;}
.tblock{
  position:absolute; top:2px; bottom:2px;
  background:var(--red-pale); border-left:3px solid var(--red); color:var(--red-text);
  border-radius:6px; padding:3px 5px; font-size:max(.66rem, 11px); overflow:hidden;
}
.tblock.k-lecture{background:var(--tv-pale); border-left-color:var(--tv-border); color:var(--tv-text);}
.tblock.k-cviceni{background:var(--zs-pale); border-left-color:var(--zs-border); color:var(--zs-text);}
.tblock.k-volitelna{background:var(--vs-pale); border-left-color:var(--vs-border); color:var(--vs-text);}
.tblock.conflict{outline:2px solid var(--red); outline-offset:-2px;}
.grid-legend{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:12px; font-size:.78rem; color:var(--ink-soft);}
.grid-legend span{display:inline-flex; align-items:center; gap:6px;}
.grid-legend i{width:14px; height:14px; border-radius:4px; display:inline-block; flex-shrink:0;}
.grid-legend i.k-lecture{background:var(--tv-pale); border:1px solid var(--tv-border);}
.grid-legend i.k-cviceni{background:var(--zs-pale); border:1px solid var(--zs-border);}
.grid-legend i.k-volitelna{background:var(--vs-pale); border:1px solid var(--vs-border);}
.tblock .rm{position:absolute; top:1px; right:1px; background:none; border:none; color:inherit; font-size:.7rem; cursor:pointer; opacity:.7; line-height:1;}
.tblock .rm::after{content:""; position:absolute; inset:-10px;}   /* větší plocha pro klepnutí */
.tblock .rm:hover{opacity:1;}
.tblock b{display:block; font-size:.68rem; line-height:1.2;}
.tblock .tt{font-size:.6rem; opacity:.85;}
.tblock .tt2{font-size:.6rem; opacity:.9; font-style:italic; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.block{
  background:var(--red-pale); border-left:3px solid var(--red); color:var(--red-text);
  border-radius:6px; padding:4px 6px; font-size:.68rem; margin-bottom:3px; position:relative;
}
.block.MAT{background:var(--mat-pale); border-left-color:var(--mat-border); color:var(--mat-text);}
.block.ZS{background:var(--zs-pale); border-left-color:var(--zs-border); color:var(--zs-text);}
.block.ANJ{background:var(--anj-pale); border-left-color:var(--anj-border); color:var(--anj-text);}
.block.IKT{background:var(--ikt-pale); border-left-color:var(--ikt-border); color:var(--ikt-text);}
.block.VS{background:var(--vs-pale); border-left-color:var(--vs-border); color:var(--vs-text);}
.block.PRAVO{background:var(--pravo-pale); border-left-color:var(--pravo-border); color:var(--pravo-text);}
.block b{display:block; font-size:.72rem;}
.block .rm{
  position:absolute; top:2px; right:3px; border:none; background:none; color:inherit;
  cursor:pointer; font-size:.85rem; line-height:1; padding:2px; opacity:.7;
}
.block .rm:hover{opacity:1;}
.block.conflict{outline:2px solid #c02222;}
.block .wk{font-style:italic; opacity:.85;}
.block .gtag{display:inline-block; font-weight:800; opacity:.9;}
.empty-state{padding:30px 14px; text-align:center; color:var(--ink-soft); font-size:.9rem;}
.conflict-warn{
  background:var(--red-pale); border:1px solid var(--red); color:var(--red-text); border-radius:10px;
  padding:10px 14px; font-size:.82rem; margin-bottom:14px;
}
.complete-ok{
  background:var(--zs-pale); border:1px solid var(--zs-border); color:var(--zs-text); border-radius:10px;
  padding:10px 14px; font-size:.85rem; margin-bottom:14px; font-weight:700;
}
.complete-missing{
  background:var(--mat-pale); border:1px solid var(--mat-border); color:var(--mat-text); border-radius:10px;
  padding:10px 14px; font-size:.85rem; margin-bottom:14px;
}
.complete-missing b{display:block; margin-bottom:2px;}
/* MŮJ DEN */
.mujden-header{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px;
  margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--border);
}
.mujden-date{font-size:1.15rem; font-weight:800;}
/* DAYBAR-CSS */
.mujden-clock{font-size:.95rem; font-weight:700; color:var(--ink-soft); font-variant-numeric:tabular-nums; margin-left:6px; white-space:nowrap;}
.daybar-fact{display:flex; gap:8px; align-items:flex-start; margin:-4px 0 14px; padding:7px 10px; border-radius:10px; background:var(--surface-2); border:1px solid var(--border); font-size:.78rem; line-height:1.4; color:var(--ink-soft); cursor:pointer; min-height:34px;}
.daybar-fact:hover{border-color:var(--red);}
.daybar-ico{flex-shrink:0;}
.daybar-body{display:flex; flex-direction:column; gap:1px; min-width:0;}
.daybar-q{display:block; width:max-content; max-width:100%; align-self:flex-start; font-weight:800; font-size:.74rem; background:var(--red,#d80000); color:#fff; padding:2px 10px; border-radius:99px;}
#dayFactText{transition:opacity .25s ease;}
@media (prefers-reduced-motion: reduce){#dayFactText{transition:none;}}
/* DAYBAR-CSS */
.parity-flip{
  border:1px dashed var(--border); background:none; color:var(--ink-soft); font-size:.72rem;
  border-radius:999px; padding:3px 9px; margin-left:6px; cursor:pointer; min-height:36px; box-sizing:border-box;
}
.parity-flip:hover{border-color:var(--red); color:var(--red-ink);}
.mujden-empty{
  background:var(--surface-2); border-radius:10px; padding:20px; text-align:center;
  font-size:.95rem; font-weight:600; color:var(--ink-soft);
}
.mujden-list{display:flex; flex-direction:column; gap:8px;}
.mujden-item{
  display:flex; align-items:center; gap:12px; background:var(--surface-2); border:1px solid var(--border);
  border-radius:10px; padding:10px 12px;
}
.mujden-item.mujden-done{opacity:.86;}
.mujden-item .map-link{background:var(--red); color:#fff; padding:2px 9px; border-radius:99px;}      /* v barevných kartách je odkaz červená štítek s bílým textem (červený text by tam byl špatně čitelný) */
.mujden-item.mujden-done .map-link{background:transparent; color:var(--ink-soft); padding:0;}      /* proběhlá hodina: odkaz už není důležitý */
.mujden-item.mujden-now{border-color:var(--red); background:var(--red-pale);}
.mujden-item.k-lecture{--kc:var(--tv-border); --kp:var(--tv-pale);}
.mujden-item.k-cviceni{--kc:var(--zs-border); --kp:var(--zs-pale);}
.mujden-item.k-volitelna{--kc:var(--vs-border); --kp:var(--vs-pale);}
.mujden-item.k-lecture,.mujden-item.k-cviceni,.mujden-item.k-volitelna{background:var(--kp); border-left:4px solid var(--kc);}
.mujden-item.mujden-now.k-lecture,.mujden-item.mujden-now.k-cviceni,.mujden-item.mujden-now.k-volitelna{background:var(--red-pale); border-color:var(--red); border-left-color:var(--kc);}
.mujden-kind{font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--kc);}
.mujden-time{font-weight:800; font-variant-numeric:tabular-nums; font-size:.86rem; min-width:88px;}
.mujden-info{flex:1; min-width:0;}
.mujden-subj{font-weight:700; font-size:.9rem;}
.mujden-meta{font-size:.78rem; color:var(--ink-soft);}
.map-link{margin-left:6px; font-size:.72rem; font-weight:700; color:var(--red-ink); text-decoration:none; white-space:nowrap;}
.map-link:hover{text-decoration:underline;}
.room-hint{font-size:.72rem; color:var(--ink-soft);}

.inst-steps{margin-bottom:12px; font-size:.88rem; line-height:1.5;}
.inst-steps ol{margin:6px 0 0 18px; padding:0;}
.inst-me{font-size:.7rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--red-ink); margin-bottom:2px;}
.inst-other{margin-bottom:12px; font-size:.88rem;}
.inst-other summary{cursor:pointer; color:var(--ink-soft); font-weight:700; margin-bottom:8px;}
.inst-note{margin-top:8px;}
.mujden-badge{font-size:.72rem; font-weight:800; color:var(--red-text); white-space:nowrap;}
.mujden-item.mujden-now .mujden-badge{color:var(--red-ink);}
.mujden-tomorrow{
  margin-top:14px; padding-top:12px; border-top:1px dashed var(--border);
  font-size:.85rem; color:var(--ink-soft);
}
.anj-cert-check{
  display:flex; align-items:flex-start; gap:8px; margin-top:10px; padding-top:10px;
  border-top:1px dashed var(--border); font-size:.8rem; color:var(--ink-soft); cursor:pointer; line-height:1.4;
}
.anj-cert-check input{margin-top:3px; flex-shrink:0; width:16px; height:16px; accent-color:var(--red); cursor:pointer;}
.anj-cert-check a{color:var(--ink); font-weight:700; text-decoration:underline;}

/* MY GROUP PANEL */
.gp-hero{
  background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--red);
  border-radius:var(--radius); padding:16px 18px; margin-bottom:16px; box-shadow:var(--shadow);
}
.gp-hero h2{margin:0 0 4px; font-size:1.15rem; font-weight:800;}
.gp-hero p{margin:0; color:var(--ink-soft); font-size:.85rem; line-height:1.5;}
.gp-section{margin-bottom:22px;}
.gp-section h3{
  font-size:.98rem; margin:0 0 4px; color:var(--red-ink); font-weight:800;
}
.gp-section .sub{font-size:.8rem; color:var(--ink-soft); margin:0 0 10px;}
.gp-actions{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px;}

/* LEGEND */
details.legend{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:12px 16px; margin-top:18px;
}
details.legend summary{cursor:pointer; font-weight:700; font-size:.92rem;}
.legend-list{columns:2; column-gap:24px; margin-top:10px; font-size:.78rem; color:var(--ink-soft);}
.legend-list div{break-inside:avoid; margin-bottom:5px;}
.legend-list b{color:var(--ink); font-weight:700;}
@media (max-width:640px){.legend-list{columns:1;}}

.addform{
  background:var(--surface); border:1px dashed var(--border); border-radius:var(--radius);
  padding:14px 16px; margin-top:18px;
}
.addform h4{margin:0 0 10px; font-size:.92rem;}
.addform .row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px;}
.addform input, .addform select{
  padding:7px 10px; border-radius:8px; border:1px solid var(--border); background:var(--surface-2);
  color:var(--ink); font-size:.82rem; flex:1; min-width:100px;
}
.addform button{
  border:none; background:var(--red); color:#fff; padding:8px 16px; border-radius:8px;
  font-weight:700; font-size:.82rem; cursor:pointer;
}

.actions{display:flex; gap:10px; flex-wrap:wrap; margin:16px 0;}
.btn{
  border:1px solid var(--border); background:var(--surface); color:var(--ink);
  padding:9px 16px; border-radius:10px; font-weight:700; font-size:.85rem; cursor:pointer;
}
.btn.primary{background:var(--red); border-color:var(--red); color:#fff;}
/* tlačítka v pravidelné mřížce 2 × N (na mobilu hlavní způsob použití), na širokém displeji vedle sebe */
.actions{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.actions .btn{width:100%; text-align:center; padding:10px 8px; font-size:.84rem; line-height:1.25; white-space:normal;}
.actions #clearBtn{grid-column:1 / -1; background:transparent; color:var(--ink-soft); font-weight:600;}
@media (min-width:720px){ .actions{display:flex; flex-wrap:wrap;} .actions .btn{width:auto; padding:9px 16px; font-size:.85rem;} .actions #clearBtn{background:var(--surface); color:var(--ink); font-weight:700;} }
.modal-list{text-align:left; margin:10px 0 12px; padding-left:20px; font-size:.9rem; line-height:1.6;}
.modal-list li{margin-bottom:4px;}
/* větší klikací plochy: aspoň 44 px (doporučení pro ovládání jedním palcem) */
.help-reopen{width:44px; height:44px;}
.undo-redo-bar button{width:44px; height:44px;}
.grouppicker select, .addform input, .addform select{min-height:44px;}
@media (max-width:640px){ input, select, textarea{font-size:16px !important;} }   /* iPhone při psaní nezoomuje */
.addform button, .btn{min-height:44px;}
.sf-pill{min-height:44px; min-height:44px;}
details.legend summary, .inst-other summary{padding:12px 0;}   /* aby šla legenda a „jiné zařízení“ pohodlně rozbalit prstem */
.btn:disabled{opacity:.5;}

/* ---------- export (PNG download) look ---------- */
.export-shot{
  /* force the dark theme consistently regardless of the OS/browser color-scheme setting,
     since data-theme="light"/"dark" on a non-root clone doesn't affect the real :root */
  --red:#d80000; --red-dark:#d80000; --red-pale:#3a1414; --red-text:#ffd3d3;
  --mat-pale:#33270f; --mat-border:#e0b155; --mat-text:#ffe3ad;
  --zs-pale:#0f2534; --zs-border:#6fa8d0; --zs-text:#c7e4f7;
  --anj-pale:#2a1f3a; --anj-border:#c19ee6; --anj-text:#e3d4f7;
  --ikt-pale:#0f2f2a; --ikt-border:#6fd0be; --ikt-text:#c7f0e6;
  --vs-pale:#3a2810; --vs-border:#e0a35a; --vs-text:#ffdcae;
  --pravo-pale:#232a38; --pravo-border:#9fb0cc; --pravo-text:#dde5f2;
  --tv-pale:#0f2a1c; --tv-border:#7fd9a8; --tv-text:#c8f0da;
  --tv-accent:#7fd9a8; --mat-accent:#e0b155; --zs-accent:#7fb8e8;
  --anj-accent:#c19ee6; --ikt-accent:#6fd0be; --vs-accent:#e0a35a; --pravo-accent:#9fb0cc;
  --bg:#171512; --surface:#211e1a; --surface-2:#2a2621;
  --ink:#f2ede6; --ink-soft:#c2b9ac; --border:#3a352d;
  --grp-l: 22%; --grp-s: 48%; --grp-text-l: 82%;
  background:var(--bg) !important; color:var(--ink);
}
.export-shot header.top{ border-radius:16px; box-shadow:0 6px 22px rgba(0,0,0,.4); }
.export-shot .grid-scroll{
  border:none; border-radius:16px; overflow:hidden;
  box-shadow:0 8px 30px rgba(0,0,0,.45);
}
.export-shot .timeline-corner{ background:var(--red); color:#fff; }
.export-shot .timeline-axis-track .axis-gap{ background:var(--surface-2); border-left-color:var(--border); }
.export-shot .timeline-daylabel{ background:var(--red); color:#fff; border-right:none; }
.export-shot .timeline-day-row{ border-bottom:1px solid var(--border); }
.export-shot .timeline-day-row .timeline-lane-wrap{ background:var(--surface); }
.export-shot .timeline-day-row:nth-child(even) .timeline-lane-wrap{ background:var(--surface-2); }
.export-shot .tblock{
  border-left:none; border-radius:8px; color:#fff; font-weight:600;
  box-shadow:0 1px 4px rgba(0,0,0,.4);
}
.export-shot .tblock b{ font-weight:800; }
.export-shot .tblock .rm{ display:none; }
.export-shot .tblock.k-lecture{ background:linear-gradient(155deg,#3a8a63,#245840); }
.export-shot .tblock.k-cviceni{ background:linear-gradient(155deg,#3f7bb0,#254d70); }
.export-shot .tblock.k-volitelna{ background:linear-gradient(155deg,#d38a3c,#9c5f1a); }
.export-shot .tblock.conflict{ outline:2px solid #ffe14d; outline-offset:-2px; }
.export-shot .grid-legend{ margin:0; background:var(--surface); padding:10px 16px; border-radius:12px; box-shadow:0 2px 12px rgba(0,0,0,.3); color:var(--ink); }
.export-shot .grid-legend span{ color:var(--ink-soft); }
.export-shot .stats-box{ gap:12px; }
.export-shot .stat-card{ background:#211e1a; border-color:#3a352d; box-shadow:0 2px 12px rgba(0,0,0,.3); }
.export-shot .stat-card .sv{ color:#f2ede6; }
.export-shot, .export-shot *{ font-variant-numeric:normal !important; }      /* html2canvas u tabular-nums dělá mezery navíc */
.export-shot .stat-card .sl{ color:#c2b9ac; }
.export-shot .timeline-corner, .export-shot .timeline-daylabel{ position:static; }
.export-shot .grid-legend i.k-lecture{ background:#2f6b4f; border-color:#2f6b4f; }
.export-shot .grid-legend i.k-cviceni{ background:#2f5f8a; border-color:#2f5f8a; }
.export-shot .grid-legend i.k-volitelna{ background:#b5691d; border-color:#b5691d; }
.export-shot .help-reopen{ display:none !important; }
.export-shot .export-meta{ font-size:.78rem; color:var(--ink-soft); margin-top:4px; }
/* ---------- společná patička (stejná na všech stránkách) ---------- */
.site-footer{margin:44px auto 0; padding:26px 16px 34px; border-top:1px solid var(--border); text-align:center; max-width:560px;}
.sf-brand{font-size:1.02rem; font-weight:800; letter-spacing:.01em; color:var(--ink);}
.sf-brand b{color:#d80000;}      /* sytá červená jako logo ČZU, i v tmavém vzhledu */
.sf-tag{font-size:.82rem; color:var(--ink-soft); margin-top:2px;}
.sf-links{display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:420px; margin:16px auto 14px;}
.sf-links > :last-child:nth-child(odd){grid-column:1 / -1;}
.sf-pill{display:flex; justify-content:center; align-items:center; gap:6px; padding:9px 15px; border-radius:999px; border:1px solid var(--border); background:var(--surface-2); color:var(--ink); font-family:inherit; font-size:.8rem; font-weight:700; text-decoration:none; cursor:pointer; line-height:1;}
.sf-pill:hover{border-color:var(--red); color:var(--red-ink);}
.sf-note{font-size:.72rem; line-height:1.55; color:var(--ink-soft); opacity:.85; max-width:420px; margin:0 auto;}
@media (display-mode: standalone){ #installLink{display:none;} }

/* 0020: hlavička na mobilu – 📲 a ? vedle loga, nadpis pod nimi */
@media (max-width:600px){
  .top-inner{gap:10px 8px;}
  .top-inner img{height:40px;}
  .logo-link{order:0; margin-right:auto;}
  #installBtn{order:1;} #helpReopenBtn{order:2;}
  .top-text{order:3; flex:1 1 auto; min-width:0;}
  .gen-stamp{order:4;}
}
/* taby v jednom řádku, na úzkém displeji jdou posunout */
.tabs{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
.tabs::-webkit-scrollbar{display:none;}
.tab-btn{flex:0 0 auto; white-space:nowrap;}
@media (max-width:420px){ .tabs{gap:6px;} .tab-btn{padding:9px 12px; font-size:.85rem;} }
/* katalog: kompaktní karty, menší obrysové tlačítko */
.card{padding:9px 12px; margin-bottom:6px; gap:6px 10px; align-items:center;}
.card .time{min-width:84px;}
.card .info{min-width:150px;}
.notes{margin-top:4px;}
.addbtn{background:transparent; border:1px solid var(--red); color:var(--red-text); padding:6px 12px;}
.addbtn:hover{background:var(--red-pale);}
.card.has-clash .addbtn{color:var(--red-text);}
.card .addbtn.swap{border-color:var(--border); color:var(--ink); background:var(--surface-2);}      /* výměna termínu: neutrálně, nic se nepřidává navíc */
.card .addbtn.swap:hover{border-color:var(--red);}
.note-badge.note-i{border-radius:999px; min-width:26px; padding:2px 6px;}
.day-group summary{cursor:pointer;}
#oborNote{margin:14px 0 0; font-size:.78rem;}
.card .wk-tag.oba{display:none;}      /* „každý týden“ je výchozí, netřeba ho psát */
@media (max-width:600px){
  .card{display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:10px; row-gap:0;}
  .card .time{grid-column:1; grid-row:1; min-width:0; font-size:.8rem; color:var(--ink-soft);}
  .card .info{grid-column:1; grid-row:2; min-width:0;}
  .card > .addbtn, .card > .mand-tag{grid-column:2; grid-row:1 / span 2; margin-left:0;}
  .tabs{display:grid; grid-template-columns:1fr 1fr; gap:8px; overflow:visible;}
  .tab-btn{justify-content:center; padding:9px 10px;}
}
/* zpět/vpřed jen chvíli po změně */
.undo-redo-bar{bottom:calc(76px + env(safe-area-inset-bottom,0px)); opacity:0; pointer-events:none; transform:translateY(8px); transition:opacity .2s, transform .2s;}
/* na telefonu vlevo, ať nezakrývá tlačítka „+ Přidat“ vpravo; a místo na konci stránky, ať jde poslední karta odrolovat nad lištu */
@media (max-width:640px){ .undo-redo-bar{left:14px; right:auto;} main.wrap{padding-bottom:24px;} }      /* pod obsahem je ještě tip a patička, takže lišta ↶ ↷ na konci stránky nic důležitého nezakryje */
@media (max-width:640px){ #miniToast{left:14px !important; transform:none !important; max-width:calc(100vw - 160px) !important; border-radius:16px !important;} }      /* hláška „Přidáno… Vrátit“ vlevo a užší, ať nezakryje tlačítka „+ Přidat“ v pravém sloupci karet */
.undo-redo-bar.show{opacity:1; pointer-events:auto; transform:none;}
/* Můj rozvrh: seznam po dnech (na přání místo mřížky) */
.view-row{display:flex; justify-content:flex-end; margin:0 0 10px;}
.mlist{display:none;}
#panel-mine.list-view .mlist{display:block;}
#panel-mine.list-view .grid-scroll{display:none;}
.mlist-day{font-size:.82rem; font-weight:800; color:var(--ink-soft); margin:14px 0 6px;}
.mlist-day:first-child{margin-top:0;}
.mlist .mujden-list{gap:6px;}
.mlist .mujden-item.conflict{border-color:var(--red); box-shadow:0 0 0 1px var(--red);}
.mlist-rm{flex:0 0 auto; width:44px; height:44px; border-radius:999px; border:1px solid var(--border); background:transparent; color:var(--ink-soft); cursor:pointer; font-size:.9rem;}
.export-shot .mlist-day{ color:#c2b9ac; font-size:15px; }
.export-shot .mlist-day:first-child{ margin-top:0; }
.mlist-rm:hover{border-color:var(--red); color:var(--red-ink);}
/* ---------- Můj rozvrh: rozvrh hned nahoře (B1) ---------- */
.mine-bar{display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 10px;}
.mine-bar .week-toggle button{min-height:40px;}
@media (max-width:420px){ .mine-bar{flex-wrap:nowrap; gap:6px;} .mine-bar .week-toggle button{padding:7px 8px; font-size:.78rem; white-space:nowrap;} }
.mine-help{margin:12px 0 0; font-size:.82rem; color:var(--ink-soft);}
.mine-help summary{cursor:pointer; font-weight:700; padding:8px 0; min-height:44px; display:flex; align-items:center; list-style:none;}
.mine-help summary::-webkit-details-marker{display:none;}
.mine-help .grid-legend{margin:4px 0 0;}
.more-actions{grid-column:1 / -1;}
.more-actions > summary{list-style:none; text-align:center; display:block; box-sizing:border-box; width:100%;}
.more-actions > summary::-webkit-details-marker{display:none;}
.more-actions[open] > summary{border-color:var(--red);}
.more-list{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px;}
@media (min-width:720px){ .more-actions > summary{width:auto; display:inline-block;} .more-list{display:flex; flex-wrap:wrap;} }
/* statistiky jako jeden úsporný řádek dlaždic, ať rozvrh není až pod nimi */
.stats-box{gap:6px; margin:0 0 10px;}
.stat-card{flex:1 1 70px; padding:6px 8px; box-shadow:none;}
.stat-card .sv{font-size:1rem;}
.stat-card .sl{font-size:.66rem;}
/* po výběru skupiny už vysvětlivka u výběru nepřekáží */
.grouppicker.chosen .hint{display:none;}
/* Můj den: přednášky v Kongresovém sále jdou sledovat živě (/stream-knihovna/) */
.mujden-live{display:inline-flex; align-items:center; gap:6px; margin-top:7px; padding:5px 11px; border-radius:99px; font-size:.78rem; font-weight:800; text-decoration:none;
  color:var(--ink); background:var(--surface-2); border:1px solid var(--border);}
.mujden-live.on{color:#fff; background:var(--red); border-color:var(--red); box-shadow:0 4px 14px rgba(216,0,0,.35);}
.mujden-live:hover{filter:brightness(1.08);}

/* volitelné předměty, dokud nejsou termíny: šedé, ať je jasné, že zatím nejsou dostupné */
/* kontrola kompletnosti: chybějící předměty jako odkazy do katalogu */
.miss-link{background:none; border:0; padding:0; margin:0; font:inherit; color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; text-align:left;}
.lang-note{font-size:.82rem; color:var(--ink-soft); margin:0 0 10px;}
.miss-hint{font-size:.78rem; opacity:.8; margin-top:4px;}
/* jazykové kurzy a povinně volitelné předměty jako rozklikávací řádky (šipka se točí podle řádku, ne podle celé sekce) */
.lang-course{border:1px solid var(--border); border-radius:12px; margin:0 0 8px; overflow:hidden;}
.day-group .lang-course > summary{padding:10px 12px; font-weight:700; font-size:.92rem;}
.day-group .lang-course > summary span{margin-left:auto; font-weight:600; font-size:.76rem; color:var(--ink-soft); white-space:nowrap;}
.day-group .lang-course > summary::before{transform:none;}
.day-group .lang-course[open] > summary::before{transform:rotate(90deg);}
.lang-course > :not(summary){margin-left:10px; margin-right:10px;}
.lang-course > :nth-child(2){margin-top:10px;}
.day-group.vol-soon{filter:grayscale(1); opacity:.8; border:1.5px dashed var(--ink-soft);}      /* výrazný rámeček: šedé, ale pořád jde rozkliknout */
.day-group.vol-soon summary::before{color:var(--ink);}
.day-group.vol-soon[open]{opacity:.9;}
/* přechodné období mezi semestry (js/semester.js → pause): staré termíny se schovají, místo nich upozornění */
html.sem-pause .grouppicker, html.sem-pause .tab-btn[data-tab="catalog"], html.sem-pause .tab-btn[data-tab="group"], html.sem-pause #panel-catalog, html.sem-pause #panel-group,
html.sem-pause #completeBox, html.sem-pause #autofillBtn, html.sem-pause #uisListBtn, html.sem-pause #clearBtn, html.sem-pause .mlist-rm{display:none !important;}      /* rozvrh zůstává, jen se už nemění */
html.sem-pause-empty main.wrap > *:not(.sem-pause-box){display:none !important;}      /* kdo rozvrh poskládaný nemá, vidí jen přání a pozvánku */
.sem-pause-box .sp-wish{font-size:1.05rem; font-weight:800; color:var(--ink);}
.sem-pause-box .sp-note{font-size:.85rem; margin-top:12px;}
.sem-pause-box{margin:18px 0 8px; padding:26px 20px 22px; text-align:center; background:var(--surface); border:1px solid var(--border); border-radius:18px;}
.sem-pause-box .sp-ic{font-size:2rem; line-height:1; letter-spacing:.05em;}
.sem-pause-box h2{margin:12px 0 8px; font-size:1.3rem; font-weight:800;}
.sem-pause-box p{margin:0 auto 10px; max-width:440px; color:var(--ink-soft); font-size:.95rem; line-height:1.55;}
.sem-pause-box p b{color:var(--ink);}
.sem-pause-box .sp-dates{background:var(--surface-2); border-radius:12px; padding:10px 14px; display:inline-block; font-size:.9rem; margin-top:4px;}
.sem-pause-box .sp-acts{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:14px;}
.sem-pause-box .sp-acts .btn{text-decoration:none;}
.sem-new{position:relative; border-color:var(--zs-border,#3d8f5f);}
.sem-new .sn-x{position:absolute; top:10px; right:10px; width:36px; height:36px; border-radius:50%; border:0; background:transparent; color:var(--ink-soft); font-size:1rem; cursor:pointer;}
.anj-note{margin-top:8px; font-size:.8rem; font-weight:600; color:var(--ink-soft); line-height:1.45;}
