/* App shell: the frame around every screen. Loaded after the app's own CSS so it replaces the old top tab strip.
   Phones: slim sticky header, product switcher, fixed bottom tab bar.
   Desktop (1024px and up): header across the top, a left rail for the four sections, content to the right. */

/* ---------- header */
body{padding-top:0;}
body .wrap > header{
  position:sticky;top:0;z-index:30;
  display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);
  margin:0 -14px var(--s-3);
  padding:calc(12px + env(safe-area-inset-top)) 14px 10px;
  background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px);
}
body .wrap > header .wordmark{margin:0;font-size:1.3rem;line-height:1;}
body .wrap > header .head-right{margin-left:auto;gap:var(--s-2);}
.k-who{height:40px;padding:0;gap:0;}
.k-who .k-avatar{width:36px;height:36px;font-size:14px;}
.k-who .k-who-name{display:none;}
/* team: a quiet chip row under the brand on phones */
body .wrap > header .k-team{order:5;flex:1 0 100%;gap:var(--s-2);}
body .wrap > header .k-team select{flex:0 1 auto;height:34px;font-size:13.5px;}
body .wrap > header .k-team .k-small{margin:0;font-size:13px;}
body .wrap > header .k-team .k-btn.small{height:30px;padding:0 var(--s-3);}
body .wrap > #whoCard{display:none;}

/* ---------- bottom tab bar (phones and tablets) */
@media (max-width:1023px){
  body .wrap{padding-bottom:calc(92px + env(safe-area-inset-bottom));}
  body .wrap > .page-tabs{
    position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;
    display:flex;justify-content:center;gap:var(--s-2);
    padding:var(--s-2) var(--s-3) calc(var(--s-2) + env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(18px);
    border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:0 -1px 0 var(--line),0 -12px 32px rgba(0,0,0,.05);
  }
  body .wrap > .page-tabs .page-tab{
    flex:1;max-width:104px;height:auto;gap:3px;padding:2px 0 0;border:0;border-radius:var(--r-lg);
    background:transparent;box-shadow:none;color:var(--text-2);font:600 11.5px/1.1 var(--font-ui);letter-spacing:0;
  }
  body .wrap > .page-tabs .page-tab svg{
    display:block;box-sizing:border-box;width:60px;height:34px;padding:6px 18px;border-radius:var(--r-pill);
    stroke-width:1.9;transition:background var(--t-med) var(--ease),color var(--t-med) var(--ease);
  }
  body .wrap > .page-tabs .page-tab.active{background:transparent;color:var(--text);box-shadow:none;}
  body .wrap > .page-tabs .page-tab.active svg{background:var(--inverse);color:var(--on-inverse);}
  body .wrap > .page-tabs .page-tab.active svg .fill{fill:var(--on-inverse);}
  .k-toast{bottom:calc(100px + env(safe-area-inset-bottom));}
}

/* ---------- left rail (desktop) */
@media (min-width:1024px){
  body{padding:0 28px 56px;}
  body .wrap{
    max-width:1480px;display:grid;
    grid-template-columns:240px minmax(0,1fr);
    grid-template-areas:"head head" "rail page";
    column-gap:var(--s-6);row-gap:0;align-items:start;
  }
  body .wrap > header{
    grid-area:head;margin:0 -28px var(--s-4);padding:var(--s-3) 28px;flex-wrap:nowrap;gap:var(--s-4);
  }
  body .wrap > header .wordmark{font-size:1.5rem;}
  body .wrap > header .k-team{order:0;flex:0 1 auto;}
  body .wrap > header .head-right{margin-left:auto;}
  .k-who{height:44px;padding:0 var(--s-3) 0 4px;gap:var(--s-2);background:var(--surface-2);}
  .k-who .k-who-name{display:inline;}
  body .wrap > .page-tabs{
    grid-area:rail;position:sticky;top:84px;flex-direction:column;gap:var(--s-1);
    margin:0;padding:0;background:none;border-radius:0;
  }
  body .wrap > .page-tabs .page-tab{
    flex:none;flex-direction:row;justify-content:flex-start;width:100%;height:52px;gap:var(--s-3);padding:0 var(--s-4);
    border:0;border-radius:var(--r-pill);background:transparent;box-shadow:none;color:var(--text-2);font:600 15px var(--font-ui);letter-spacing:-.005em;
  }
  body .wrap > .page-tabs .page-tab svg{display:block;width:22px;height:22px;}
  body .wrap > .page-tabs .page-tab:hover{background:var(--surface-2);color:var(--text);}
  body .wrap > .page-tabs .page-tab.active{background:var(--inverse);color:var(--on-inverse);}
  body .wrap > .page-tabs .page-tab.active svg{color:var(--on-inverse);}
  body .wrap > .page-tabs .page-tab.active svg .fill{fill:var(--on-inverse);}
  body .wrap > [id^="page"]{grid-area:page;margin-top:0;min-width:0;}
}
