/* ===========================================================
   Bytové družstvo 91–94/IV — styl (směr 03: Členský portál)
   =========================================================== */
:root{
  --paper:oklch(0.985 0.008 75);
  --paper-2:oklch(0.965 0.011 72);
  --surface:#fff;
  --ink:oklch(0.27 0.012 55);
  --ink-soft:oklch(0.45 0.015 55);
  --ink-faint:oklch(0.6 0.012 55);
  --line:oklch(0.9 0.012 70);
  --line-soft:oklch(0.93 0.01 72);
  --terra:oklch(0.57 0.13 38);
  --terra-deep:oklch(0.46 0.12 36);
  --ochre:oklch(0.74 0.10 75);
  --ochre-soft:oklch(0.93 0.045 80);
  --terra-soft:oklch(0.94 0.035 45);
  --sidebar:oklch(0.24 0.018 50);
  --sidebar-2:oklch(0.3 0.03 50);
  --sidebar-line:oklch(0.34 0.02 50);
  --sidebar-ink:oklch(0.85 0.01 70);
  --sidebar-faint:oklch(0.62 0.02 60);
  --serif:"Newsreader",Georgia,serif;
  --sans:"Public Sans",system-ui,-apple-system,sans-serif;
  --rad:14px;
  --rad-sm:9px;
}
:root[data-theme="dark"]{
  --paper:oklch(0.19 0.014 55);
  --paper-2:oklch(0.24 0.016 52);
  --surface:oklch(0.235 0.016 54);
  --ink:oklch(0.92 0.01 75);
  --ink-soft:oklch(0.78 0.012 70);
  --ink-faint:oklch(0.62 0.014 65);
  --line:oklch(0.34 0.016 55);
  --line-soft:oklch(0.30 0.014 55);
  --terra:oklch(0.68 0.13 42);
  --terra-deep:oklch(0.60 0.12 40);
  --ochre:oklch(0.78 0.10 78);
  --ochre-soft:oklch(0.34 0.05 75);
  --terra-soft:oklch(0.33 0.055 45);
  --sidebar:oklch(0.15 0.012 55);
  --sidebar-2:oklch(0.24 0.02 52);
  --sidebar-line:oklch(0.30 0.016 55);
  --sidebar-ink:oklch(0.88 0.01 70);
  --sidebar-faint:oklch(0.60 0.018 62);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background .25s,color .25s;
}
.card,.kpi,.fact,.contact-card,.tbl-wrap,.doc,.t-panel,.t-help,.topbar,.side{transition:background .25s,border-color .25s,color .25s;}
a{color:inherit;text-decoration:none;}

/* ---------- layout shell ---------- */
.shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh;}

/* ---------- sidebar ---------- */
.side{
  background:var(--sidebar);color:var(--sidebar-ink);
  padding:26px 20px;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;overflow-y:auto;
}
.side::-webkit-scrollbar{width:8px;}
.side::-webkit-scrollbar-thumb{background:oklch(0.38 0.02 50);border-radius:4px;}
.side::-webkit-scrollbar-track{background:transparent;}
.side>*{flex-shrink:0;}
.side .brand{display:flex;align-items:center;gap:12px;margin-bottom:30px;}
.side .brand .mark{
  width:42px;height:42px;border-radius:10px;background:var(--terra);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);
  font-size:17px;font-weight:600;flex-shrink:0;letter-spacing:-.02em;
}
.side .brand .nm{font-family:var(--serif);font-size:16px;color:#fff;line-height:1.18;font-weight:600;}
.side .brand .nm small{display:block;font-family:var(--sans);font-size:11.5px;font-weight:400;color:var(--sidebar-faint);letter-spacing:.02em;margin-top:1px;}
.side .grp{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sidebar-faint);margin:20px 10px 8px;}
.side .grp-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;-webkit-user-select:none;}
.side .grp-toggle:hover{color:var(--sidebar-ink);}
.side .grp-caret{width:13px;height:13px;margin-left:auto;transition:transform .2s;opacity:.8;}
.side .grp-tree{overflow:hidden;transition:max-height .25s ease,opacity .2s;max-height:160px;opacity:1;}
.side .grp-tree.collapsed{max-height:0;opacity:0;margin:0;}
.side .grp-toggle.collapsed .grp-caret{transform:rotate(-90deg);}
.side nav{display:flex;flex-direction:column;gap:2px;}
.side .mi{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--rad-sm);
  font-size:14px;color:var(--sidebar-ink);cursor:pointer;transition:background .14s,color .14s;
}
.side .mi:hover{background:oklch(0.28 0.025 50);color:#fff;}
.side .mi.on{background:var(--sidebar-2);color:#fff;}
.side .mi .ic{width:18px;height:18px;flex-shrink:0;opacity:.85;}
.side .mi.on .ic{opacity:1;}
.side .mi.ext{color:var(--sidebar-faint);}
.side .mi.ext .ic{opacity:.6;}
.side .mi.ext:hover{color:var(--ochre);}
.side .mi.ext:hover .ic{opacity:1;}
.side .mi.ext .ic-ext{width:13px;height:13px;margin-left:auto;flex-shrink:0;opacity:.5;}
.side .foot{margin-top:24px;padding-top:20px;border-top:1px solid var(--sidebar-line);font-size:12px;color:var(--sidebar-faint);line-height:1.5;}
.side .foot a{color:var(--ochre);}
.side .foot a:hover{text-decoration:underline;}
.theme-toggle{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:1px solid var(--sidebar-line);color:var(--sidebar-ink);border-radius:var(--rad-sm);padding:9px 12px;font-family:var(--sans);font-size:13px;cursor:pointer;margin-bottom:16px;transition:background .14s,border-color .14s;}
.theme-toggle:hover{background:oklch(0.28 0.025 50);border-color:var(--sidebar-faint);}
.theme-toggle svg{width:17px;height:17px;flex-shrink:0;}
.theme-toggle .ic-moon{display:none;}
:root[data-theme="dark"] .theme-toggle .ic-sun{display:none;}
:root[data-theme="dark"] .theme-toggle .ic-moon{display:block;}
.visits{margin-top:14px;padding-top:12px;border-top:1px solid var(--sidebar-line);display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--sidebar-faint);}
.visits b{color:var(--sidebar-ink);font-weight:600;}
.visits-dot{width:7px;height:7px;border-radius:50%;background:oklch(0.6 0.14 145);flex-shrink:0;box-shadow:0 0 0 3px oklch(0.6 0.14 145 /.2);}

/* ---------- main ---------- */
.main{padding:34px 44px 64px;max-width:1180px;width:100%;}
.page{display:none;}
.page.on{display:block;}

.mh{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px;flex-wrap:wrap;}
.mh .ttl .kick{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);font-weight:600;}
.mh .ttl h1{font-family:var(--serif);font-weight:500;font-size:32px;letter-spacing:-.015em;margin-top:5px;line-height:1.1;}
.mh .ttl p{font-size:14px;color:var(--ink-faint);margin-top:6px;max-width:560px;}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:24px 26px;}
.card .ch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.card .ch h2{font-family:var(--serif);font-weight:500;font-size:20px;}
.card .ch .lnk{font-size:13px;color:var(--terra);font-weight:600;cursor:pointer;}
.card .ch .lnk:hover{color:var(--terra-deep);}

.grid2{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;}
.grid2.even{grid-template-columns:1fr 1fr;}
@media(max-width:980px){.grid2,.grid2.even{grid-template-columns:1fr;}}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px;}
@media(max-width:760px){.kpis{grid-template-columns:1fr;}}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:22px 24px;position:relative;overflow:hidden;}
.kpi .lbl{font-size:12px;color:var(--ink-faint);letter-spacing:.03em;}
.kpi .val{font-family:var(--serif);font-size:34px;font-weight:500;margin-top:8px;letter-spacing:-.015em;line-height:1;}
.kpi .val.tr{color:var(--terra);}
.kpi .sub{font-size:12.5px;color:var(--ink-soft);margin-top:7px;}
.kpi .accent{position:absolute;right:-18px;top:-18px;width:80px;height:80px;border-radius:50%;background:var(--terra-soft);opacity:.6;}

/* ---------- aktuality (news) ---------- */
.ann{display:flex;gap:15px;padding:17px 0;border-bottom:1px solid var(--line-soft);}
.ann:first-of-type{padding-top:0;}
.ann:last-child{border-bottom:none;padding-bottom:0;}
.ann .tag{
  flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--terra-deep);background:var(--terra-soft);padding:5px 9px;border-radius:6px;height:fit-content;white-space:nowrap;
}
.ann .tag.info{color:oklch(0.46 0.05 75);background:var(--ochre-soft);}
.ann .tag.warn{color:#fff;background:var(--terra);}
.ann .bd{flex:1;min-width:0;}
.ann h4{font-family:var(--serif);font-size:17px;font-weight:600;margin-bottom:3px;line-height:1.25;}
.ann h4 .gray{color:var(--ink-faint);font-weight:400;}
.ann p{font-size:13.5px;color:var(--ink-soft);}
.ann p a{color:var(--terra);font-weight:600;}
.ann p a:hover{text-decoration:underline;}
.ann .meta{font-size:11.5px;color:var(--ink-faint);margin-top:6px;}

/* ---------- events / calendar ---------- */
.evt{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-soft);}
.evt:first-of-type{padding-top:0;}
.evt:last-child{border-bottom:none;padding-bottom:0;}
.evt .dd{flex-shrink:0;width:50px;text-align:center;}
.evt .dd b{font-family:var(--serif);font-size:22px;color:var(--terra);display:block;line-height:1;}
.evt .dd small{font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;}
.evt .ev-bd h4{font-size:14.5px;font-weight:600;}
.evt .ev-bd p{font-size:12.5px;color:var(--ink-faint);}
.evt.past{opacity:.5;}

/* ---------- documents ---------- */
.doc-groups{display:flex;flex-direction:column;gap:26px;}
.doc-group h3{font-family:var(--serif);font-weight:500;font-size:18px;margin-bottom:4px;}
.doc-group .gd{font-size:13px;color:var(--ink-faint);margin-bottom:14px;}
.doc-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
@media(max-width:760px){.doc-list{grid-template-columns:1fr;}}
.doc{
  display:flex;align-items:center;gap:14px;padding:13px 15px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--rad-sm);transition:border-color .14s,box-shadow .14s,transform .14s;
}
.doc:hover{border-color:var(--terra);box-shadow:0 6px 18px -12px oklch(0.5 0.08 45 /.5);transform:translateY(-1px);}
.doc .ic{
  width:38px;height:38px;border-radius:8px;background:var(--terra-soft);color:var(--terra-deep);
  display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;letter-spacing:.02em;flex-shrink:0;
}
.doc .ic.x{background:var(--ochre-soft);color:oklch(0.45 0.06 75);}
.doc .ic.z{background:oklch(0.92 0.02 150);color:oklch(0.42 0.07 150);}
.doc .dt{flex:1;min-width:0;}
.doc .dt h4{font-size:13.5px;font-weight:600;line-height:1.3;}
.doc .dt small{font-size:11.5px;color:var(--ink-faint);}
.doc .arr{color:var(--ink-faint);font-size:15px;flex-shrink:0;}
.doc:hover .arr{color:var(--terra);}

/* ---------- tables (members, banka) ---------- */
.tbl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;}
table.dt{width:100%;border-collapse:collapse;font-size:13.5px;}
table.dt th{
  text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);
  font-weight:600;padding:14px 18px;background:var(--paper-2);border-bottom:1px solid var(--line);
}
table.dt th.c,table.dt td.c{text-align:center;}
table.dt td{padding:12px 18px;border-bottom:1px solid var(--line-soft);}
table.dt tr:last-child td{border-bottom:none;}
table.dt tbody tr:hover{background:var(--paper-2);}
table.dt td.nm{font-weight:600;}
table.dt .vchod td{background:var(--terra-soft);font-weight:600;color:var(--terra-deep);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:8px 18px;}
table.dt .vs{font-family:var(--serif);color:var(--terra);font-weight:600;}

/* ---------- info blocks (náš dům / kontakty) ---------- */
.prose{max-width:720px;}
.prose p{font-size:15px;color:var(--ink-soft);margin-bottom:14px;}
.prose strong{color:var(--ink);font-weight:600;}
.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:8px 0 28px;}
@media(max-width:760px){.fact-grid{grid-template-columns:repeat(2,1fr);}}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:20px;}
.fact b{font-family:var(--serif);font-size:30px;font-weight:500;color:var(--terra);display:block;line-height:1;letter-spacing:-.01em;}
.fact span{font-size:12.5px;color:var(--ink-faint);margin-top:8px;display:block;}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:24px 26px;}
.contact-card .role{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);font-weight:600;}
.contact-card h3{font-family:var(--serif);font-weight:500;font-size:21px;margin:6px 0 12px;}
.contact-card .row{display:flex;gap:10px;font-size:14px;color:var(--ink-soft);padding:5px 0;}
.contact-card .row .k{color:var(--ink-faint);width:78px;flex-shrink:0;}
.contact-card .row a{color:var(--terra);font-weight:500;}

.bank-note{display:flex;gap:14px;align-items:flex-start;background:var(--ochre-soft);border-radius:var(--rad);padding:16px 18px;margin-top:18px;font-size:13.5px;color:oklch(0.42 0.05 70);}
.bank-note .ic{flex-shrink:0;font-size:18px;}

.callout{
  display:flex;gap:16px;align-items:center;background:linear-gradient(100deg,var(--terra) 0%,var(--terra-deep) 100%);
  color:#fff;border-radius:var(--rad);padding:22px 26px;margin-bottom:22px;
}
.callout .big{font-family:var(--serif);font-size:15px;line-height:1.35;}
.callout .big b{font-weight:600;}
.callout .cta{margin-left:auto;background:#fff;color:var(--terra-deep);font-weight:600;font-size:13.5px;padding:10px 18px;border-radius:var(--rad-sm);white-space:nowrap;flex-shrink:0;cursor:pointer;}
.callout .cta:hover{background:var(--ochre-soft);}
@media(max-width:680px){.callout{flex-direction:column;align-items:flex-start;}.callout .cta{margin-left:0;}}

/* ---------- Tetris (Pro chvíle odpočinku) ---------- */
.game-picker{display:flex;gap:8px;margin-bottom:22px;}
.game-tab{font-family:var(--sans);font-size:14px;font-weight:600;padding:9px 20px;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:99px;cursor:pointer;transition:background .14s,color .14s,border-color .14s;}
.game-tab:hover{border-color:var(--terra);color:var(--terra-deep);}
.game-tab.on{background:var(--terra);border-color:var(--terra);color:#fff;}
.game-panel{display:none;}
.game-panel.on{display:block;}
.tetris-wrap{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;}
.tetris-stage{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 18px 40px -28px oklch(0.4 0.02 60 /.45);background:var(--sidebar);}
#t-board{display:block;background:oklch(0.21 0.016 50);}
.tetris-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:oklch(0.21 0.016 50 /.86);backdrop-filter:blur(2px);transition:opacity .2s;}
.tetris-overlay.hide{opacity:0;pointer-events:none;}
.ov-card{text-align:center;padding:28px 30px;max-width:240px;}
.ov-card h3{font-family:var(--serif);font-weight:500;font-size:26px;color:#fff;margin-bottom:8px;}
.ov-card p{font-size:13.5px;color:oklch(0.8 0.01 70);margin-bottom:18px;line-height:1.5;}
.t-btn{font-family:var(--sans);font-weight:600;font-size:14px;padding:11px 22px;border:none;border-radius:9px;background:var(--terra);color:#fff;cursor:pointer;transition:background .14s;}
.t-btn:hover{background:var(--terra-deep);}
.t-btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink);width:100%;}
.t-btn-ghost:hover{background:var(--paper-2);border-color:var(--terra);color:var(--terra-deep);}
.tetris-side{display:flex;flex-direction:column;gap:12px;width:180px;}
.t-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
.t-lbl{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;}
.t-val{font-family:var(--serif);font-size:28px;font-weight:500;color:var(--ink);line-height:1.1;margin-top:4px;letter-spacing:-.01em;}
.t-next{display:flex;flex-direction:column;align-items:flex-start;}
#t-next{margin-top:8px;align-self:center;background:var(--paper-2);border-radius:8px;}
.t-help{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;}
.t-help-row{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:7px;}
kbd{font-family:var(--sans);font-size:11px;background:var(--surface);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:2px 6px;color:var(--ink);min-width:18px;text-align:center;}
.tetris-touch{display:none;gap:12px;margin-top:20px;max-width:300px;}
.tt-btn{flex:1;font-size:22px;padding:16px 0;border:1px solid var(--line);background:var(--surface);border-radius:12px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;}
.tt-btn:active{background:var(--terra-soft);}
@media(max-width:560px){
  .tetris-wrap{flex-direction:column;align-items:center;}
  .tetris-side{width:300px;max-width:100%;flex-direction:row;flex-wrap:wrap;}
  .tetris-side .t-panel{flex:1;min-width:80px;}
  .t-help,#t-restart{width:100%;}
  .tetris-touch{display:flex;}
}

/* ---------- 2048 ---------- */
.g2048-wrap{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;}
.g2048-stage{position:relative;width:400px;height:400px;background:var(--sidebar);border-radius:14px;padding:12px;border:1px solid var(--line);box-shadow:0 18px 40px -28px oklch(0.4 0.02 60 /.45);}
.g2048-grid{position:absolute;inset:12px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:12px;}
.g2048-grid .cellbg{background:oklch(0.3 0.02 55 /.55);border-radius:9px;}
.g2048-tiles{position:absolute;inset:12px;}
.g2-tile{position:absolute;width:85px;height:85px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:34px;transition:transform .32s cubic-bezier(.25,.8,.3,1);will-change:transform;}
.g2-tile .g2-inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.g2-tile.pop .g2-inner{animation:g2pop .42s ease;}
.g2-tile.new .g2-inner{animation:g2new .38s ease;}
@keyframes g2pop{0%{transform:scale(1)}50%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes g2new{0%{transform:scale(0)}100%{transform:scale(1)}}
.g2048-side{display:flex;flex-direction:column;gap:12px;width:180px;}
@media(max-width:560px){
  .g2048-wrap{flex-direction:column;align-items:center;}
  .g2048-stage{width:calc(100vw - 56px);max-width:400px;height:auto;aspect-ratio:1;}
}

/* ---------- mobile sidebar ---------- */
.topbar{display:none;}
@media(max-width:860px){
  .shell{grid-template-columns:1fr;}
  .side{position:fixed;left:0;top:0;z-index:40;width:264px;transform:translateX(-100%);transition:transform .25s;box-shadow:0 0 40px oklch(0.2 0.02 50 /.4);}
  .side.open{transform:none;}
  .topbar{
    display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;
    background:var(--sidebar);color:#fff;position:sticky;top:0;z-index:30;
  }
  .topbar .brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:15px;}
  .topbar .brand .mark{width:32px;height:32px;border-radius:8px;background:var(--terra);display:flex;align-items:center;justify-content:center;font-weight:600;}
  .topbar .burger{font-size:22px;background:none;border:none;color:#fff;cursor:pointer;line-height:1;}
  .main{padding:24px 20px 56px;}
  .scrim{display:none;position:fixed;inset:0;background:oklch(0.2 0.02 50 /.5);z-index:35;}
  .scrim.show{display:block;}
}
