/* ============================================================
   Rozvržení: přihlášení, boční rail, hlavička, obsah
   ============================================================ */

/* ---------- přihlášení ---------- */
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{
  position:relative;width:min(430px,100%);padding:34px 32px 28px;
  border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);
}
.login-locale{position:absolute;right:14px;top:14px;display:flex;border:1px solid var(--line-2)}
.login-locale button{
  padding:4px 9px;font-family:var(--f-mono);font-size:10.5px;font-weight:600;color:var(--text-3);
}
.login-locale button+button{border-left:1px solid var(--line-2)}
.login-locale button.on{background:var(--gold-wash);color:var(--gold)}
.login-logo{display:block;width:104px;height:104px;object-fit:contain;margin:0 auto 16px}
.login-card .eyebrow{text-align:center}
.login-card h1{text-align:center;font-size:22px;margin:9px 0 6px}
.login-card>.muted{text-align:center;font-size:12.5px;margin-bottom:6px}
.discord-btn{width:100%;margin-top:20px;background:#171921;border-color:#3A4051;color:#E6E8EF}
.discord-btn:hover{border-color:#5865F2;color:#fff}
.divider{display:flex;align-items:center;gap:11px;margin:20px 0 4px;color:var(--text-3)}
.divider::before,.divider::after{content:"";height:1px;flex:1;background:var(--line)}
.divider span{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase}
.login-error{color:var(--loss-2);font-size:12.5px;text-align:center;margin-top:14px;min-height:18px}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100vh}

aside{
  border-right:1px solid var(--line);background:var(--bg-2);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
}
.brand{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--line)}
.brand-mark{width:36px;height:36px;flex:none;object-fit:contain}
.brand-name{font-family:var(--f-display);font-size:13px;letter-spacing:.1em;font-weight:700}
.brand-sub{font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;color:var(--text-3);margin-top:3px}

nav{flex:1;overflow-y:auto;padding:12px 8px 18px}
.nav-group{margin-top:15px}
.nav-group:first-child{margin-top:0}
.nav-label{
  display:flex;align-items:center;gap:7px;padding:0 10px;margin-bottom:6px;
  font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;color:var(--text-3);
}
.nav-label::after{content:"";height:1px;flex:1;background:var(--line)}
.nav-sublabel{
  padding:8px 10px 3px;font-family:var(--f-mono);font-size:9px;
  letter-spacing:.14em;color:var(--text-3);
}
.nav-item{
  width:100%;display:flex;align-items:center;gap:10px;text-align:left;
  border-left:2px solid transparent;color:var(--text-2);
  padding:8px 10px;font-size:13px;font-weight:500;
  transition:background .12s,color .12s,border-color .12s;
}
.nav-item .ico-svg{flex:none;opacity:.78}
.nav-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-item:hover{background:rgba(255,255,255,.03);color:var(--text)}
.nav-item.on{background:var(--gold-wash);color:var(--gold);border-left-color:var(--gold)}
.nav-item.on .ico-svg{opacity:1}
.nav-item.child{padding-left:24px;font-size:12.5px}
.nav-item.child .ico-svg{width:14px;height:14px}

.g-core .nav-item.on{border-left-color:var(--g-core)}
.g-org  .nav-item.on{border-left-color:var(--g-org)}
.g-ops  .nav-item.on{border-left-color:var(--g-ops)}
.g-biz  .nav-item.on{border-left-color:var(--g-biz)}
.g-sys  .nav-item.on{border-left-color:var(--g-sys)}
.g-org .nav-label{color:#8E7038}
.g-ops .nav-label{color:var(--g-ops)}
.g-biz .nav-label{color:var(--g-biz)}
.g-sys .nav-label{color:var(--g-sys)}

.whoami{border-top:1px solid var(--line);padding:11px 12px;display:grid;gap:9px}
.whoami-av{
  width:30px;height:30px;flex:none;display:grid;place-items:center;
  border:1px solid var(--gold-dim);color:var(--gold);
  font-family:var(--f-display);font-size:13px;background:var(--panel);
}
.whoami{grid-template-columns:auto 1fr;align-items:center}
.whoami-copy{min-width:0}
.whoami-copy b{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whoami-copy small{
  display:block;font-family:var(--f-mono);font-size:9px;
  letter-spacing:.06em;color:var(--text-3);margin-top:2px;
}
.whoami-tools{grid-column:1/-1;display:flex;gap:6px;align-items:center}
.locale-switch{display:flex;border:1px solid var(--line-2);margin-right:auto}
.locale-switch button{
  padding:4px 8px;font-family:var(--f-mono);font-size:10px;font-weight:600;color:var(--text-3);
}
.locale-switch button+button{border-left:1px solid var(--line-2)}
.locale-switch button.on{background:var(--gold-wash);color:var(--gold)}

/* ---------- hlavní plocha ---------- */
main{min-width:0;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 26px;border-bottom:1px solid var(--line);
  background:var(--bg);position:sticky;top:0;z-index:20;
}
.topbar h1{font-size:20px;margin-top:4px}
.topbar-eyebrow{
  font-family:var(--f-mono);font-size:9.5px;letter-spacing:.18em;
  color:var(--gold-dim);min-height:12px;
}
.topbar-right{display:flex;align-items:center;gap:10px}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.badge{
  font-family:var(--f-mono);font-size:9px;letter-spacing:.12em;
  border:1px solid var(--gold-dim);color:var(--gold);padding:4px 7px;
}
.view{padding:20px 26px 60px;flex:1;min-width:0}

/* ---------- responzivita ---------- */
@media (max-width:1000px){
  :root{--rail:66px}
  .brand-copy,.nav-item span,.nav-label,.nav-sublabel,.whoami-copy{display:none}
  .nav-item{justify-content:center;padding:10px 0}
  .nav-item.child{padding-left:0}
  .brand{justify-content:center;padding:14px 0}
  .whoami{grid-template-columns:1fr;justify-items:center}
  .whoami-tools{flex-direction:column}
  .locale-switch{margin-right:0}
  .topbar,.view{padding-left:14px;padding-right:14px}
}
@media (max-width:700px){
  .topbar{flex-direction:column;align-items:flex-start;gap:10px}
  .topbar-right{width:100%;justify-content:space-between}
}
