.shell { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.side { background: var(--fb-black); color: #fff; padding: 18px 12px; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 4px; }
.side .brand { display: flex; align-items: center; gap: 10px; padding: 0 8px 18px; }
.side .brand img { width: 46px; height: 46px; border-radius: 12px; background: var(--fb-yellow); }
.side .brand .wordmark { color: #fff; }
.side a { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 12px; text-decoration: none; color: rgba(255,255,255,.72); font-weight: 800; font-size: 14.5px; }
.side a:hover { background: rgba(255,255,255,.07); color: #fff; }
.side a.on { background: var(--fb-yellow); color: var(--fb-black); }
.side a .count { margin-inline-start: auto; background: var(--fb-red); color: #fff; border-radius: 999px; padding: 0 8px; font-size: 12px; }
.side .foot { margin-top: auto; padding: 10px 8px 0; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; color: rgba(255,255,255,.65); }
.content { min-width: 0; }
.content-head { display: flex; align-items: center; gap: 12px; padding: 18px 24px; border-bottom: 1px solid var(--fb-line); background: #fff; position: sticky; top: 0; z-index: 20; }
.content-head h1 { font-size: 24px; }
.content-body { padding: 20px 24px 40px; }
.mobile-bar { display: none; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 18px; }
.panel { background: #fff; border: 1px solid var(--fb-line); border-radius: 18px; padding: 16px; }
.panel h3 { margin-bottom: 12px; }
.two { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; }
.bars { display: flex; align-items: flex-end; gap: 10px; height: 170px; padding-top: 10px; }
.bars .b { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.bars .bar { width: 100%; max-width: 46px; background: var(--fb-yellow); border: 2px solid var(--fb-black); border-bottom: 0; border-radius: 8px 8px 0 0; min-height: 4px; position: relative; }
.bars .bar.today { background: var(--fb-red); }
.bars .val { font-size: 12px; font-weight: 800; }
.bars .lbl { font-size: 12px; color: var(--fb-ink-3); font-weight: 700; }
.pipeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.pipeline .p { border-radius: 14px; padding: 10px; text-align: center; background: #FCFBF8; border: 1px solid var(--fb-line); }
.pipeline .p .n { font-family: var(--fb-font-display); font-size: 26px; font-weight: 800; }
.pipeline .p .l { font-size: 11.5px; font-weight: 800; color: var(--fb-ink-3); text-transform: uppercase; letter-spacing: .04em; }
.pipeline .p.alert { background: var(--fb-red-soft); border-color: #F5B4B0; }
.toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.toolbar .input { max-width: 300px; min-height: 42px; }
.inline-input { width: 90px; min-height: 36px; padding: 6px 10px; border-radius: 10px; border: 1.5px solid var(--fb-line-2); font: inherit; font-weight: 700; }
select.mini { min-height: 36px; padding: 6px 10px; border-radius: 10px; border: 1.5px solid var(--fb-line-2); font: inherit; font-weight: 700; background: #fff; max-width: 170px; }
.drawer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; }
  .side { display: none; }
  .side.open { display: flex; position: fixed; z-index: 100; width: 260px; inset: 0 auto 0 0; box-shadow: var(--fb-shadow-3); }
  .mobile-bar { display: flex; }
  .content-head { padding: 12px 16px; }
  .content-body { padding: 16px; }
  .two { grid-template-columns: 1fr; }
  .pipeline { grid-template-columns: repeat(3, 1fr); }
}
