:root{
  --bg:#f3f4f6;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#6b7280;
  --border:#d9dee7;
  --shadow:0 1px 1px rgba(15,23,42,.04);

  --primary:#2563eb;
  --primary-h:#1d4ed8;

  --radius:12px;

  --container-w:1320px;
  --container-pad:24px;

  --topbar-h:60px;
  --control-h:36px;
  --card-gap:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font:16px/1.55 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
a{color:var(--primary); text-decoration:none}
a:hover{color:var(--primary-h)}
:focus-visible{outline:3px solid #93c5fd; outline-offset:2px}

.container{
  max-width:var(--container-w);
  margin:0 auto;
  padding-left:var(--container-pad);
  padding-right:var(--container-pad);
}
.page.container{ padding-top:18px; padding-bottom:28px; }

/* ===== navbar ===== */
.navbar{ background:var(--bg); }
.navbar-inner{
  min-height:var(--topbar-h);
  display:grid;
  grid-template-columns: auto 1fr auto auto;
  align-items:center; column-gap:18px;
  padding-top:10px; padding-bottom:8px;
}

.hamburger{
  display:none;
  width:40px; height:40px; align-items:center; justify-content:center;
  border:1px solid var(--border); border-radius:10px; background:#fff;
}

.brand-wrap{ display:flex; align-items:center; gap:12px; }
.brand__logo{ height:42px; width:auto; object-fit:contain; }
.brand-stack{ display:flex; flex-direction:column; gap:2px; }
.brand{ font-size:26px; font-weight:600; color:#0b1324; letter-spacing:.05px; }
.brand-sub{ font-size:13px; color:var(--muted); margin-top:-2px; }

.spacer{ }

.top-actions{
  display:flex; align-items:center; gap:12px; white-space:nowrap;
  transform: translateY(2px);
}
.topbar__label, .role{ color:#334155; }

.top-actions .form-select,
.top-actions .btn-primary{
  height:var(--control-h);
  line-height:var(--control-h);
  border-radius:10px; font-size:14px; padding:0 12px;
}
.top-actions .btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1; padding:0 14px;
}
.btn{ display:inline-flex; align-items:center; gap:8px; height:var(--control-h);
      padding:0 14px; border:1px solid var(--border); border-radius:10px; background:#fff; color:#0f172a; }
.btn:hover{ background:#f8fafc; }
.btn-primary{ background:var(--primary); border-color:var(--primary); color:#fff; }
.btn-primary:hover{ background:var(--primary-h); border-color:var(--primary-h); }

/* ===== subnav wrap (градиенты-намёки) ===== */
.subnav-wrap{ position:relative; margin-top:8px; }
.subnav-wrap.is-scrollable::before,
.subnav-wrap.is-scrollable::after{
  content:""; position:absolute; top:0; bottom:0; width:28px; pointer-events:none; z-index:2;
}
.subnav-wrap.is-scrollable::before{
  left:0; background:linear-gradient(to right, rgba(243,244,246,1), rgba(243,244,246,0)); opacity:1; transition:opacity .2s;
}
.subnav-wrap.is-scrollable::after{
  right:0; background:linear-gradient(to left, rgba(243,244,246,1), rgba(243,244,246,0)); opacity:1; transition:opacity .2s;
}
.subnav-wrap.at-start::before{ opacity:0; }
.subnav-wrap.at-end::after{ opacity:0; }

/* ===== subnav ===== */
.subnav{
  width:100%;
  background:#fff; border:1px solid var(--border); border-radius:12px;
  display:flex; gap:6px; padding:6px;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.subnav::-webkit-scrollbar{ display:none; }

.tab{
  display:inline-flex; align-items:center; justify-content:center;
  height:38px; padding:0 16px;
  border:none; border-radius:8px; background:transparent;
  color:#1f2937; font-weight:600; font-size:16px;
}
.tab:hover{ background:#f3f6ff; }
.tab.active{ background:#e9f0ff; color:#1743b0; }

/* ===== cards / titles ===== */
.card{
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow);
  padding:16px; margin:0 0 var(--card-gap);
}
.title, .card h3{
  margin:0 0 8px; font-size:28px !important; font-weight:600 !important;
  line-height:1.2; color:#0b1324;
}

/* ===== forms ===== */
.form-label{ display:block; margin:0 0 6px; color:#111827; font-weight:600; }
.form-input,.form-select,.form-textarea{
  width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:10px;
  background:#fff; color:#0f172a; font-size:16px;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{ outline:3px solid #93c5fd; outline-offset:2px; }

/* ===== drawer (мобилка) ===== */
.drawer{
  position:fixed; right:0; top:0; bottom:0; width:320px; z-index:100;
  background:#fff; border-left:1px solid var(--border);
  box-shadow:-12px 0 28px rgba(0,0,0,.08);
  transform:translateX(100%); transition:transform .25s ease;
  padding:16px;
}
.drawer.open{ transform:translateX(0); }
.drawer-title{ margin:0 0 12px; font-weight:700; font-size:16px; }
.drawer-section{ padding-bottom:16px; border-bottom:1px solid var(--border); margin-bottom:16px; }
.drawer-menu{ display:flex; flex-direction:column; gap:6px; }
.drawer-item{
  display:flex; align-items:center; height:40px; padding:0 10px; border-radius:8px;
  color:#0f172a;
}
.drawer-item:hover{ background:#f8fafc; }

/* ===== auth (логин) ===== */
.login-page .logo{
  height:120px; width:auto; object-fit:contain; margin-bottom:12px;
}
.login-page .auth-box{
  width:100%; max-width:520px;
  background:#fff; border:1px solid var(--border);
  border-radius:12px; box-shadow:var(--shadow); padding:18px;
  margin-top:14px;
}
.login-page .title{
  margin:0 0 12px; font-size:28px; font-weight:700;
}
.login-page .row{ margin-bottom:10px; }
.login-page .remember{ display:flex; align-items:center; gap:8px; color:#374151; }

/* ===== responsive ===== */
@media (max-width: 640px){
  :root{ --container-pad:16px; --topbar-h:56px; }

  .navbar-inner{
    grid-template-columns: auto 1fr auto;
    padding-top:10px; padding-bottom:8px;
  }
  .hamburger{ display:inline-flex; justify-self:end; }
  .brand__logo{ height:36px; }
  .brand{ font-size:20px; }
  .brand-sub{ font-size:12px; }

  .top-actions{ display:none; }

  .subnav{ padding-left:var(--container-pad); padding-right:var(--container-pad); }
  .tab{ height:36px; font-size:15px; padding:0 14px; }

  .login-page .logo{ height:96px; }
}

/* ==== AUTH (standalone) ==== */
.auth-body{margin:0;background:#f3f4f6;font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial}
.auth-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:28px 12px}
.auth-card{
  width:100%;
  max-width:520px;            /* было 560 — сделал компактнее */
  background:#fff;border:1px solid #d9dee7;border-radius:16px;
  box-shadow:0 10px 30px rgba(2,6,23,.06);
  padding:22px 20px 24px;
  text-align:center;
}
.auth-logo{height:92px;width:auto;object-fit:contain;margin:2px auto 6px;display:block}
.auth-title{
  margin:6px 0 2px;
  font-size:26px;             /* было 28 */
  font-weight:700;
  color:#0b1324;
  text-align:center;          /* фиксируем центрирование */
}
.auth-sub{margin:0 0 14px;color:#64748b;font-size:15px}
.auth-form{text-align:left;display:flex;flex-direction:column;gap:10px}
.form-label{font-weight:600;color:#111827}
.form-input{width:100%;padding:11px 12px;border:1px solid #d9dee7;border-radius:12px;background:#fff;outline:none}
.form-input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.password-wrap{position:relative}
.password-wrap .eye{
  position:absolute;top:50%;right:8px;transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:8px;border:1px solid transparent;
  background:#f8fafc;cursor:pointer
}
.password-wrap .eye:hover{background:#eef2ff}
.remember{display:flex;align-items:center;gap:8px;color:#374151;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:10px 14px;cursor:pointer}
.btn-primary{background:#2563eb;color:#fff}
.btn-primary:hover{filter:saturate(1.05) brightness(0.98)}
.btn-block{width:100%}
.auth-alert{border:1px solid #fecaca;background:#fef2f2;color:#991b1b;border-radius:10px;padding:10px 12px;margin:10px 0 0}
@media (max-width:640px){
  .auth-card{padding:18px 14px 20px;border-radius:14px;max-width:94vw}
  .auth-title{font-size:24px}
  .auth-logo{height:84px}
}
