/* odoocore — bilesenler */

/* ---------- kabuk ---------- */
.shell{display:flex;min-height:100vh}
.sidebar{
  width:var(--sidebar);flex:0 0 var(--sidebar);
  background:var(--dark-bg);color:#cbb9d8;
  display:flex;flex-direction:column;padding:var(--space-md) 0;
}
.sidebar__brand{
  padding:0 var(--space-md) var(--space-md);
  font-family:var(--font-heading);font-weight:700;font-size:1.12rem;color:#fff;
  display:flex;align-items:center;gap:.55rem;
}
.sidebar__dot{width:11px;height:11px;border-radius:var(--radius-full);
  background:var(--brand-gradient);box-shadow:0 0 12px rgba(192,48,96,.7)}
.sidebar__section{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;
  color:#7d6a8c;padding:var(--space-md) var(--space-md) .4rem}
.sidebar a{
  display:block;padding:.55rem var(--space-md);color:#cbb9d8;
  border-left:3px solid transparent;font-size:.9rem;transition:all var(--transition);
}
.sidebar a:hover{background:var(--dark-surface);color:#fff}
.sidebar a.is-active{
  background:var(--dark-surface);color:#fff;border-left-color:var(--brand-primary);
  font-weight:500;
}
.sidebar__foot{margin-top:auto;padding:var(--space-md);font-size:var(--fs-small);
  color:#7d6a8c;border-top:1px solid rgba(255,255,255,.07)}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  background:var(--white);border-bottom:1px solid var(--ink-300);
  padding:.85rem var(--space-lg);display:flex;align-items:center;
  justify-content:space-between;gap:var(--space-sm);
}
.content{padding:var(--space-lg);max-width:var(--container);width:100%}

/* ---------- kartlar ---------- */
.grid{display:grid;gap:var(--space-sm)}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card{
  background:var(--white);border:1px solid var(--ink-300);
  border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-sm);
}
.card--accent{border-top:3px solid transparent;
  border-image:var(--brand-gradient) 1;border-image-slice:1}
.card__head{display:flex;align-items:center;justify-content:space-between;
  margin-bottom:var(--space-sm)}
.stat__num{font-family:var(--font-heading);font-size:1.9rem;font-weight:700;
  color:var(--ink-900);line-height:1.1;display:block}
.stat__label{font-size:var(--fs-small);color:var(--ink-500);
  text-transform:uppercase;letter-spacing:.06em}
.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--brand-primary);font-weight:600;display:block;margin-bottom:.3rem}

/* ---------- tablo ---------- */
.table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}
.table th{
  text-align:left;padding:.55rem .7rem;background:var(--surface-100);
  color:var(--ink-500);font-weight:600;text-transform:uppercase;
  letter-spacing:.05em;font-size:.7rem;border-bottom:1px solid var(--ink-300);
}
.table td{padding:.55rem .7rem;border-bottom:1px solid var(--surface-100)}
.table tbody tr:hover{background:var(--surface-50)}
.table--fixed{table-layout:fixed}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- rozet / buton ---------- */
.badge{display:inline-block;padding:.14rem .5rem;border-radius:var(--radius-full);
  font-size:.7rem;font-weight:600;letter-spacing:.02em}
.badge--ok{background:#dcfce7;color:#15803d}
.badge--warn{background:#fef3c7;color:#b45309}
.badge--err{background:#fee2e2;color:#b91c1c}
.badge--info{background:#e0f2fe;color:#0369a1}
.badge--brand{background:var(--brand-gradient);color:#fff}

.btn{
  display:inline-flex;align-items:center;gap:.4rem;border:0;cursor:pointer;
  padding:.55rem 1.05rem;border-radius:var(--radius-sm);font-family:var(--font-body);
  font-size:var(--fs-body);font-weight:600;transition:all var(--transition);
}
.btn--primary{background:var(--brand-primary);color:#fff}
.btn--primary:hover{background:var(--brand-primary-dark);color:#fff;
  box-shadow:var(--shadow-md)}
.btn--ghost{background:transparent;color:var(--ink-700);
  border:1px solid var(--ink-300)}
.btn--ghost:hover{border-color:var(--brand-primary);color:var(--brand-primary)}
.btn--sm{padding:.32rem .7rem;font-size:var(--fs-small)}

/* ---------- form ---------- */
.field{margin-bottom:var(--space-sm)}
.field label{display:block;font-size:var(--fs-small);font-weight:600;
  color:var(--ink-700);margin-bottom:.3rem}
.input,select.input,textarea.input{
  width:100%;padding:.6rem .8rem;border:1px solid var(--ink-300);
  border-radius:var(--radius-sm);font-family:var(--font-body);
  font-size:var(--fs-body);color:var(--ink-900);background:var(--white);
  transition:border-color var(--transition),box-shadow var(--transition);
}
.input:focus{outline:0;border-color:var(--brand-primary);
  box-shadow:0 0 0 3px rgba(192,48,96,.13)}

/* ---------- uyari ---------- */
.alert{padding:.7rem 1rem;border-radius:var(--radius-sm);margin-bottom:var(--space-sm);
  font-size:var(--fs-small);border-left:3px solid}
.alert--danger{background:#fef2f2;border-color:var(--danger);color:#991b1b}
.alert--warning{background:#fffbeb;border-color:var(--warning);color:#92400e}
.alert--success{background:#f0fdf4;border-color:var(--success);color:#166534}
.alert--info{background:#f0f9ff;border-color:var(--info);color:#075985}

.empty{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--ink-500)}
.muted{color:var(--ink-500)}
.mt{margin-top:var(--space-md)}

/* ---------- giris ekrani ---------- */
.login{min-height:100vh;display:grid;place-items:center;
  background:var(--brand-gradient);padding:var(--space-md)}
.login__card{
  background:var(--white);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);padding:var(--space-lg);
  width:100%;max-width:390px;
}
.login__brand{text-align:center;margin-bottom:var(--space-md)}
.login__brand h1{font-size:1.5rem;margin-bottom:.2rem}
.login__brand p{color:var(--ink-500);font-size:var(--fs-small);margin:0}

/* ---------- mobil ---------- */
@media (max-width:820px){
  .shell{flex-direction:column}
  .sidebar{width:100%;flex:none;flex-direction:row;overflow-x:auto;padding:.5rem}
  .sidebar__section,.sidebar__foot{display:none}
  .sidebar a{border-left:0;border-bottom:3px solid transparent;white-space:nowrap}
  .sidebar a.is-active{border-left:0;border-bottom-color:var(--brand-primary)}
  .content{padding:var(--space-sm)}
}
