/* — app shell — */
.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100dvh}
.app.is-collapsed{grid-template-columns:var(--sidebar-w-min) minmax(0,1fr)}

/* — sidebar — */
.side{grid-column:1;display:flex;flex-direction:column;gap:var(--sp-2);background:var(--bg-surface);border-inline-end:1px solid var(--border-subtle);position:sticky;inset-block-start:0;height:100dvh;overflow:hidden;z-index:var(--z-nav)}
.side__brand{display:flex;align-items:center;gap:var(--sp-3);height:var(--topbar-h);padding-inline:var(--sp-4);flex:none;border-block-end:1px solid var(--border-subtle)}
.brand-mark{width:26px;height:26px;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--accent) 0%,#3987E5 100%);display:grid;place-items:center;color:#fff;font-weight:700;font-size:var(--fs-13);flex:none;box-shadow:0 2px 10px -2px rgba(110,90,246,.6)}
.brand-name{font-weight:600;font-size:var(--fs-14);letter-spacing:var(--ls-tight);white-space:nowrap}
.side__scroll{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-3) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}
.nav-group__label{padding:0 var(--sp-3) var(--sp-2);font-size:var(--fs-11);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-muted);white-space:nowrap}
.nav-item{display:flex;align-items:center;gap:var(--sp-3);height:34px;padding-inline:var(--sp-3);border-radius:var(--r-sm);color:var(--text-secondary);font-size:var(--fs-13);font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}
.nav-item svg{width:16px;height:16px;flex:none;opacity:.85}
.nav-item.is-active{background:var(--accent-soft);color:var(--text-primary);position:relative}
.nav-item.is-active::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:50%;transform:translateY(-50%);width:2px;height:16px;border-radius:var(--r-full);background:var(--accent)}
.nav-item__count{margin-inline-start:auto;font-size:var(--fs-11);color:var(--text-muted);font-variant-numeric:tabular-nums}
.side__footer{flex:none;padding:var(--sp-3);border-block-start:1px solid var(--border-subtle)}
.side__user{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);border-radius:var(--r-sm);cursor:pointer;width:100%;border:0;background:none;font:inherit;text-align:start;color:inherit}
.side__user:hover{background:var(--bg-hover)}
.side__user-meta{min-width:0;display:flex;flex-direction:column;line-height:1.3}
.side__user-name{font-size:var(--fs-13);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side__user-mail{font-size:var(--fs-11);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app.is-collapsed .brand-name,
.app.is-collapsed .nav-group__label,
.app.is-collapsed .nav-item span,
.app.is-collapsed .nav-item__count,
.app.is-collapsed .side__user-meta{display:none}
.app.is-collapsed .nav-item,
.app.is-collapsed .side__user{justify-content:center;padding-inline:0}
.app.is-collapsed .side__brand{justify-content:center;padding-inline:0}

/* — main + topbar — */
.main{grid-column:2;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;inset-block-start:0;z-index:calc(var(--z-nav) - 1);height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:var(--sp-3);padding-inline:var(--sp-5);background:color-mix(in srgb, var(--bg-canvas) 82%, transparent);backdrop-filter:blur(12px);border-block-end:1px solid var(--border-subtle)}
.topbar__search{flex:1;max-width:420px;display:flex;align-items:center;gap:var(--sp-2);height:32px;padding-inline:var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-raised);color:var(--text-muted);font-size:var(--fs-13);cursor:pointer;transition:border-color var(--dur-fast) var(--ease)}
.topbar__search:hover{border-color:var(--border-strong)}
.topbar__search svg{width:15px;height:15px}
.topbar__search .kbd{margin-inline-start:auto}
.icon-btn{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:var(--r-sm);border:1px solid transparent;background:none;color:var(--text-secondary);cursor:pointer;position:relative;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}
.icon-btn svg{width:16px;height:16px}
.icon-btn__dot{position:absolute;inset-block-start:6px;inset-inline-end:6px;width:6px;height:6px;border-radius:var(--r-full);background:var(--accent);box-shadow:0 0 0 2px var(--bg-canvas)}
.env-pill{display:inline-flex;align-items:center;gap:var(--sp-2);height:26px;padding-inline:var(--sp-3);border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-raised);font-size:var(--fs-12);color:var(--text-secondary);cursor:pointer}

/* — page content — */
.page{padding:var(--sp-6) var(--sp-5) var(--sp-10);display:flex;flex-direction:column;gap:var(--sp-6);max-width:1440px;width:100%;margin-inline:auto}
.page__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}
.page__title{font-size:var(--fs-24);font-weight:600;letter-spacing:var(--ls-tighter)}
.page__sub{margin-block-start:var(--sp-1);font-size:var(--fs-13);color:var(--text-muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}
.grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--sp-4)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
.feed{display:flex;flex-direction:column}
.feed__item{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-block-end:1px solid var(--border-subtle);font-size:var(--fs-13);color:var(--text-secondary)}
.feed__item:last-child{border-block-end:0}
.feed__item:hover{background:var(--bg-hover)}
.feed__time{margin-inline-start:auto;font-size:var(--fs-11);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.feed__avatar{flex:none}
.usage-row{display:flex;flex-direction:column;gap:var(--sp-2);padding-block:var(--sp-3)}
.usage-row__top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-13)}
.usage-row__val{color:var(--text-muted);font-size:var(--fs-12);font-variant-numeric:tabular-nums}

/* — side scrim — */
.side-scrim{display:none}

/* — responsive — */
@media (max-width:1100px){
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;inset-block:0;inset-inline-start:0;width:var(--sidebar-w);transform:translateX(-100%);transition:transform var(--dur) var(--ease)}
  [dir="rtl"] .side{transform:translateX(100%)}
  .side.is-open{transform:none}
  .main{grid-column:1}
  .page{padding-inline:var(--sp-4)}
  .side-scrim.is-open{display:block;position:fixed;inset:0;background:rgba(4,4,6,.6);z-index:calc(var(--z-nav) - 2)}
}
@media (max-width:560px){
  .kpi-grid{grid-template-columns:minmax(0,1fr)}
  .topbar__search span{display:none}
}
