/* Owner console: desktop-first analytics. Sidebar from 1024px; scrollable top tabs below. Tables scroll inside their own card, never the page. */
.o-shell { min-height: 100dvh; display: block; }
.o-side { display: none; }
.o-top { position: sticky; top: 0; z-index: 40; background: var(--brand-dark); color: #fff; padding-top: env(safe-area-inset-top, 0px); }
.o-top .in { display: flex; align-items: center; gap: 12px; padding: 10px var(--gutter); flex-wrap: wrap; } .o-top .logo { width: 34px; height: 34px; font-size: 16px; } .o-top strong { font-size: 16px; } .o-top .conn, .o-top .muted { color: var(--brand-dark-ink); } .o-top .btn { background: transparent; color: #fff; border-color: var(--brand-dark-line); }
.o-tabs { display: flex; gap: 4px; overflow-x: auto; padding: 0 var(--gutter) 8px; scrollbar-width: none; } .o-tabs button { flex: none; min-height: 40px; border: 0; background: transparent; color: var(--brand-dark-ink); padding: 4px 14px; border-radius: 99px; font-weight: 700; cursor: pointer; } .o-tabs button[aria-current='page'] { background: var(--brand-dark-2); color: #fff; }
.o-main { padding: 16px var(--gutter) 40px; max-width: 1400px; margin: 0 auto; display: grid; gap: 16px; } .o-main > h1 { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.grid2 { display: grid; gap: 14px; grid-template-columns: 1fr; align-items: start; } .grid3 { display: grid; gap: 14px; grid-template-columns: 1fr; }
/* a grid column may shrink below its widest content (a select with a long option), so a form never pushes the page sideways on a phone */
.grid2 > *, .grid3 > * { min-width: 0; }
.tmap { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.tile { text-align: left; border: 2px solid var(--line); background: var(--card); border-radius: var(--radius); padding: 10px 12px; cursor: pointer; display: grid; gap: 2px; } .tile:hover { border-color: var(--line-strong); }
.tile .lbl { font-size: 20px; font-weight: 800; display: flex; justify-content: space-between; align-items: center; } .tile.free { opacity: .6; background: transparent; border-style: dashed; } .tile.kitchen { border-color: #f59e0b; } .tile.unpaid { border-color: #3b82f6; } .tile.done { border-color: var(--ok); background: color-mix(in srgb, var(--ok-soft) 55%, var(--card)); }
.tile .amt { font-variant-numeric: tabular-nums; font-size: 13px; }
.feed { max-height: 360px; overflow-y: auto; font-size: 13.5px; } .feed div { padding: 7px 0; border-bottom: 1px dashed var(--line); display: flex; gap: 10px; } .feed .t { color: var(--mute); flex: none; font-variant-numeric: tabular-nums; }
.filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; } .filters > div { min-width: 140px; flex: 1 1 140px; } .filters label { margin-top: 0; }
.bars { display: grid; gap: 8px; } .bar-row { display: grid; grid-template-columns: minmax(90px, 30%) 1fr auto; gap: 10px; align-items: center; font-size: 13.5px; } .bar-row .track { height: 12px; background: var(--line); border-radius: 6px; overflow: hidden; } .bar-row .track i { display: block; height: 100%; background: var(--accent); border-radius: 6px; }
.pager { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 10px; flex-wrap: wrap; }
.ai-card { border: 2px dashed var(--line-strong); }
.sub-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
@media (min-width: 700px) { .grid2 { grid-template-columns: 1fr 1fr; } .grid3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) {
  .o-shell { display: grid; grid-template-columns: 236px minmax(0, 1fr); } .o-top .nav-inline { display: none; } .o-tabs { display: none; }
  .o-side { display: flex; flex-direction: column; gap: 2px; position: sticky; top: 0; height: 100dvh; background: var(--brand-dark); color: #fff; padding: 16px 12px; overflow-y: auto; }
  .o-side .brand { display: flex; gap: 10px; align-items: center; padding: 4px 8px 16px; } .o-side .brand .logo { width: 38px; height: 38px; }
  .o-side button.nav { text-align: left; min-height: 42px; border: 0; background: transparent; color: var(--brand-dark-ink); padding: 8px 12px; border-radius: 10px; font-weight: 700; cursor: pointer; } .o-side button.nav[aria-current='page'] { background: var(--brand-dark-2); color: #fff; } .o-side button.nav:hover { background: #3a2318; }
  .o-side .foot { margin-top: auto; padding: 10px 8px; font-size: 13px; color: var(--brand-dark-ink); } .o-side .foot .btn { width: 100%; background: transparent; color: #fff; border-color: var(--brand-dark-line); margin-top: 8px; }
  .o-top { display: none; } .grid2.wide { grid-template-columns: 2fr 1fr; }
}
@media (min-width: 1400px) { .grid3.four { grid-template-columns: repeat(4, 1fr); } }
