/* Get Your Show Together — Dashboard
   Ported from the approved comp: GetYST-dashboard-v53.html (2026-08-18).
   This file is the full cascade of approved design passes as authored —
   later blocks intentionally override earlier ones; that's how the comp
   itself resolves final styling, so the order here is preserved as-is. */

:root{
  --urgency-overdue:#D56AA0;--urgency-critical:#A8013D;--urgency-important:#C59B3C;--urgency-open:#2E6FA3;
  --aub:#2C2A39;--aub-deep:#2C2A39;--linen:#F2F3F5;--charcoal:#2F343A;
  --sidebar-w:238px;--content-max:1240px;--transition:180ms ease
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;font-family:"Google Sans Flex",Arial,sans-serif}
button{font:inherit}
body{min-height:100vh;overflow-x:hidden}
svg.hero{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:0 0 22px}

html[data-theme="dark"]{
  --page:#17181B;--surface:#22242A;--text:#F2F3F5;--muted:#A8ACB0;--line:#3B4046;--toolbar:#17181B;--hover-row:rgba(142,160,175,.12)
}
html[data-theme="light"]{
  --page:#FFFFFF;--surface:#FFFFFF;--text:#2F343A;--muted:#6A7075;--line:#D6D9DD;--toolbar:#FFFFFF;--hover-row:rgba(109,126,141,.13)
}
/* Kelley's report 2026-09-29: native date/time input icons (calendar,
   clock) render black by default and vanish against a dark background --
   every such input across the app, not just the one component that had
   its own fix already (Tasks' date wrap). color-scheme tells the browser
   to draw its own native form chrome, including these icons, in a
   theme-appropriate color -- the real fix, not a filter:invert hack that
   would just as easily break the icon's own internal contrast. */
html[data-theme="dark"] input[type="date"],
html[data-theme="dark"] input[type="time"],
html[data-theme="dark"] input[type="datetime-local"]{color-scheme:dark}
html[data-theme="light"] input[type="date"],
html[data-theme="light"] input[type="time"],
html[data-theme="light"] input[type="datetime-local"]{color-scheme:light}

/* --success: not defined in the approved comp's own root vars (it references
   var(--success) but never declares it). Using the sage-green accent already
   established elsewhere (side-peek labels) for a positive/net-income tone —
   flagged for Mac to confirm/replace if a different token is intended. */
html[data-theme="dark"]{--success:#8FB39C}
html[data-theme="light"]{--success:#5A8069}

body{background:var(--page);color:var(--text);transition:background var(--transition),color var(--transition)}
.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}

/* SIDEBAR */
.sidebar{
  position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);height:100vh;height:100dvh;
  background:linear-gradient(180deg,var(--aub) 0%,var(--aub-deep) 100%);
  color:var(--linen);display:flex;flex-direction:column;overflow:hidden;z-index:50;
  border-right:1px solid rgba(255,255,255,.035)
}
.brand{padding:22px 16px 20px;position:relative;z-index:2}
.brand-logo{display:block;width:100%;max-width:205px;height:auto}
.brand-sub{margin-top:8px;font-size:12px;line-height:1.2;color:rgba(242,243,245,.65);letter-spacing:.08em;text-transform:uppercase}
/* 2026-09-29: Kelley reported the sidebar doesn't scroll -- true on
   both mobile (fixed in the max-width:820px block below, now
   superseded) and desktop, since .sidebar has overflow:hidden and nav
   content (10 top-level items + subitems + 5 Coming Soon rows) can
   exceed a real desktop viewport too (a laptop screen, a browser at
   less than full height). .nav gets its own scroll region between the
   fixed brand header and fixed bottom utility row at every width. */
.nav{padding:6px 12px 16px;position:relative;z-index:2;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.nav::-webkit-scrollbar{width:6px}
.nav::-webkit-scrollbar-track{background:transparent}
.nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}
.nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.32)}
.nav-divider{height:1px;background:rgba(255,255,255,.11);margin:10px 8px 12px}
.nav-divider-coming-soon{margin-top:50px}
.nav-coming-soon-badge{font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#8EA0AF;border:1px solid #8EA0AF;border-radius:999px;padding:1px 6px;line-height:1.4;flex:0 0 auto;white-space:nowrap;align-self:flex-start}
/* Always stacked under the label now, not wrapped-when-tight -- the old
   flex-wrap row put the badge beside the label at most sidebar widths and
   only dropped it below at a few in-between ones, an inconsistent look
   Kelley flagged after adding the Reports item made it more noticeable. */
.nav-item-label-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 auto;min-width:0}
.nav-item{
  position:relative;width:100%;min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:8px;
  display:flex;align-items:center;gap:11px;background:transparent;color:rgba(242,243,245,.78);
  font-size:15px;font-weight:600;text-align:left;cursor:pointer;
  margin-bottom:20px;
  transition:background var(--transition),color var(--transition),border var(--transition)
}
.nav-item:last-child{margin-bottom:0}
.nav-item:hover{background:rgba(255,255,255,.055);color:var(--linen)}
.nav-item.active{background:rgba(255,255,255,.06);color:#fff;border-color:transparent;border-left:3px solid #b9a3ff;padding-left:10px;font-weight:700}
.nav-item.active svg{color:#b9a3ff}
/* Kelley's call 2026-09-30: "I genuinely love the buttons in the nav.
   Except they are all colored in purple." Each item gets its own
   distinct active-state color instead of one shared purple -- same
   mechanism (left border + icon color), reviewed and locked in via a
   mockup first. No orange/brown anywhere, per the style guide. Order
   matches the sidebar's own order. */
.nav-item[data-nav="Dashboard"].active{border-left-color:#F2F3F5}
.nav-item[data-nav="Dashboard"].active svg{color:#F2F3F5}
.nav-item[data-nav="Applications"].active{border-left-color:#2FB8C4}
.nav-item[data-nav="Applications"].active svg{color:#2FB8C4}
.nav-item[data-nav="My Shows"].active{border-left-color:#8f7ad1}
.nav-item[data-nav="My Shows"].active svg{color:#8f7ad1}
.nav-item[data-nav="B.A.D.™"].active{border-left-color:#4A8FE0}
.nav-item[data-nav="B.A.D.™"].active svg{color:#4A8FE0}
.nav-item[data-nav="Contacts"].active{border-left-color:#EC6BA5}
.nav-item[data-nav="Contacts"].active svg{color:#EC6BA5}
.nav-item[data-nav="Gallery"].active{border-left-color:#D6336C}
.nav-item[data-nav="Gallery"].active svg{color:#D6336C}
.nav-item[data-nav="Tasks"].active{border-left-color:#87CEEB}
.nav-item[data-nav="Tasks"].active svg{color:#87CEEB}
.nav-item[data-nav="Preferences"].active{border-left-color:#9C7FA7}
.nav-item[data-nav="Preferences"].active svg{color:#9C7FA7}
.nav-item[data-nav="Calendar"].active{border-left-color:#8B93E8}
.nav-item[data-nav="Calendar"].active svg{color:#8B93E8}
.nav-item[data-nav="Documents"].active{border-left-color:#3E8E8A}
.nav-item[data-nav="Documents"].active svg{color:#3E8E8A}
.nav-item[data-nav="My Money"].active{border-left-color:#4FBF95}
.nav-item[data-nav="My Money"].active svg{color:#4FBF95}
.nav-item[data-nav="Reports"].active{border-left-color:#A8A6B3}
.nav-item[data-nav="Reports"].active svg{color:#A8A6B3}
.nav-item .hero{width:20px;height:20px;flex-basis:20px}
/* The tent icon's actual size is set by its own !important rule in
   index.html (.market-tent-icon-v137), which beats this regardless of
   what's written here -- this line used to claim 18px, which was never
   true; removed rather than left to mislead the next read. */
.sidebar-spacer{flex:0 0 auto}
.orbital-arc{
  position:absolute;right:-150px;bottom:72px;width:330px;height:330px;border-radius:50%;
  border:1px solid rgba(255,255,255,.11);opacity:.92;pointer-events:none;
  background:radial-gradient(circle at 42% 42%,rgba(255,255,255,.085),rgba(255,255,255,.042) 34%,transparent 66%);
  -webkit-mask-image:linear-gradient(to top,#000 42%,transparent 92%);
  mask-image:linear-gradient(to top,#000 42%,transparent 92%)
}
.orbital-arc::before{content:"";position:absolute;inset:44px;border-radius:50%;border:1px solid rgba(255,255,255,.07)}

/* BOTTOM UTILITY ROW */
.utility-wrap{padding:14px 12px;position:relative;z-index:3}
.utility-row{min-height:46px;display:grid;grid-template-columns:34px 1fr 28px;gap:8px;align-items:center;color:var(--linen);padding:6px 4px}
.theme-toggle,.user-chevron,.drawer-close,.menu-button{appearance:none;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}
.theme-toggle{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:var(--linen)}
.theme-toggle:hover{background:rgba(255,255,255,.10)}
.theme-toggle svg{stroke:var(--linen)!important;color:var(--linen)!important}
.user-name{font-size:14px;font-weight:600;color:var(--linen)}
.user-chevron{width:28px;height:28px;border-radius:8px;color:var(--linen)}
.user-chevron:hover{background:rgba(255,255,255,.06)}
.user-chevron svg{stroke:var(--linen)!important;color:var(--linen)!important}
.user-chevron .hero{width:18px;height:18px;transition:transform var(--transition)}
.utility-row.menu-open .user-chevron .hero{transform:rotate(180deg)}
.user-popover{
  position:absolute;left:14px;right:14px;bottom:66px;background:var(--surface);color:var(--text);
  border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 18px 40px rgba(0,0,0,.24);
  opacity:0;transform:translateY(6px) scale(.985);pointer-events:none;transition:opacity var(--transition),transform var(--transition)
}
.user-popover.open{opacity:1;transform:none;pointer-events:auto}
.user-popover b{display:block;font-size:15px;margin-bottom:5px}
.user-popover p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}

/* MAIN + MOBILE HEADER */
.main{grid-column:2;min-width:0;min-height:100vh}
/* backdrop-filter on a position:sticky element is a known iOS WebKit
   combination that can produce a persistent rendering artifact (a hazy
   shadow bleeding across the page) independent of any other CSS on the
   page -- present on both Safari and Edge (both WebKit on iOS), survives
   cache clears, and invisible to Chromium-based testing tools, which
   matches this bug's actual symptoms exactly. Using a solid background
   instead of a blur removes the whole class of bug rather than patching
   around it. */
.mobile-bar{
  display:none;position:sticky;top:0;z-index:35;height:60px;padding:0 14px;
  align-items:center;justify-content:space-between;background:var(--toolbar);
  border-bottom:1px solid var(--line);
}
.menu-button{width:40px;height:40px;border-radius:10px;color:var(--text)}
.menu-button svg{stroke:var(--text)!important;color:var(--text)!important}
.menu-button:hover{background:var(--surface)}
.mobile-brand{display:flex;align-items:center;justify-content:center}
.mobile-logo{display:block;width:170px;max-width:48vw;height:auto}
.mobile-logo.light-on-dark{display:block}
.mobile-logo.dark-on-light{display:none}
html[data-theme="light"] .mobile-logo.light-on-dark{display:none}
html[data-theme="light"] .mobile-logo.dark-on-light{display:block}
.drawer-close{display:none;position:absolute;right:10px;top:10px;width:36px;height:36px;border-radius:10px;color:var(--linen);z-index:5}
.drawer-close svg{stroke:var(--linen)!important;color:var(--linen)!important}
.drawer-close:hover{background:rgba(255,255,255,.07)}
.drawer-overlay{display:none;position:fixed;inset:0;background:rgba(15,10,18,.48);backdrop-filter:blur(2px);z-index:45}

.content-shell{max-width:var(--content-max);margin:0 auto;padding:34px 36px 56px}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}
.page-title-wrap{min-width:0;flex:1 1 auto}
.page-kicker{font-size:15px;line-height:1.35;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.page-title{font-family:"Google Sans Flex",Arial,sans-serif;font-size:36px;line-height:1;font-weight:700;letter-spacing:-1px;margin:0}
/* Was 680px, then 900px -- still an arbitrary ceiling causing the same
   early, awkward wrap on a wide panel. Every real .page-subtitle in the
   app is a short one- or two-sentence hint, none of them long-form prose
   that actually benefits from a capped reading width, so there's nothing
   here for a max-width to protect. Let it use the full container. */
.page-subtitle{margin:9px 0 0;color:var(--muted);font-size:15px;line-height:1.48;max-width:100%}

/* ACTION — SAME GEOMETRY BOTH MODES */
/* ONE GOVERNING BUTTON COMPONENT — flat, calm, per the updated style guide
   (retired the glossy/skewed-highlight "glass" treatment app-wide 2026-09-06) */
.glass-action{
  position:relative;min-width:152px;min-height:44px;padding:0 18px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;
  font:600 16px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.02em;
  background:#7659A8;color:#F2F3F5;border:1px solid #7659A8;
  transition:transform var(--transition),background var(--transition),border-color var(--transition)
}
.glass-action:hover{transform:translateY(-1px);background:#6B4F9B;border-color:#6B4F9B}
.glass-action:active{transform:translateY(1px) scale(.99)}
.glass-action:disabled{opacity:.5;cursor:default;transform:none}
/* Kelley's call 2026-09-30: "Buttons in the People section need to
   represent the same menu item color" -- every page's own action
   buttons (Add Show, Log Activity, etc.) now match that page's nav
   color instead of a single shared purple, same palette as the nav
   itself. Light colors (Tasks/Reports/My Money/Dashboard) get dark
   text instead of white for real contrast. */
.view[data-view="applications"] .glass-action:not(.glass-action--soon){background:#2FB8C4;border-color:#2FB8C4}
.view[data-view="applications"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#2FB8C4 85%,#000 15%);border-color:color-mix(in srgb,#2FB8C4 85%,#000 15%)}
.view[data-view="shows"] .glass-action:not(.glass-action--soon){background:#8f7ad1;border-color:#8f7ad1}
.view[data-view="shows"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#8f7ad1 85%,#000 15%);border-color:color-mix(in srgb,#8f7ad1 85%,#000 15%)}
.view[data-view="b.a.d.™"] .glass-action:not(.glass-action--soon){background:#4A8FE0;border-color:#4A8FE0}
.view[data-view="b.a.d.™"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#4A8FE0 85%,#000 15%);border-color:color-mix(in srgb,#4A8FE0 85%,#000 15%)}
.view[data-view="contacts"] .glass-action:not(.glass-action--soon){background:#EC6BA5;border-color:#EC6BA5}
.view[data-view="contacts"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#EC6BA5 85%,#000 15%);border-color:color-mix(in srgb,#EC6BA5 85%,#000 15%)}
.view[data-view="gallery"] .glass-action:not(.glass-action--soon){background:#D6336C;border-color:#D6336C}
.view[data-view="gallery"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#D6336C 85%,#000 15%);border-color:color-mix(in srgb,#D6336C 85%,#000 15%)}
.view[data-view="tasks"] .glass-action:not(.glass-action--soon){background:#87CEEB;border-color:#6DB9DB;color:#17181B}
.view[data-view="tasks"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#87CEEB 85%,#000 15%);border-color:#6DB9DB}
.view[data-view="preferences"] .glass-action:not(.glass-action--soon){background:#9C7FA7;border-color:#9C7FA7}
.view[data-view="preferences"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#9C7FA7 85%,#000 15%);border-color:color-mix(in srgb,#9C7FA7 85%,#000 15%)}
.view[data-view="calendar"] .glass-action:not(.glass-action--soon){background:#8B93E8;border-color:#8B93E8}
.view[data-view="calendar"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#8B93E8 85%,#000 15%);border-color:color-mix(in srgb,#8B93E8 85%,#000 15%)}
.view[data-view="documents"] .glass-action:not(.glass-action--soon){background:#3E8E8A;border-color:#3E8E8A}
.view[data-view="documents"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#3E8E8A 85%,#000 15%);border-color:color-mix(in srgb,#3E8E8A 85%,#000 15%)}
.view[data-view="my-money"] .glass-action:not(.glass-action--soon){background:#4FBF95;border-color:#4FBF95;color:#17181B}
.view[data-view="my-money"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#4FBF95 85%,#000 15%);border-color:color-mix(in srgb,#4FBF95 85%,#000 15%)}
.view[data-view="reports"] .glass-action:not(.glass-action--soon){background:#A8A6B3;border-color:#A8A6B3;color:#17181B}
.view[data-view="reports"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#A8A6B3 85%,#000 15%);border-color:color-mix(in srgb,#A8A6B3 85%,#000 15%)}
.view[data-view="home"] .glass-action:not(.glass-action--soon){background:#FFFFFF;border-color:#FFFFFF;color:#17181B}
.view[data-view="home"] .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#FFFFFF 85%,#000 15%);border-color:color-mix(in srgb,#FFFFFF 85%,#000 15%)}
/* Kelley's call 2026-09-30: Dashboard's quick-action buttons should each
   carry the color of the nav item they jump to, same as every other
   page's own action buttons already do -- not one flat Dashboard white.
   Add Doc/Add Receipt stay untouched (.glass-action--soon dashed/muted). */
#dashboardAddShowBtn{background:#8f7ad1;border-color:#8f7ad1;color:#F2F3F5}
#dashboardAddShowBtn:hover{background:color-mix(in srgb,#8f7ad1 85%,#000 15%);border-color:color-mix(in srgb,#8f7ad1 85%,#000 15%)}
#dashboardAddTaskBtn{background:#87CEEB;border-color:#6DB9DB;color:#17181B}
#dashboardAddTaskBtn:hover{background:color-mix(in srgb,#87CEEB 85%,#000 15%);border-color:#6DB9DB}
#dashboardAddPhotoBtn{background:#D6336C;border-color:#D6336C;color:#F2F3F5}
#dashboardAddPhotoBtn:hover{background:color-mix(in srgb,#D6336C 85%,#000 15%);border-color:color-mix(in srgb,#D6336C 85%,#000 15%)}
#dashboardAddPeopleBtn{background:#EC6BA5;border-color:#EC6BA5;color:#F2F3F5}
#dashboardAddPeopleBtn:hover{background:color-mix(in srgb,#EC6BA5 85%,#000 15%);border-color:color-mix(in srgb,#EC6BA5 85%,#000 15%)}

.shell-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.85fr);gap:18px}
.shell-card{min-height:214px;border-radius:16px;background:var(--surface);border:1px solid var(--line);padding:22px}
.shell-card h2{font-size:18px;line-height:1.25;margin:0 0 8px;font-weight:700}
.shell-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.48}
.placeholder-lines{margin-top:24px;display:grid;gap:11px}
.placeholder-lines span{display:block;height:10px;border-radius:999px;background:var(--line);opacity:.72}
.placeholder-lines span:nth-child(1){width:82%}.placeholder-lines span:nth-child(2){width:66%}.placeholder-lines span:nth-child(3){width:73%}
.secondary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.secondary-grid .shell-card{min-height:144px}

@media(max-width:980px){
  .shell-grid{grid-template-columns:1fr}
  .secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .app{display:block}.main{grid-column:auto}.mobile-bar{display:flex}
  .sidebar{transform:translateX(-104%);transition:transform 220ms ease;box-shadow:none}
  .sidebar.drawer-open{transform:translateX(0);box-shadow:0 30px 70px rgba(0,0,0,.45)}
  .drawer-overlay.open{display:block}
  .drawer-close{display:grid}
  .content-shell{padding:24px 18px 44px}
  .page-head{align-items:stretch}
  /* Confirmed via direct inspection: this decorative arc's right:-150px
     offset, combined with the sidebar's own -104% translateX when closed,
     still lands roughly half of it inside the visible viewport instead of
     off-canvas with the rest of the sidebar. Hide it whenever the drawer
     isn't open. */
  .sidebar:not(.drawer-open) .orbital-arc{display:none}
}
@media(max-width:600px){
  .content-shell{padding:22px 14px 38px}
  .page-head{display:grid;gap:18px}
  .glass-action{width:100%}
  .secondary-grid{grid-template-columns:1fr}
  .shell-card{padding:18px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* CONTEXTUAL NAV ACTIONS — authoritative */
.nav-actions{
  display:none;
  margin:6px 0 10px 22px;
  padding:3px 0 3px 17px;
  border-left:1px solid rgba(222,215,227,.22);
  gap:4px;
}
.nav-actions.active{display:grid}
.nav-subaction{
  appearance:none;
  border:0;
  position:relative;
  background:transparent;
  color:rgba(242,243,245,.74);
  text-align:left;
  min-height:36px;
  padding:5px 8px 5px 18px;
  border-radius:7px;
  font:600 16px/1.25 "Google Sans Flex",Arial,sans-serif;
  cursor:pointer;
  white-space:nowrap;
  transition:background var(--transition),color var(--transition);
}
.nav-subaction::before{
  content:"·";
  position:absolute;
  left:4px;
  top:50%;
  transform:translateY(-52%);
  color:rgba(222,215,227,.72);
  font-size:20px;
  font-weight:700;
  line-height:1;
}
.nav-subaction:hover,
.nav-subaction:focus-visible{
  background:rgba(255,255,255,.07);
  color:var(--linen);
  outline:none;
}
@media(max-width:820px){
  .nav-actions{margin-left:22px;padding-left:17px}
  .nav-subaction{font-size:16px;min-height:38px}
}


/* GOVERNING LOGO → DASHBOARD BEHAVIOR */
.brand-logo,
.mobile-logo,
.brand-sub{
  cursor:pointer;
}
.brand-logo:focus-visible,
.mobile-logo:focus-visible,
.brand-sub:focus-visible{
  outline:2px solid #B9A7E0;
  outline-offset:4px;
}
/* Kelley's call 2026-09-29: replace the under-logo pill with a real
   corner ribbon draped across the screen's top-right corner, like an app
   icon's ALPHA/BETA badge -- fixed to the viewport (not the sidebar).
   Classic ribbon technique: an oversized rotated strip inside an
   overflow:hidden square, clipped to just the corner triangle.
   Storm Slate Light (#8EA0AF) -- the approved style guide's own "Primary
   CTA, links, and active interaction" color (see dark-mode-approved
   style guide, Core Palette). First pass used purple, which Kelley
   flagged as overused; second pass used amber, which the style guide's
   own "Color Usage Rules" explicitly bans ("No orange or brown -- warm
   drifts can read orange or khaki. Avoid them"). This is also literally
   what the original pre-ribbon pill badge already used. */
.beta-ribbon{
  position:fixed;top:0;right:0;width:130px;height:130px;overflow:hidden;z-index:300;pointer-events:none;
}
/* Kelley's call 2026-09-30: Storm Slate read as "too dull" -- charcoal
   instead (also from the approved style guides' own Core Palette),
   same value in both themes with a thin border for definition, since
   dark mode's own page background is nearly this same dark already. */
.beta-ribbon span{
  position:absolute;top:28px;right:-38px;width:180px;padding:5px 0;
  transform:rotate(45deg);transform-origin:center;
  background:#2F343A;color:#F2F3F5;border-top:1px solid rgba(242,243,245,.18);border-bottom:1px solid rgba(242,243,245,.18);
  text-align:center;font:700 13px/1.3 "Google Sans Flex",Arial,sans-serif;
  letter-spacing:.12em;text-transform:uppercase;
  box-shadow:0 3px 8px rgba(0,0,0,.28);
}
@media(max-width:820px){
  /* Kelley's report: the ribbon went fully missing on mobile -- the
     mobile header's top-right corner is actually empty (just the
     centered logo), so there's no real conflict; it just needed to be
     scaled down to fit the 60px mobile-bar instead of hidden outright. */
  .beta-ribbon{width:88px;height:88px;z-index:36}
  .beta-ribbon span{top:18px;right:-30px;width:130px;padding:3px 0;font-size:10px;letter-spacing:.08em}
  /* Kelley's report 2026-10-01: on mobile, a full-screen peek/drawer's own
     close "X" sits right in that same top-right corner -- the ribbon
     wasn't blocking the click (pointer-events:none throughout), but it
     visually swallowed the close button. Every peek/drawer/modal in the
     app toggles aria-hidden="false" while open, so hide the ribbon
     whenever any of them is -- no need to special-case each one by name. */
  body:has([class*="-peek"][aria-hidden="false"],[class*="-drawer"][aria-hidden="false"],[class*="-modal"][aria-hidden="false"]) .beta-ribbon{display:none}
}








/* =========================================================
   DASHBOARD V1.06 — exact treatment geometry + actionable tasks
   ========================================================= */

/* ACTUAL PAGE ANCHORING — override governing centered shell for Dashboard */
.content-shell{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:34px 36px 56px !important;
}

.dashboard-wrap{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

.dashboard-heading{
  margin:0 0 20px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.dashboard-heading-copy{min-width:0;flex:1 1 0%}
.dashboard-heading-note{margin:8px 0 0;color:var(--muted);font:500 16px/1.45 "Google Sans Flex",Arial,sans-serif;}
/* Kelley's report 2026-09-30: the tent illustration's old 142px width
   ate enough of the row that the 6 quick-action buttons couldn't fit
   on one line -- it's the illustration's size, not the button text,
   that was the actual constraint. Shrunk it and top-aligned the whole
   group with the "Dashboard" title instead of bottom-aligning it with
   the button row. */
.dashboard-tent-quip-group{display:flex;align-items:center;gap:12px;min-width:0;flex:0 0 auto}
.dashboard-tent{width:84px;flex:0 0 84px;color:#9C7FA7;opacity:.9}
.dashboard-tent svg{display:block;width:100%;height:auto;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.dashboard-heading-quip{max-width:230px;min-width:0}
.dashboard-heading-quip-label{margin:0 0 4px;color:var(--muted);font:700 12px/1.2 "Google Sans Flex",Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em}
.dashboard-heading-quip-line{margin:0;color:var(--text);font-family:"Google Sans Flex",Arial,sans-serif;font-weight:200;font-size:15px;line-height:1.35;letter-spacing:.01em}
@media(max-width:1024px){
  /* Kelley's report 2026-09-29, tablet portrait: the tent-quip block's
     fixed ~388px width squeezes .dashboard-heading-copy (flex:1) down to
     an awkward remainder at this range -- not narrow enough to force the
     quick-action buttons to genuinely reflow, but too narrow for them to
     use well, and justify-content:space-between throws the slack into a
     dead gap in the middle instead of giving it back to the buttons.
     Raised from the original 520px (phone-only) threshold to cover
     portrait tablets (iPad Mini/Air/Pro all fall between 768-834px) --
     same "hide the whole group together, not just the text" reasoning
     as before, just a wider range. */
  .dashboard-tent-quip-group{display:none}
}

/* Dashboard quick actions -- added after repeated tester feedback that the
   Dashboard felt "read only." Each button jumps straight to the module
   that owns the feature and opens its existing add flow (My Shows/Tasks/
   Gallery); nothing new is built here. */
.dashboard-quick-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 0}
.glass-action--soon{background:transparent;color:var(--muted);border:1px dashed var(--line)}
.glass-action--soon:hover{background:color-mix(in srgb,var(--text) 6%,transparent);transform:none;border-color:var(--line)}

.dashboard-title-frame{
  position:relative;
  display:inline-block;
  padding:0 0 10px 14px;
}

.dashboard-title-frame::before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  bottom:8px;
  width:3px;
  border-radius:3px;
  background:#7752B8;
}

.dashboard-title-frame::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:72%;
  height:3px;
  border-radius:3px;
  background:#7752B8;
}

.dashboard-title{
  margin:0;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:36px;
  line-height:1;
  font-weight:700;
  letter-spacing:-1px;
}

/* Money = ONE grouped summary, centered at top */
.money-summary{
  width:min(760px,100%);
  margin:0 auto 24px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  background:color-mix(in srgb,var(--surface) 78%,transparent);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.07);
}

.money-summary-item{
  min-height:104px;
  padding:18px 22px;
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.money-summary-item + .money-summary-item{
  border-left:1px solid color-mix(in srgb,var(--muted) 24%,transparent);
}

.money-summary-label{
  color:var(--muted);
  font-size:15px;
}

.money-summary-value{
  margin-top:8px;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:36px;
  line-height:1;
  font-weight:400;
}

.money-summary-item.net .money-summary-value{
  color:var(--success);
}

/* Two major sections — TRUE LEFT ANCHORED, full working width */
.primary-grid{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:20px;
  align-items:stretch;
}

/* NO FRAME. Exact treatment geometry:
   bottom: center (50%) -> right edge
   side: bottom -> center (50% height), on right edge */
.section-card{
  --section-accent:#6FAEF7;
  position:relative;
  min-width:0;
  border:0;
  border-radius:20px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  box-shadow:0 10px 28px rgba(0,0,0,.08);
  overflow:hidden;
}

.section-card::before{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:4px;
  height:50%;
  background:var(--section-accent);
}

.section-card::after{
  content:"";
  position:absolute;
  left:50%;
  right:0;
  bottom:0;
  height:4px;
  background:var(--section-accent);
}

.section-card.next-up{
  --section-accent:#6FAEF7;
}

.section-card.tasks-section{
  --section-accent:#857887;
}

.section-inner{
  padding:24px 26px 22px;
}

.section-title{
  margin:0 0 18px;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:24px;
  line-height:1;
  font-weight:400;
}

/* Quiet links */
.quiet-link{
  display:inline-flex;
  color:var(--muted);
  text-decoration:none;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
}

.quiet-link:hover,
.quiet-link:focus-visible{
  color:var(--text);
  text-decoration:underline;
  outline:none;
}

/* NEXT UP */
.next-layout{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:20px;
  align-items:start;
}

.next-date{
  text-align:left;
}

.next-month{
  color:var(--muted);
  font-size:15px;
  letter-spacing:.11em;
}

.next-day{
  margin:6px 0 4px;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:58px;
  line-height:.9;
  font-weight:400;
}

.next-away{
  color:var(--muted);
  font-size:15px;
}

.next-status{
  margin-bottom:6px;
  color:var(--muted);
  font-size:15px;
}

.next-show-title{
  margin:0 0 10px;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:30px;
  line-height:1;
  font-weight:400;
}

.next-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  font-size:15px;
}

.next-note{
  margin-top:12px;
  color:var(--muted);
  font-size:15px;
}

.next-subsection{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid color-mix(in srgb,var(--muted) 22%,transparent);
}

.next-subtitle{
  margin:0 0 8px;
  font-size:15px;
  font-weight:700;
}

/* Actionable task row, used in BOTH sections */
.task-action-row{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-height:46px;
  padding:8px 0;
  cursor:pointer;
}

.task-action-row + .task-action-row{
  border-top:1px solid color-mix(in srgb,var(--muted) 16%,transparent);
}

.task-check{
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  margin:0;
  border:1.5px solid color-mix(in srgb,var(--muted) 72%,transparent);
  border-radius:5px;
  background:transparent;
  display:grid;
  place-content:center;
  cursor:pointer;
}

.task-check::before{
  content:"";
  width:8px;
  height:4px;
  border-left:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(-45deg) scale(0);
  transform-origin:center;
  transition:transform .12s ease;
}

.task-check:checked{
  color:var(--success);
  border-color:var(--success);
}

.task-check:checked::before{
  transform:rotate(-45deg) scale(1);
}

.task-action-row.is-complete .task-name,
.task-action-row.is-complete .task-context{
  opacity:.52;
  text-decoration:line-through;
}

.task-name{
  font-size:15px;
  font-weight:650;
}

.task-context{
  margin-top:3px;
  color:var(--muted);
  font-size:15px;
}

.task-age{
  color:var(--muted);
  font-size:15px;
  white-space:nowrap;
}

.hotel-reminder{
  margin-top:14px;
  padding:12px 0 0;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:10px;
  border-top:1px solid color-mix(in srgb,var(--muted) 22%,transparent);
  font-size:15px;
}

.hotel-icon{
  color:#6FAEF7;
  font-size:18px;
  line-height:1.2;
}

.hotel-reminder strong{
  display:block;
  margin-bottom:4px;
}

.next-footer{
  margin-top:14px;
  text-align:left;
}

/* TASKS */
.task-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}

.task-column{
  position:relative;
  padding:4px 18px 8px;
}

/* Requested LEFT + RIGHT color treatment ONLY — no enclosing grey border */
.task-column::before,
.task-column::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:3px;
}

.task-column::before{left:0}
.task-column::after{right:0}

.task-column.overdue::before,
.task-column.overdue::after{
  background:#9A4E54;
}

.task-column.today::before,
.task-column.today::after{
  background:#6D7E8D;
}

.task-column-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:42px;
  margin-bottom:4px;
}

.task-column-title{
  margin:0;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:22px;
  line-height:1;
  font-weight:400;
}

.warning-mark{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#C76A72;
  font-size:15px;
  font-weight:700;
}

.warning-mark::before{
  content:"!";
  width:18px;
  height:18px;
  border:1.5px solid #C76A72;
  border-radius:50%;
  display:grid;
  place-content:center;
  font-size:12px;
  line-height:1;
  font-weight:800;
}

.task-column.overdue .task-age{
  color:#C76A72;
}

/* DUE TODAY intentionally has NO repeated "Today" value on each row */
.task-column.today .task-action-row{
  grid-template-columns:24px minmax(0,1fr);
}

.task-column-footer{
  margin-top:12px;
  text-align:left;
}

/* room for 5 rows without spreadsheet squeeze */
.tasks-section .section-inner{
  padding-bottom:26px;
}

@media(max-width:1120px){
  .primary-grid{
    grid-template-columns:1fr;
  }

  .section-card{
    width:100%;
  }
}

@media(max-width:720px){
  .content-shell{
    padding:26px 18px 44px !important;
  }

  .money-summary{
    grid-template-columns:1fr;
    width:100%;
  }

  .money-summary-item{
    min-height:74px;
    flex-direction:row;
    align-items:baseline;
    justify-content:space-between;
    gap:14px;
    text-align:left;
  }

  .money-summary-item + .money-summary-item{
    border-left:0;
    border-top:1px solid color-mix(in srgb,var(--muted) 24%,transparent);
  }

  .money-summary-value{
    margin-top:0;
    font-size:31px;
  }

  .next-layout{
    grid-template-columns:88px minmax(0,1fr);
    gap:14px;
  }

  .next-day{
    font-size:48px;
  }

  .task-columns{
    grid-template-columns:1fr;
    gap:26px;
  }

  .task-column{
    padding:4px 16px 8px;
  }
}

@media(max-width:480px){
  .section-inner{
    padding:20px 18px 20px;
  }

  .next-layout{
    grid-template-columns:74px minmax(0,1fr);
  }

  .next-day{
    font-size:42px;
  }

  .task-action-row{
    grid-template-columns:22px minmax(0,1fr);
  }

  .task-column.overdue .task-age,
  .next-subsection .task-age{
    grid-column:2;
    justify-self:start;
    margin-top:-4px;
  }
}


/* =========================================================
   DASHBOARD V1.07 — hierarchy + money separators correction
   ========================================================= */

/* MONEY: no enclosing/tracking border. Only left separators between sections. */
.money-summary{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.money-summary-item{
  background:transparent !important;
  border:0 !important;
}

.money-summary-item + .money-summary-item{
  border-left:1px solid color-mix(in srgb,var(--muted) 34%,transparent) !important;
}

/* TYPOGRAPHY RULE:
   Anything under 24px uses Google Sans Flex.
   Google Sans Flex governs all application typography. */
.next-month,
.next-away,
.next-status,
.next-meta,
.next-note,
.next-subtitle,
.task-name,
.task-context,
.task-age,
.hotel-reminder,
.money-summary-label,
.warning-mark,
.quiet-link{
  font-family:"Google Sans Flex",sans-serif !important;
}

/* Section-level headings remain distinct. */
.section-title{
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:24px !important;
  font-weight:400 !important;
}

/* Task subsection headings are NOT section headings. */
.task-column-title{
  font-family:"Google Sans Flex",sans-serif !important;
  font-size:18px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
}

/* Keep OVERDUE red focus rails. */
.task-column.overdue::before,
.task-column.overdue::after{
  display:block !important;
  background:#9A4E54 !important;
}

/* DUE TODAY: no grey/blue rails at all. */
.task-column.today::before,
.task-column.today::after{
  display:none !important;
}

/* Mobile money remains separator-led, not boxed. */
@media(max-width:720px){
  .money-summary-item + .money-summary-item{
    border-left:0 !important;
    border-top:1px solid color-mix(in srgb,var(--muted) 34%,transparent) !important;
  }
}


/* =========================================================
   DASHBOARD V1.08 — NEXT UP markup corrections only
   ========================================================= */

/* Event-details block gets a full restrained light-grey border. */
.next-layout{
  border:1px solid color-mix(in srgb,var(--muted) 34%,transparent);
  border-radius:14px;
  padding:16px 18px;
}

/* Exact requested subhead. */
.next-subtitle{
  font-family:"Google Sans Flex",sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
  text-transform:uppercase;
  letter-spacing:.01em;
}

/* Quiet link, but clearly a link: defined GetYST link color + stronger weight. */
.next-footer .quiet-link{
  color:#6D7E8D !important;
  font-family:"Google Sans Flex",sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
}

.next-footer .quiet-link:hover,
.next-footer .quiet-link:focus-visible{
  color:#5C6D7B !important;
  text-decoration:underline;
}


/* =========================================================
   DASHBOARD V1.09 — APPROVED CORRECTIONS 2026-08-17
   Scope: title hierarchy, task naming/urgency, task links,
   hotel icon treatment, and removal of the stray title "L".
   ========================================================= */

/* Page title — approved desktop size; responsive downshift below desktop. */
.dashboard-title{
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:52px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:-1px !important;
}

/* Remove the non-governing purple L treatment around the page title. */
.dashboard-title-frame{
  padding:0 !important;
}
.dashboard-title-frame::before,
.dashboard-title-frame::after{
  display:none !important;
  content:none !important;
}

/* Major Dashboard section titles — same in light and dark. */
.section-title{
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:40px !important;
  line-height:1 !important;
  font-weight:400 !important;
}

/* Task footer links use the approved interaction color, not muted text. */
html[data-theme="light"] .task-column-footer .quiet-link{
  color:#6D7E8D !important;
}
html[data-theme="light"] .task-column-footer .quiet-link:hover,
html[data-theme="light"] .task-column-footer .quiet-link:focus-visible{
  color:#5C6D7B !important;
}

html[data-theme="dark"] .task-column-footer .quiet-link{
  color:#8EA0AF !important;
}
html[data-theme="dark"] .task-column-footer .quiet-link:hover,
html[data-theme="dark"] .task-column-footer .quiet-link:focus-visible{
  color:#F2F3F5 !important;
}

/* Hotel icon now follows the approved outline icon system. */
.hotel-icon{
  display:flex !important;
  align-items:flex-start !important;
  color:var(--muted) !important;
  font-size:inherit !important;
  line-height:1 !important;
}
.hotel-icon .hero{
  width:22px !important;
  height:22px !important;
  flex:0 0 22px !important;
  stroke:currentColor !important;
}

/* Responsive typography. */
@media(max-width:980px){
  .dashboard-title{
    font-size:44px !important;
  }
  .section-title{
    font-size:36px !important;
  }
}

@media(max-width:600px){
  .dashboard-title{
    font-size:36px !important;
  }
  .section-title{
    font-size:32px !important;
  }
}


/* v1.10 — urgency label alignment correction */
.warning-mark{
  margin-left:auto !important;
  justify-content:flex-end !important;
  text-align:right !important;
}

@media(min-width:821px){
  .warning-mark{
    white-space:nowrap !important;
  }
}


/* =========================================================
   DASHBOARD V1.11 — APPROVED REVIEW PASS 2026-08-17
   ========================================================= */

/* TOP FIVE TASKS outer accent deliberately echoes urgency red. */
.section-card.tasks-section{
  --section-accent:#9A4E54 !important;
}

/* NEXT UP uses an approved cool interaction tone instead of orphan bright blue. */
html[data-theme="light"] .section-card.next-up{
  --section-accent:#6D7E8D !important;
}
html[data-theme="dark"] .section-card.next-up{
  --section-accent:#8EA0AF !important;
}

/* Dashboard text links: branded, prominent, but still quieter than buttons. */
.dashboard-link{
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
  letter-spacing:.5px !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
}

html[data-theme="light"] .dashboard-link,
html[data-theme="dark"] .dashboard-link{
  color:#321F3F !important;
}

html[data-theme="light"] .dashboard-link:hover,
html[data-theme="light"] .dashboard-link:focus-visible,
html[data-theme="dark"] .dashboard-link:hover,
html[data-theme="dark"] .dashboard-link:focus-visible{
  color:#291B33 !important;
  text-decoration:underline !important;
}

/* OPEN SHOW belongs to the event, not below its task stack. */
.next-show-action{
  margin-top:14px;
}

/* Urgency copy remains right-aligned. */
.warning-mark{
  margin-left:auto !important;
  justify-content:flex-end !important;
  text-align:right !important;
}
@media(min-width:821px){
  .warning-mark{
    white-space:nowrap !important;
  }
}

/* Quiet page-level Orbital Arc: branding, not decoration shouting for attention. */
.main{
  position:relative;
  overflow:hidden;
}
.content-shell,
.mobile-bar{
  position:relative;
  z-index:1;
}
.page-orbital-arc{
  position:absolute;
  right:-170px;
  bottom:-155px;
  width:420px;
  height:420px;
  border-radius:50%;
  border:1px solid rgba(50,31,63,.18);
  background:
    radial-gradient(circle at 42% 42%,
      rgba(50,31,63,.075),
      rgba(50,31,63,.035) 34%,
      transparent 66%);
  opacity:.58;
  pointer-events:none;
  z-index:0;
  -webkit-mask-image:linear-gradient(to top,#000 40%,transparent 93%);
  mask-image:linear-gradient(to top,#000 40%,transparent 93%);
}
.page-orbital-arc::before{
  content:"";
  position:absolute;
  inset:54px;
  border-radius:50%;
  border:1px solid rgba(50,31,63,.12);
}
html[data-theme="dark"] .page-orbital-arc{
  border-color:rgba(86,60,92,.34);
  background:
    radial-gradient(circle at 42% 42%,
      rgba(86,60,92,.16),
      rgba(86,60,92,.075) 34%,
      transparent 66%);
  opacity:.56;
}
html[data-theme="dark"] .page-orbital-arc::before{
  border-color:rgba(86,60,92,.24);
}

/* On a full-width phone screen this decorative glow has nowhere to recede
   into -- even scaled down it reads as a stray shadow smear rather than a
   subtle accent, so it's dropped entirely below tablet width instead of
   just shrunk. */
@media(max-width:760px){
  .page-orbital-arc{
    display:none;
  }
}


/* v1.12 — dark-mode Dashboard link color trial */
html[data-theme="dark"] .dashboard-link{
  color:#9B86A6 !important;
}
html[data-theme="dark"] .dashboard-link:hover,
html[data-theme="dark"] .dashboard-link:focus-visible{
  color:#B09ABB !important;
}


/* v1.12 — restrained full-length section accent treatment */
.section-card::before{
  width:1px !important;
  height:100% !important;
}
.section-card::after{
  left:0 !important;
  right:0 !important;
  height:1px !important;
}


/* v1.13 — use the same aubergine-family link color in light mode */
html[data-theme="light"] .dashboard-link{
  color:#9B86A6 !important;
}
html[data-theme="light"] .dashboard-link:hover,
html[data-theme="light"] .dashboard-link:focus-visible{
  color:#B09ABB !important;
}


/* v1.14 — proposed app-wide semantic link token trial */
html[data-theme="light"] .dashboard-link{
  color:#563C5C !important;
}
html[data-theme="light"] .dashboard-link:hover,
html[data-theme="light"] .dashboard-link:focus-visible{
  color:#321F3F !important;
}

html[data-theme="dark"] .dashboard-link{
  color:#A89DAD !important;
}
html[data-theme="dark"] .dashboard-link:hover,
html[data-theme="dark"] .dashboard-link:focus-visible{
  color:#C0B5C4 !important;
}


/* v1.15 — brighter light link / darker + brighter dark link trial */
html[data-theme="light"] .dashboard-link{
  color:#6B4772 !important;
}
html[data-theme="light"] .dashboard-link:hover,
html[data-theme="light"] .dashboard-link:focus-visible{
  color:#563C5C !important;
}

html[data-theme="dark"] .dashboard-link{
  color:#9C7FA7 !important;
}
html[data-theme="dark"] .dashboard-link:hover,
html[data-theme="dark"] .dashboard-link:focus-visible{
  color:#B092BC !important;
}


/* v1.16 — TOP FIVE TASKS stacked horizontal-group trial */
.tasks-section .task-columns{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:28px !important;
}

.tasks-section .task-column{
  padding:0 0 20px 0 !important;
  border-bottom:1px solid color-mix(in srgb,var(--muted) 22%,transparent);
}

.tasks-section .task-column:last-child{
  border-bottom:0 !important;
  padding-bottom:0 !important;
}

/* Remove the former left/right vertical rails inside each task group. */
.tasks-section .task-column::before,
.tasks-section .task-column::after{
  display:none !important;
  content:none !important;
}

/* Full-width group header; urgency stays on the far right. */
.tasks-section .task-column-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  min-height:auto !important;
  margin-bottom:8px !important;
}

/* Let task rows use the full available width. */
.tasks-section .task-action-row{
  width:100% !important;
}

/* Footer links align consistently at the end of each horizontal group. */
.tasks-section .task-column-footer{
  display:flex !important;
  justify-content:flex-end !important;
  margin-top:14px !important;
}

/* Mobile: keep the same stacked reading order, just tighten spacing. */
@media(max-width:600px){
  .tasks-section .task-columns{
    gap:22px !important;
  }

  .tasks-section .task-column{
    padding-bottom:16px !important;
  }

  .tasks-section .task-column-head{
    align-items:flex-start !important;
    gap:10px !important;
    flex-wrap:wrap !important;
  }

  .tasks-section .warning-mark{
    margin-left:0 !important;
    text-align:left !important;
    justify-content:flex-start !important;
    white-space:normal !important;
  }

  .tasks-section .task-column-footer{
    justify-content:flex-start !important;
  }
}


/* v1.17 — task-group links moved above their respective headers */
.tasks-section .task-column-footer{
  display:flex !important;
  justify-content:flex-end !important;
  margin:0 0 10px 0 !important;
}

@media(max-width:600px){
  .tasks-section .task-column-footer{
    justify-content:flex-start !important;
    margin-bottom:8px !important;
  }
}


/* v1.18 — enforce governing app-wide link styling on ALL links */
a,
a:visited{
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:15px !important;
  font-weight:700 !important;
  letter-spacing:.5px !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
}

html[data-theme="light"] a,
html[data-theme="light"] a:visited{
  color:#6B4772 !important;
}

html[data-theme="light"] a:hover,
html[data-theme="light"] a:focus-visible{
  color:#563C5C !important;
  text-decoration:underline !important;
  outline:none !important;
}

html[data-theme="dark"] a,
html[data-theme="dark"] a:visited{
  color:#9C7FA7 !important;
}

html[data-theme="dark"] a:hover,
html[data-theme="dark"] a:focus-visible{
  color:#B092BC !important;
  text-decoration:underline !important;
  outline:none !important;
}


/* v1.19 — task links sit immediately under their respective headings */
.tasks-section .task-column-footer{
  display:flex !important;
  justify-content:flex-start !important;
  margin:0 0 12px 0 !important;
}

@media(max-width:600px){
  .tasks-section .task-column-footer{
    justify-content:flex-start !important;
    margin-bottom:10px !important;
  }
}


/* v1.20 — fix task links: override older higher-specificity quiet-link rules */
html[data-theme="light"] .tasks-section .task-column-footer .quiet-link,
html[data-theme="light"] .tasks-section .task-column-footer .quiet-link:visited{
  color:#2A8FC4 !important;
}

html[data-theme="light"] .tasks-section .task-column-footer .quiet-link:hover,
html[data-theme="light"] .tasks-section .task-column-footer .quiet-link:focus-visible{
  color:#1F7BAE !important;
  text-decoration:underline !important;
}

html[data-theme="dark"] .tasks-section .task-column-footer .quiet-link,
html[data-theme="dark"] .tasks-section .task-column-footer .quiet-link:visited{
  color:#4DB6E8 !important;
}

html[data-theme="dark"] .tasks-section .task-column-footer .quiet-link:hover,
html[data-theme="dark"] .tasks-section .task-column-footer .quiet-link:focus-visible{
  color:#7CCBF0 !important;
  text-decoration:underline !important;
}


/* v1.21 — task links centered on the SAME ROW as their headings */
.tasks-section .task-column-head{
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  align-items:center !important;
  column-gap:18px !important;
  margin-bottom:12px !important;
}

.tasks-section .task-header-link{
  justify-self:center !important;
  min-width:0 !important;
}

.tasks-section .task-header-link .quiet-link{
  white-space:nowrap !important;
}

.tasks-section .task-column.overdue .warning-mark{
  justify-self:end !important;
  margin-left:0 !important;
}

.tasks-section .task-header-spacer{
  width:1px;
  height:1px;
  justify-self:end;
}

/* Mobile: preserve hierarchy without forcing a cramped single line. */
@media(max-width:600px){
  .tasks-section .task-column-head{
    grid-template-columns:1fr !important;
    row-gap:6px !important;
    align-items:start !important;
  }

  .tasks-section .task-header-link{
    justify-self:start !important;
  }

  .tasks-section .task-column.overdue .warning-mark{
    justify-self:start !important;
  }

  .tasks-section .task-header-spacer{
    display:none !important;
  }
}


/* v1.22 — true full-row centering for task header links */
.tasks-section .task-column-head{
  grid-template-columns:1fr auto 1fr !important;
}

.tasks-section .task-column-title{
  justify-self:start !important;
}

.tasks-section .task-header-link{
  justify-self:center !important;
}

.tasks-section .task-column.overdue .warning-mark{
  justify-self:end !important;
}

.tasks-section .task-header-spacer{
  justify-self:end !important;
}


/* =========================================================
   DASHBOARD V1.26 — RESET FROM V1.22
   Keep V1.22 cohesion + border language; reduce noise.
   ========================================================= */

.dashboard-v126{grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);align-items:stretch}
.dashboard-v126 .section-card{min-width:0}
.dashboard-v126 .calm-section-title{
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:24px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  text-transform:none !important;
  margin-bottom:16px !important;
}
.dashboard-v126 .attention-card{--section-accent:#857887}
.dashboard-v126 .this-week-card{--section-accent:#6D7E8D;grid-column:1/-1}
html[data-theme="dark"] .dashboard-v126 .this-week-card{--section-accent:#8EA0AF}

/* Money stays on Dashboard, but without saying At-a-Glance three times. */
.money-summary-label{font-size:15px !important;font-weight:650 !important;line-height:1.35 !important}
.money-summary-value{font-family:"Google Sans Flex",Arial,sans-serif !important;font-size:28px !important;font-weight:700 !important;line-height:1 !important}

/* Compact event identity: image + all identity facts stay together. */
.weekend-identity{display:grid;grid-template-columns:minmax(180px,36%) minmax(0,1fr);gap:18px;align-items:stretch}
.event-photo-wrap{position:relative;margin:0;min-height:190px;border-radius:14px;overflow:hidden;background:var(--line)}
.event-photo{display:block;width:100%;height:100%;min-height:190px;object-fit:cover}
.event-photo-caption{position:absolute;left:10px;bottom:9px;padding:5px 9px;border-radius:999px;background:rgba(15,16,18,.72);color:#F2F3F5;font:650 13px/1 "Google Sans Flex",Arial,sans-serif;backdrop-filter:blur(8px)}
.event-photo-credit{position:absolute;right:8px;bottom:8px;padding:2px 7px;border-radius:999px;background:rgba(15,16,18,.55);color:rgba(242,243,245,.85);font:500 10px/1.4 "Google Sans Flex",Arial,sans-serif;backdrop-filter:blur(6px)}
.event-photo-disclaimer{position:absolute;top:0;left:0;right:0;height:20%;min-height:20px;display:flex;align-items:center;justify-content:center;text-align:center;padding:3px 6px;background:rgba(0,0,0,.72);color:#fff;font:600 9px/1.2 "Google Sans Flex",Arial,sans-serif;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-now-copy{display:flex;flex-direction:column;justify-content:center;gap:8px;min-width:0}
.event-title-v126{margin:0 !important;font-family:"Google Sans Flex",Arial,sans-serif !important;font-size:24px !important;font-weight:700 !important;line-height:1.2 !important;text-transform:none !important}
.event-date-location{font:500 18px/1.25 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.event-fact-row{display:flex;flex-wrap:wrap;gap:7px 18px;color:var(--muted);font:400 15px/1.48 "Google Sans Flex",Arial,sans-serif}
.event-fact-row strong{color:var(--text);font-weight:500}
.event-fact-secondary{margin-top:-2px}
.event-inline-action{align-self:flex-start;margin-top:3px}

/* Weather remains event-specific and visually compact. */
.weather-strip{margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--muted) 24%,transparent)}
.weather-strip-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}
#weatherDays{margin-top:2px}
.weather-label{font:700 18px/1.25 "Google Sans Flex",Arial,sans-serif}
.weather-location{font:650 15px/1.35 "Google Sans Flex",Arial,sans-serif;color:var(--muted)}
.weather-day-name{font:650 15px/1.35 "Google Sans Flex",Arial,sans-serif;color:var(--muted)}
.weather-icon{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.weather-hilo{font:500 18px/1.25 "Google Sans Flex",Arial,sans-serif;white-space:nowrap}
.weather-stat{font:400 15px/1.48 "Google Sans Flex",Arial,sans-serif;color:var(--muted);white-space:nowrap}
.weather-descriptor-note{font:400 14px/1.45 "Google Sans Flex",Arial,sans-serif;color:var(--muted);padding:8px 0 4px;white-space:normal}
.weather-fallback-note{padding:10px 0;font-style:italic}

/* Needs Your Attention: no accordions, no far-edge mystery actions. */
.attention-list{display:grid;gap:0;border-top:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}
.attention-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}
.attention-icon{width:34px;height:34px;border:1px solid color-mix(in srgb,var(--muted) 38%,transparent);border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.attention-icon .hero{width:20px;height:20px;flex-basis:20px}
.overdue-attention .attention-icon{color:#9A4E54;border-color:color-mix(in srgb,#9A4E54 60%,transparent)}
html[data-theme="dark"] .overdue-attention .attention-icon{color:#E5A0A6;border-color:color-mix(in srgb,#E5A0A6 60%,transparent)}
.attention-copy{min-width:0}
.attention-title{font:700 18px/1.25 "Google Sans Flex",Arial,sans-serif}
.attention-meta{margin-top:3px;color:var(--muted);font:400 15px/1.48 "Google Sans Flex",Arial,sans-serif}
.attention-action{margin-top:8px}

/* This Week: one quiet card, three immediate actions. */
.this-week-heading-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.this-week-heading-row .calm-section-title{margin:0 !important}
.this-week-link{margin-left:0}
.this-week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}
.week-task{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:15px 16px 14px 0;border-right:1px solid color-mix(in srgb,var(--muted) 18%,transparent);cursor:pointer}
.week-task + .week-task{padding-left:16px}
.week-task:last-child{border-right:0;padding-right:0}
.week-task .task-name{font-size:15px;font-weight:500;line-height:1.35}
.week-task .task-context{font-size:15px;font-weight:400;line-height:1.48;color:var(--muted);margin-top:3px}

/* Link token from approved style guide. */
html[data-theme="light"] .dashboard-v126 .quiet-link{color:#6B4772 !important;font-size:15px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
html[data-theme="light"] .dashboard-v126 .quiet-link:hover,html[data-theme="light"] .dashboard-v126 .quiet-link:focus-visible{color:#563C5C !important}
html[data-theme="dark"] .dashboard-v126 .quiet-link{color:#9C7FA7 !important;font-size:15px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
html[data-theme="dark"] .dashboard-v126 .quiet-link:hover,html[data-theme="dark"] .dashboard-v126 .quiet-link:focus-visible{color:#B092BC !important}

/* Explicitly kill the redundant warning phrase from V1.22. */
.warning-mark{display:none !important}

@media(max-width:1040px){
  .dashboard-v126{grid-template-columns:1fr}
  .dashboard-v126 .this-week-card{grid-column:auto}
}
@media(max-width:720px){
  .weekend-identity{grid-template-columns:1fr;gap:14px}
  .event-photo-wrap,.event-photo{min-height:180px;max-height:220px}
  .this-week-grid{grid-template-columns:1fr}
  .week-task,.week-task + .week-task{padding:13px 0;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}
  .week-task:last-child{border-bottom:0}
}


/* =========================================================
   DASHBOARD V1.27 — QUIETER MARKERS + MONEY PULSE + MORALE
   ========================================================= */

.money-pulse{
  position:relative;
  overflow:hidden;
  display:grid !important;
  grid-template-columns:190px minmax(0,1fr) !important;
  align-items:stretch;
  gap:0 !important;
  padding:0 !important;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
}
.money-pulse-heading{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:18px 20px;
  border-right:1px solid color-mix(in srgb,var(--muted) 20%,transparent);
}
.money-pulse-title{
  font:700 18px/1.25 "Google Sans Flex",Arial,sans-serif;
}
.money-pulse-meta{
  margin-top:18px;
  color:var(--muted);
  font:650 15px/1.35 "Google Sans Flex",Arial,sans-serif;
}
.money-pulse-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.money-zone{
  min-width:0;
  padding:18px 22px;
  text-decoration:none;
  color:inherit;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:12px;
  border-right:1px solid color-mix(in srgb,var(--muted) 20%,transparent);
  transition:background .22s ease,transform .22s ease;
}
.money-zone:last-child{border-right:0}
.money-zone:hover,.money-zone:focus-visible{
  background:color-mix(in srgb,var(--surface-2) 68%,transparent);
  outline:none;
}
.money-zone .money-summary-label{color:var(--muted)}
.money-zone .money-summary-value{color:var(--text)}
.money-zone-net .money-summary-value{font-weight:700}
.money-orbit{
  right:-38px !important;
  bottom:-52px !important;
  width:150px !important;
  height:150px !important;
  opacity:.10 !important;
}

.marker-strip-card{
  grid-column:1/-1;
  --section-accent:#75697A;
}
.marker-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.marker-tile{
  position:relative;
  overflow:hidden;
  min-height:150px;
  padding:18px 20px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto 1fr auto;
  align-items:end;
}
.marker-label-link{
  grid-column:1;
  grid-row:1;
  justify-self:start;
  color:var(--text);
  text-decoration:none;
  font:700 15px/1.2 "Google Sans Flex",Arial,sans-serif;
  letter-spacing:.35px;
  text-transform:uppercase;
}
.marker-label-link:hover,.marker-label-link:focus-visible{text-decoration:underline;text-underline-offset:3px}
.marker-bottomline{
  grid-column:1;
  grid-row:3;
  align-self:end;
  max-width:76%;
  color:var(--muted);
  font:500 15px/1.35 "Google Sans Flex",Arial,sans-serif;
}
.marker-number-link{
  position:relative;
  z-index:3;
  grid-column:2;
  grid-row:2/4;
  align-self:end;
  justify-self:end;
  color:var(--text);
  text-decoration:none;
  font:700 46px/1 "Google Sans Flex",Arial,sans-serif;
  transition:transform .22s ease;
}
.marker-number-link:hover,.marker-number-link:focus-visible{
  transform:translateY(-2px);
  outline:none;
}
.orbital-arc{
  position:absolute;
  right:-24px;
  bottom:-34px;
  width:110px;
  height:110px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  opacity:.12;
  pointer-events:none;
}
.marker-applications{border-bottom:3px solid #857887}
.marker-payments{border-bottom:3px solid #6D7E8D}
.marker-overdue{border-bottom:3px solid #9A4E54}
html[data-theme="dark"] .marker-overdue{border-bottom-color:#C7868C}

.morale-card{
  grid-column:1/-1;
  --section-accent:#8D7890;
}
.morale-inner{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:20px;
  align-items:center;
}
.morale-kicker{
  color:var(--muted);
  font:700 15px/1.2 "Google Sans Flex",Arial,sans-serif;
  letter-spacing:.35px;
  text-transform:uppercase;
}
.morale-content-row{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.morale-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--muted) 34%,transparent);
  color:var(--muted);
}
.morale-icon .hero{width:21px;height:21px}
.morale-copy{min-width:0}
.morale-line{
  font:500 18px/1.4 "Google Sans Flex",Arial,sans-serif;
  letter-spacing:-.1px;
}

@media(max-width:860px){
  .money-pulse{grid-template-columns:1fr !important}
  .money-pulse-heading{
    border-right:0;
    border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);
    flex-direction:row;
    align-items:center;
  }
  .money-pulse-meta{margin-top:0}
  .marker-grid{grid-template-columns:1fr}
  .marker-tile{min-height:130px}
  .morale-inner{grid-template-columns:1fr;gap:10px}
}
@media(max-width:620px){
  .money-pulse-grid{grid-template-columns:1fr}
  .money-zone{
    border-right:0;
    border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);
  }
  .money-zone:last-child{border-bottom:0}
}



/* =========================================================
   DASHBOARD V1.29 — SCOPED CORRECTION ONLY
   Governing style guide values enforced; approved shell preserved.
   ========================================================= */

/* Restore approved sidebar orbital arc by avoiding any dashboard reuse of .orbital-arc. */
.marker-orbit{
  position:absolute;
  right:-24px;
  bottom:-34px;
  width:110px;
  height:110px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  opacity:.12;
  pointer-events:none;
}

/* Top composition: approved Next Event on Deck left; money + quip share the right zone. */
.dashboard-v126{
  grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr) !important;
  gap:20px !important;
  align-items:start !important;
}
.dashboard-aside{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  min-width:0;
}

/* Consistent Dashboard border grammar: neutral perimeter + bottom accent only. */
.dashboard-v126 .weekend-card,
.money-compact-card,
.morale-quip-card,
.marker-tile{
  border:1px solid var(--line) !important;
  border-bottom-width:3px !important;
}
.dashboard-v126 .weekend-card::before,
.money-compact-card::before,
.morale-quip-card::before{display:none !important}
.dashboard-v126 .weekend-card::after,
.money-compact-card::after,
.morale-quip-card::after{display:none !important}
.dashboard-v126 .weekend-card{border-bottom-color:var(--section-accent) !important}
.money-compact-card{border-bottom-color:#75697A !important}
.morale-quip-card{border-bottom-color:#8D7890 !important}

/* Money — compact, left justified, exact style-guide hierarchy. */
.money-compact-card{
  position:relative;
  overflow:hidden;
  display:block !important;
  padding:22px 24px 20px !important;
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 10px 28px rgba(0,0,0,.08);
}
.money-compact-heading{
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  gap:14px;
  margin-bottom:18px;
  text-align:left;
}
.money-compact-title{
  margin:0;
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:24px;
  font-weight:700;
  line-height:1.2;
  color:var(--text);
}
.money-compact-meta{
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:15px;
  font-weight:650;
  line-height:1.35;
  color:var(--muted);
}
.money-compact-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
}
.money-compact-zone{
  min-width:0;
  padding:0 18px;
  border-left:1px solid color-mix(in srgb,var(--muted) 20%,transparent);
  text-align:left;
}
.money-compact-zone:first-child{padding-left:0;border-left:0}
.money-compact-zone:last-child{padding-right:0}
.money-compact-label,
.money-compact-value{
  display:block;
  width:max-content;
  max-width:100%;
  text-decoration:none;
  text-align:left;
}
.money-compact-label{
  color:var(--muted);
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:15px;
  font-weight:650;
  line-height:1.35;
}
.money-compact-value{
  margin-top:8px;
  color:var(--text);
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:28px;
  font-weight:700;
  line-height:1;
}
.money-compact-label:hover,.money-compact-label:focus-visible,
.money-compact-value:hover,.money-compact-value:focus-visible{
  text-decoration:underline;
  text-underline-offset:3px;
  outline:none;
}

/* Morale: internal component name is not customer-facing. Just the quip. */
.morale-quip-card{
  min-width:0;
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 10px 28px rgba(0,0,0,.08);
}
.morale-quip-inner{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  min-height:78px;
  padding:18px 22px;
  text-align:left;
}
.morale-quip-card .morale-icon{
  width:36px;
  height:36px;
  flex:0 0 36px;
}
.morale-quip-card .morale-icon .hero{width:20px;height:20px}
.morale-quip-card .morale-line{
  margin:0;
  color:var(--text);
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:18px;
  font-weight:500;
  line-height:1.25;
  text-align:left;
}

/* Needs Your Attention: NO outer/double border; individual tiles carry the treatment. */
.dashboard-v126 .marker-strip-card{
  grid-column:1/-1 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.dashboard-v126 .marker-strip-card::before,
.dashboard-v126 .marker-strip-card::after{display:none !important}
.dashboard-v126 .marker-strip-card > .section-inner{padding:0 !important}
.dashboard-v126 .marker-strip-card .calm-section-title{
  margin:0 0 16px !important;
  font-family:"Google Sans Flex",Arial,sans-serif !important;
  font-size:24px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
}
.marker-tile{
  min-height:150px;
  border-radius:16px;
}
.marker-label-link{
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1 !important;
}
.marker-bottomline{
  font-size:15px !important;
  font-weight:500 !important;
  line-height:1.48 !important;
}
.marker-number-link{
  font-size:28px !important;
  font-weight:700 !important;
  line-height:1 !important;
}
.marker-applications{border-bottom-color:#857887 !important}
.marker-payments{border-bottom-color:#6D7E8D !important}
.marker-overdue{border-bottom-color:#9A4E54 !important}
html[data-theme="dark"] .marker-overdue{border-bottom-color:#C7868C !important}

@media(max-width:1040px){
  .dashboard-v126{grid-template-columns:1fr !important}
  .dashboard-aside{grid-template-columns:1fr !important}
}
@media(max-width:620px){
  .money-compact-grid{grid-template-columns:1fr;gap:14px}
  .money-compact-zone,
  .money-compact-zone:first-child,
  .money-compact-zone:last-child{
    padding:0;
    border-left:0;
  }
  .money-compact-heading{align-items:flex-start;flex-direction:column;gap:4px}
}


/* =========================================================
   APPROVED APPLICATION CANVAS ATMOSPHERE — 8/18/26
   Exact GetYST three-radial treatment.
   ========================================================= */
/* Restored 2026-09-27: a prior session removed this entirely, blaming it
   for a persistent right-edge shadow on real iOS devices -- but that
   removal never actually confirmed the atmosphere gradient WAS the cause
   (the shadow reportedly persisted even after flattening it under the
   mobile media query below, which in hindsight was a sign this wasn't
   the real culprit). The actual cause, found and fixed properly the
   following night, was box-shadow bleeding from closed off-canvas
   drawers (see .side-peek/.myshows-drawer/etc. .open-state box-shadow
   fix) -- a bug present regardless of this gradient's existence. Safe
   to restore now that the real fix is verified live. */
html[data-theme="dark"] .main{
  background:
    radial-gradient(circle at 20% 24%, rgba(118,89,168,.28), transparent 26%),
    radial-gradient(circle at 80% 24%, rgba(135,169,141,.22), transparent 30%),
    radial-gradient(circle at 66% 78%, rgba(109,126,141,.18), transparent 26%),
    linear-gradient(135deg,
      color-mix(in srgb, var(--surface) 86%, #7659A8 14%),
      var(--surface)
    );
  background-attachment:fixed;
}
html[data-theme="light"] .main{
  background:
    radial-gradient(circle at 20% 24%, rgba(118,89,168,.15), transparent 38%),
    radial-gradient(circle at 80% 24%, rgba(135,169,141,.13), transparent 42%),
    radial-gradient(circle at 66% 78%, rgba(109,126,141,.10), transparent 38%),
    linear-gradient(135deg,
      color-mix(in srgb, var(--surface) 89%, #7659A8 11%),
      var(--surface)
    );
  background-attachment:fixed;
}
/* The three-radial "atmosphere" treatment above uses background-attachment:
   fixed with percentage-anchored blooms sized for a wide desktop viewport.
   On a narrow, tall phone screen that same math compresses the 135deg base
   gradient's light-to-dark run into a much shorter span, so it reads as a
   dark diagonal shadow sweeping the screen rather than a subtle wash --
   confirmed via direct inspection at 375px width, not just visually.
   Flatten to the plain surface color below tablet width instead of trying
   to rescale gradient math that was never meant to compress this far. */
@media(max-width:760px){
  html[data-theme="dark"] .main,
  html[data-theme="light"] .main{
    background:var(--surface);
    background-attachment:scroll;
  }
}

/* =========================================================
   ADDED FOR PRODUCTION — not part of the approved comp.
   The comp only ever had one static Dashboard view; production needs
   the other nav destinations to show an honest "coming next" state
   instead of the Dashboard content staying visible underneath.
   ========================================================= */
.view{display:none}
.view.is-active{display:block}
.placeholder{padding:40px 0;color:var(--muted);font-size:15px;line-height:1.5}
.placeholder h2{font-family:"Google Sans Flex",Arial,sans-serif;font-size:28px;font-weight:400;color:var(--text);margin:0 0 8px}

.login-screen{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px 28px;text-align:center}
.login-logo{height:28px;width:auto;margin:0 auto 24px;display:block}
.login-card h1{font-family:"Google Sans Flex",Arial,sans-serif;font-size:24px;font-weight:400;color:var(--text);margin:0 0 8px}
.login-subtitle{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 22px}
.login-form{display:flex;flex-direction:column;gap:10px}
.login-form label{text-align:left;font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.login-form input{padding:11px 13px;border-radius:8px;border:1px solid var(--line);background:var(--page);color:var(--text);font-size:15px}
.login-form button{margin-top:6px;padding:11px 16px;border-radius:8px;border:none;background:#7C5CFF;color:#fff;font-size:15px;font-weight:600;cursor:pointer}
.login-form button:disabled{opacity:.6;cursor:default}
.login-note{margin:16px 0 0;font-size:13px;color:var(--muted);line-height:1.4}
.event-photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--line);color:var(--muted)}
.event-photo-placeholder .hero{width:32px;height:32px}
.weather-location--muted{opacity:.7}
.index-card-empty-v133{padding:10px 2px;color:var(--muted);font-size:15px;line-height:1.4}

/* =========================================================
   CONTACTS — ported from getyst-CONTACTS-v3.47.html (approved comp)
   Full cascade preserved in authored order, same approach as Dashboard.
   ========================================================= */

.contacts-screen{display:grid;gap:18px}
.contacts-screen .page-title{font-size:36px;font-weight:700}
.contacts-topline{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.contacts-search{
  flex:1 1 420px;min-height:48px;display:flex;align-items:center;gap:10px;
  padding:0 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  box-shadow:0 10px 26px rgba(0,0,0,.045)
}
.contacts-search svg{width:20px;height:20px;flex:0 0 20px;color:var(--muted)}
.contacts-search input{
  width:100%;border:0;outline:0;background:transparent;color:var(--text);
  font:500 15px/1.35 "Google Sans Flex",Arial,sans-serif
}
.contacts-search input::placeholder{color:var(--muted)}
.filter-button,.quiet-button{
  min-height:48px;padding:0 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  color:var(--text);display:inline-flex;align-items:center;gap:8px;font:700 15px/1 "Google Sans Flex",Arial,sans-serif;
  cursor:pointer;transition:background var(--transition),transform var(--transition),border-color var(--transition)
}
.filter-button:hover,.quiet-button:hover{transform:translateY(-1px)}
.filter-button .hero,.quiet-button .hero{width:19px;height:19px;flex-basis:19px}
.contacts-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:15px;line-height:1.35}
.contacts-meta b{color:var(--text);font-weight:700}

.rolodex-wrap{position:relative}
.rolodex-stack{display:grid;gap:12px;perspective:1100px}
.contact-card{
  position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(210px,.8fr) auto;
  gap:18px;align-items:center;min-height:112px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;
  background:var(--surface);transform-origin:50% 0%;will-change:transform;cursor:pointer;
  box-shadow:0 12px 28px rgba(0,0,0,.045);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition),transform 120ms linear
}
.contact-card:hover{border-color:color-mix(in srgb,var(--line) 45%,#7659A8);box-shadow:0 18px 38px rgba(0,0,0,.075)}
.contact-card::after{content:"";position:absolute;right:0;top:17px;bottom:17px;width:3px;border-radius:3px 0 0 3px;background:#7659A8;opacity:.82}
.contact-identity{min-width:0;display:grid;gap:5px}
.contact-name{font-size:18px;line-height:1.25;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contact-company{font-size:15px;line-height:1.35;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contact-type{font-size:15px;line-height:1.35;color:#7E9F8B;font-weight:700}
html[data-theme="dark"] .contact-type{color:#B9A7E0}
.contact-channel{display:grid;gap:7px;min-width:0}
.channel-line{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--muted);min-width:0}
.channel-line svg{width:18px;height:18px;flex:0 0 18px;color:var(--muted)}
.channel-line span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contact-tags{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface) 90%,var(--page));color:var(--muted);font-size:15px;font-weight:600;white-space:nowrap}
.contact-open{display:grid;place-items:center;width:36px;height:36px;border:0;background:transparent;color:var(--muted);border-radius:10px}
.contact-card:hover .contact-open{color:var(--text);background:color-mix(in srgb,var(--surface) 82%,var(--page))}

.alpha-rail{position:absolute;right:-26px;top:8px;display:grid;gap:2px;justify-items:center;color:var(--muted);font-size:11px;font-weight:700;line-height:1}
.alpha-rail button{border:0;background:transparent;color:inherit;font:inherit;padding:2px 3px;cursor:pointer;opacity:.62}
.alpha-rail button:hover{opacity:1;color:var(--text)}

/* Side Peek — deliberately light-touch for this first screen comp */
.side-peek-backdrop{position:fixed;inset:0;background:rgba(15,10,18,.24);opacity:0;pointer-events:none;transition:opacity 180ms ease;z-index:70}
.side-peek-backdrop.open{opacity:1;pointer-events:auto}
.side-peek{
  position:fixed;right:0;top:0;height:100vh;height:100dvh;width:min(430px,92vw);z-index:75;background:var(--surface);color:var(--text);
  border-left:1px solid var(--line);transform:translateX(102%);transition:transform 220ms cubic-bezier(.2,.75,.2,1);
  display:flex;flex-direction:column
}
/* box-shadow lives only in the open state -- on the base rule its 70px
   blur radius bled a constant, window-size-independent shadow band onto
   the visible page even while "closed" (translateX only clears the box
   itself, not a shadow that extends well past its edge). Same fix
   applied to every off-canvas drawer/peek below. */
.side-peek.open{transform:translateX(0);box-shadow:-28px 0 70px rgba(0,0,0,.22);}
.peek-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 22px 16px;border-bottom:1px solid var(--line)}
.peek-close{width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--text);display:grid;place-items:center;cursor:pointer}
.peek-close:hover{background:var(--page)}
.peek-body{padding:22px;overflow:auto;display:grid;gap:22px}
.peek-kicker{font-size:15px;font-weight:700;color:#7E9F8B;letter-spacing:.05em;text-transform:uppercase}
html[data-theme="dark"] .peek-kicker{color:#7E9F8B}
.peek-name{font-size:24px;line-height:1.15;font-weight:700;margin:4px 0 0}
.peek-company{font-size:15px;color:var(--muted);margin-top:5px}
.peek-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.peek-actions button{min-height:44px;border:1px solid var(--line);border-radius:13px;background:var(--page);color:var(--text);font:700 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.peek-actions button:hover{transform:translateY(-1px)}
.peek-actions .share-contact{grid-column:1/-1;background:#321F3F;color:#F2F3F5;border-color:rgba(96,72,111,.54);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 22px rgba(50,31,63,.16)}
.peek-section{display:grid;gap:10px}
.peek-label{font-size:15px;font-weight:700;color:var(--text)}
.peek-detail{font-size:15px;line-height:1.45;color:var(--muted)}
.related-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.related-row:last-child{border-bottom:0}
.related-row b{font-size:15px}
.related-row span{color:var(--muted)}

/* Add Contact demo */
.contact-dialog{border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);padding:0;width:min(520px,calc(100vw - 28px));box-shadow:0 28px 80px rgba(0,0,0,.28)}
.contact-dialog::backdrop{background:rgba(15,10,18,.36);backdrop-filter:blur(2px)}
.dialog-head{padding:20px 20px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.dialog-head h2{font-size:18px;margin:0}
.dialog-body{padding:20px;display:grid;gap:12px}
.dialog-option{width:100%;min-height:52px;border:1px solid var(--line);border-radius:14px;background:var(--page);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 15px;font:700 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.dialog-option small{font-size:13px;color:var(--muted);font-weight:500}
.dialog-option[hidden]{display:none}

@media(max-width:1120px){.alpha-rail{display:none}}
@media(max-width:760px){
  .contacts-topline{display:grid;grid-template-columns:1fr auto}
  .contacts-search{grid-column:1/-1;min-width:0;flex-basis:auto}
  .contacts-meta{align-items:flex-start}
  .contact-card{grid-template-columns:1fr auto;gap:12px;min-height:0;padding:18px}
  .contact-channel{grid-column:1/-1}
  .contact-tags{grid-column:1/-1;justify-content:flex-start}
  .contact-open{grid-column:2;grid-row:1}
}
@media(max-width:520px){
  .contacts-topline{grid-template-columns:1fr}
  .filter-button{width:100%;justify-content:center}
  .contact-card{display:grid;grid-template-columns:1fr auto}
  .contact-tags .tag:nth-child(n+3){display:none}
  .peek-actions{grid-template-columns:1fr}
  .peek-actions .share-contact{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){.contact-card{transform:none!important}.side-peek{transition:none}.side-peek-backdrop{transition:none}}


/* CONTACTS V2 REVIEW REFINEMENTS */
.contacts-meta{display:flex;align-items:center;justify-content:flex-start;gap:12px;color:var(--muted);font-size:15px;line-height:1.35}
.contacts-meta b{color:var(--text);font-weight:700}
.alpha-strip{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:2px 0 8px;border-bottom:1px solid var(--line)}
.alpha-strip button{min-width:30px;height:32px;padding:0 8px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:700 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;transition:background var(--transition),color var(--transition),transform var(--transition)}
.alpha-strip button:hover,.alpha-strip button.active{background:var(--surface);color:var(--text);transform:translateY(-1px)}
.contact-card[hidden]{display:none!important}
.contact-card{grid-template-columns:minmax(240px,1.05fr) minmax(255px,.9fr) auto;transform-origin:50% 0%;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition),transform 140ms ease,opacity 140ms ease}
.contact-identity{min-width:0;display:grid;gap:4px}
.contact-name{font-size:18px;line-height:1.25;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contact-company{font-size:15px;line-height:1.35;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contact-type{font-size:15px;line-height:1.35;color:#7659A8;font-weight:650;letter-spacing:.015em}
html[data-theme="dark"] .contact-type{color:#B9A7E0}
.contact-channel{display:grid;gap:7px;min-width:0;justify-self:start;width:min(100%,330px)}
.contact-open{justify-self:end}
.contact-card.rolodex-near{transform:rotateX(-3.3deg) translateY(-2px);box-shadow:0 20px 44px rgba(0,0,0,.085);border-color:color-mix(in srgb,var(--line) 62%,#7659A8)}
.contact-card.rolodex-before{transform:rotateX(2.2deg) translateY(1px);opacity:.97}
.contact-card.rolodex-after{transform:rotateX(-1.7deg) translateY(1px);opacity:.985}
.log-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.log-add{min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--page);color:var(--text);font:700 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.log-list{display:grid;gap:0;border-top:1px solid var(--line)}
/* Scoped to .log-list (not just .log-item) so this beats several
   unrelated, leftover .log-item{grid-template-columns:...} rules
   elsewhere in this file (from a different, unrelated log/activity
   design that happens to reuse the same class name) regardless of
   their position in the cascade -- discovered live: those rules were
   silently squeezing this feature's edit-mode select/textarea to
   about a third of the row's width. */
.log-list .log-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.log-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--page);color:#7659A8}
html[data-theme="dark"] .log-icon{color:#B9A7E0}
.log-icon .hero{width:17px;height:17px;flex-basis:17px}
.log-title{font-size:15px;font-weight:700;color:var(--text);line-height:1.3}
.log-meta{font-size:13px;color:var(--muted);line-height:1.35;margin-top:2px}
.log-note{font-size:15px;color:var(--muted);line-height:1.45;margin-top:6px}
.log-state{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}
.log-state.editable{color:#7659A8}
.log-item-actions{display:flex;gap:14px;margin-top:8px}
.log-item-edit,.log-item-delete{background:none;border:0;padding:0;font:600 13px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;color:var(--app-link,#7659A8)}
.log-item-edit:hover,.log-item-delete:hover{text-decoration:underline}
.log-item-delete{color:#C0656B}
.log-edit-type,.log-edit-summary{margin-top:8px;width:100%}
.log-edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
/* Same "saved" language as flashField elsewhere (a border/background pulse
   that fades), applied to the whole row instead of a text badge -- nothing
   else in the row shifts position when this appears or clears. */
.log-item.log-item-just-saved{
  background:color-mix(in srgb,#4D9A75 10%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,#4D9A75 45%,transparent);
  border-radius:10px;
  transition:background .5s ease,box-shadow .5s ease;
}
html[data-theme="dark"] .log-state.editable{color:#7E9F8B}
.record-note{font-size:15px;line-height:1.45;color:var(--muted);padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--page)}
@media(max-width:760px){.alpha-strip{overflow:auto;flex-wrap:nowrap;padding-bottom:8px}.alpha-strip button{flex:0 0 auto}.contact-card{grid-template-columns:1fr auto}.contact-channel{grid-column:1/-1;width:100%;justify-self:stretch}}
@media(max-width:520px){.log-list .log-item{grid-template-columns:32px 1fr}.log-state{grid-column:2}}
@media(prefers-reduced-motion:reduce){.contact-card,.contact-card.rolodex-near,.contact-card.rolodex-before,.contact-card.rolodex-after{transform:none!important;opacity:1!important}}


/* CONTACTS V3 — APPROVED REVIEW DIRECTION */
.page-actions{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;flex:0 0 auto;justify-content:flex-end}
/* CONTEXTUAL NAV ACTIONS — authoritative */
.nav-actions{
  display:none;
  margin:6px 0 10px 22px;
  padding:3px 0 3px 17px;
  border-left:1px solid rgba(222,215,227,.22);
  gap:4px;
}
.nav-actions.active{display:grid}
.nav-subaction{
  appearance:none;
  border:0;
  position:relative;
  background:transparent;
  color:rgba(242,243,245,.74);
  text-align:left;
  min-height:36px;
  padding:5px 8px 5px 18px;
  border-radius:7px;
  font:600 16px/1.25 "Google Sans Flex",Arial,sans-serif;
  cursor:pointer;
  white-space:nowrap;
  transition:background var(--transition),color var(--transition);
}
.nav-subaction::before{
  content:"·";
  position:absolute;
  left:4px;
  top:50%;
  transform:translateY(-52%);
  color:rgba(222,215,227,.72);
  font-size:20px;
  font-weight:700;
  line-height:1;
}
.nav-subaction:hover,
.nav-subaction:focus-visible{
  background:rgba(255,255,255,.07);
  color:var(--linen);
  outline:none;
}
@media(max-width:820px){
  .nav-actions{margin-left:22px;padding-left:17px}
  .nav-subaction{font-size:16px;min-height:38px}
}
.log-item{grid-template-columns:58px minmax(0,1fr) auto}
.log-method{display:flex;align-items:center;justify-content:center;gap:6px;min-height:76px;color:#7E9F8B}
.log-method span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:13px;font-weight:700;letter-spacing:.08em;line-height:1;color:#7E9F8B}
.log-method .log-icon,.log-icon{color:#7E9F8B}
html[data-theme="dark"] .log-method,html[data-theme="dark"] .log-method span,html[data-theme="dark"] .log-icon{color:#7E9F8B}
.related-link{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif}
.related-link:hover{background:color-mix(in srgb,var(--surface) 82%,var(--page))}
@media(max-width:600px){.page-actions{display:grid;grid-template-columns:1fr;width:100%}.page-actions .quiet-button,.page-actions .glass-action,.page-actions .gallery-toolbar-button{width:100%}}


.activity-search{width:100%}
.activity-results{display:grid;gap:8px}
.activity-result{
  width:100%;min-height:52px;border:1px solid var(--line);border-radius:13px;
  background:var(--page);color:var(--text);padding:10px 13px;text-align:left;
  cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif
}
.activity-result:hover{border-color:color-mix(in srgb,var(--line) 45%,#7659A8)}
.activity-result strong{display:block;font-size:15px;line-height:1.25}
.activity-result span{display:block;color:var(--muted);font-size:13px;line-height:1.3;margin-top:3px}
.activity-empty{padding:10px 2px;color:var(--muted);font-size:15px}
.field-label{display:grid;gap:6px;font-size:15px;font-weight:700;color:var(--text)}
.form-input{
  width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;
  background:var(--page);color:var(--text);padding:0 12px;
  font:500 15px/1.35 "Google Sans Flex",Arial,sans-serif;outline:0
}
.form-input:focus{border-color:#7659A8}


.activity-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.activity-type-grid[hidden]{display:none}
.activity-type-option{justify-content:flex-start}
.activity-type-option.is-selected{border-color:#7659A8;background:rgba(118,89,168,.16)}
.other-activity-wrap,.activity-form-wrap{display:grid;gap:12px}
.other-activity-wrap[hidden],.activity-form-wrap[hidden]{display:none}
.selected-activity{
  font-size:15px;font-weight:700;color:#7E9F8B;
  padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--page)
}
.activity-notes{min-height:110px;padding:12px;resize:vertical}
#peekTags{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px 12px;
  align-items:start;
}
#peekTags .tag{
  width:100%;
  justify-content:flex-start;
  text-align:left;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:520px){
  .activity-type-grid{grid-template-columns:1fr}
  #peekTags{grid-template-columns:1fr 1fr}
}


.page-actions .glass-action{min-width:0}
.log-method{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:76px;
  color:#7E9F8B;
}
.log-method span{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  color:#7E9F8B;
}
html[data-theme="dark"] .log-method,
html[data-theme="dark"] .log-method span{color:#7E9F8B}


.form-input,
.form-input:focus,
.form-input:active{
  background:var(--page);
  color:var(--text);
}
.form-input:-webkit-autofill,
.form-input:-webkit-autofill:hover,
.form-input:-webkit-autofill:focus,
.form-input:-webkit-autofill:active{
  -webkit-text-fill-color:var(--text)!important;
  -webkit-box-shadow:0 0 0 1000px var(--page) inset!important;
  box-shadow:0 0 0 1000px var(--page) inset!important;
  transition:background-color 9999s ease-out 0s;
}


.log-item{
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:6px;
}
.log-method{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  min-height:76px;
  padding-top:2px;
  color:#7E9F8B;
}
.log-method span{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  color:#7E9F8B;
  text-align:left;
}
.log-state{
  display:grid;
  justify-items:end;
  align-content:start;
  gap:1px;
  white-space:normal;
  line-height:1.05;
}
.log-state .state-line,
.log-state .time-line{
  display:block;
}
@media(max-width:520px){
  .log-item{grid-template-columns:36px minmax(0,1fr)}
  .log-state{grid-column:2;justify-items:start}
}


.log-item{
  grid-template-columns:30px minmax(0,1fr) auto;
  column-gap:3px;
}
.log-method{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:76px;
  padding:0;
  color:#7E9F8B;
}
.log-method span{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  color:#7E9F8B;
  text-align:left;
}
@media(max-width:520px){
  .log-item{grid-template-columns:28px minmax(0,1fr)}
}


#peekTags .tag{
  font-size:15px;
  font-weight:300;
}


.peek-section{
  position:relative;
  padding-top:18px;
}
.peek-section + .peek-section{
  border-top:1px solid #B9A7E0;
}


.peek-section{
  padding-top:0;
  border-top:0;
}
.peek-section + .peek-section{
  border-top:0;
}
.peek-section .peek-label{
  color:#7E9F8B;
}


.peek-identity{
  display:grid;
  gap:5px;
}
.peek-identity .peek-name{
  margin:0;
}
.peek-identity .peek-company{
  margin:0;
}
.peek-identity .peek-kicker{
  margin:0;
  order:3;
}


.log-method{
  align-self:stretch;
  min-height:0;
  display:grid;
  align-items:center;
  justify-items:start;
  padding:0;
  color:#7E9F8B;
}
.log-method span{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  transform-origin:center;
  margin:0;
}


.related-row{
  min-height:0;
  padding:8px 0;
  margin:0;
}
.related-link{
  padding-top:8px;
  padding-bottom:8px;
}


#peekTags{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 18px;
  align-items:start;
}
#peekTags .tag{
  display:block;
  min-height:0;
  width:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  font-size:15px;
  font-weight:300;
  line-height:1.4;
  color:var(--muted);
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
@media(max-width:420px){
  #peekTags{grid-template-columns:1fr}
}


#peekTags .tag{
  cursor:pointer;
  text-decoration:none;
  text-underline-offset:3px;
  transition:color var(--transition),text-decoration-color var(--transition);
}
#peekTags .tag:hover,
#peekTags .tag:focus-visible{
  color:#B9A7E0;
  text-decoration:underline;
  text-decoration-thickness:1px;
  outline:none;
}
@media(max-width:420px){
  #peekTags{
    grid-template-columns:1fr;
    row-gap:12px;
  }
}


#peekTags .tag{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  column-gap:8px;
}
#peekTags .tag::after{
  content:"›";
  color:var(--muted);
  font-size:15px;
  font-weight:300;
  line-height:1;
  opacity:.8;
  transition:color var(--transition),transform var(--transition),opacity var(--transition);
}
#peekTags .tag:hover::after,
#peekTags .tag:focus-visible::after{
  color:#B9A7E0;
  opacity:1;
  transform:translateX(1px);
}


.peek-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:0 0 12px;
}
.peek-actions button,
.peek-actions .share-contact{
  min-height:38px;
  padding:0 10px;
  border-radius:11px;
  font-size:15px;
  line-height:1;
  white-space:nowrap;
}
.peek-actions .share-contact{
  grid-column:auto;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 6px 14px rgba(50,31,63,.12);
}
.peek-identity{
  margin-top:0;
}
@media(max-width:420px){
  .peek-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
  }
  .peek-actions button,
  .peek-actions .share-contact{
    min-height:36px;
    padding:0 7px;
    font-size:14px;
  }
}


@media(max-width:600px){
  .page-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
  }
  .page-actions .glass-action{
    width:100%;
    justify-content:center;
  }
}


@media(max-width:600px){
  .page-head{
    display:block;
  }
  .page-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
    margin:0 0 18px;
  }
  .page-actions .glass-action{
    width:100%;
    min-width:0;
    max-width:none;
    justify-content:center;
  }
}


.peek-actions button,
.peek-actions .share-contact{
  background:
    linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.035) 26%, rgba(255,255,255,.018) 100%),
    color-mix(in srgb,var(--surface) 88%,#321F3F 12%);
  color:var(--text);
  border:1px solid color-mix(in srgb,var(--line) 78%,#B9A7E0 22%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(255,255,255,.035),
    0 7px 16px rgba(0,0,0,.10);
  transition:
    transform 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    box-shadow 150ms ease;
}
.peek-actions button:hover,
.peek-actions button:focus-visible,
.peek-actions .share-contact:hover,
.peek-actions .share-contact:focus-visible{
  background:
    linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.055) 26%, rgba(255,255,255,.02) 100%),
    color-mix(in srgb,#321F3F 78%,#7659A8 22%);
  color:#F2F3F5;
  border-color:#7659A8;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(255,255,255,.04),
    0 10px 22px rgba(50,31,63,.18);
  transform:translateY(-2px);
  outline:none;
}
.peek-actions button:active,
.peek-actions .share-contact:active{
  transform:translateY(1px) scale(.99);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 2px 5px rgba(0,0,0,.10),
    0 4px 10px rgba(0,0,0,.10);
}
html[data-theme="light"] .peek-actions button,
html[data-theme="light"] .peek-actions .share-contact{
  background:
    linear-gradient(180deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.34) 28%, rgba(255,255,255,.16) 100%),
    color-mix(in srgb,#F2F3F5 90%,#321F3F 10%);
}
html[data-theme="light"] .peek-actions button:hover,
html[data-theme="light"] .peek-actions button:focus-visible,
html[data-theme="light"] .peek-actions .share-contact:hover,
html[data-theme="light"] .peek-actions .share-contact:focus-visible{
  background:
    linear-gradient(180deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,.10) 28%, rgba(255,255,255,.04) 100%),
    color-mix(in srgb,#321F3F 82%,#7659A8 18%);
  color:#F2F3F5;
}


.log-add{
  background:
    linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.035) 26%, rgba(255,255,255,.018) 100%),
    color-mix(in srgb,var(--surface) 88%,#321F3F 12%);
  color:var(--text);
  border:1px solid color-mix(in srgb,var(--line) 78%,#B9A7E0 22%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(255,255,255,.035),
    0 7px 16px rgba(0,0,0,.10);
  transition:
    transform 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    box-shadow 150ms ease;
}
.log-add:hover,
.log-add:focus-visible{
  background:
    linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.055) 26%, rgba(255,255,255,.02) 100%),
    color-mix(in srgb,#321F3F 78%,#7659A8 22%);
  color:#F2F3F5;
  border-color:#7659A8;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(255,255,255,.04),
    0 10px 22px rgba(50,31,63,.18);
  transform:translateY(-2px);
  outline:none;
}
.log-add:active{
  transform:translateY(1px) scale(.99);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 2px 5px rgba(0,0,0,.10),
    0 4px 10px rgba(0,0,0,.10);
}
html[data-theme="light"] .log-add{
  background:
    linear-gradient(180deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.34) 28%, rgba(255,255,255,.16) 100%),
    color-mix(in srgb,#F2F3F5 90%,#321F3F 10%);
}
html[data-theme="light"] .log-add:hover,
html[data-theme="light"] .log-add:focus-visible{
  background:
    linear-gradient(180deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,.10) 28%, rgba(255,255,255,.04) 100%),
    color-mix(in srgb,#321F3F 82%,#7659A8 18%);
  color:#F2F3F5;
}


.log-item{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:8px;
  padding-left:34px;
}
.log-method{
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:24px;
  height:auto;
  min-height:0;
  display:block;
  padding:0;
  margin:0;
  color:#7E9F8B;
}
.log-method span{
  display:block;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  transform-origin:center;
  margin:0;
  padding:0;
  line-height:1;
  text-align:left;
}
.log-copy{
  min-width:0;
}
.log-state{
  align-self:start;
  justify-self:end;
}
@media(max-width:520px){
  .log-item{
    grid-template-columns:minmax(0,1fr);
    padding-left:30px;
  }
  .log-state{
    grid-column:1;
    justify-self:start;
  }
}


@media(max-width:600px){
  .page-head{
    display:block;
  }
  .page-title-wrap{
    margin:0 0 14px;
  }
  .page-actions{
    margin:0 0 18px;
  }
  .contacts-topline{
    margin-top:0;
  }
  .contacts-screen{
    gap:14px;
  }
}
.peek-head{
  min-height:58px;
}


.peek-title{
  font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:24px;
  font-weight:700;
  line-height:1.15;
  letter-spacing:0;
  color:var(--text);
}


.peek-actions .glass-action,
.log-add.glass-action{

  position:relative;min-width:152px;min-height:44px;padding:0 18px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;overflow:hidden;cursor:pointer;
  font:400 16px/1 "Google Sans Flex",Arial,sans-serif;
  transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)

}

/* Context may alter geometry only, never the glass treatment. */
.peek-actions .glass-action{
  min-height:38px;
  width:100%;
  justify-content:center;
  padding-left:10px;
  padding-right:10px;
}
.log-add.glass-action{
  min-height:38px;
  justify-content:center;
}

/* Preserve the governing interaction language for all glass buttons. */
.peek-actions .glass-action:hover,
.peek-actions .glass-action:focus-visible,
.log-add.glass-action:hover,
.log-add.glass-action:focus-visible{
  transform:translateY(-2px);
}
.peek-actions .glass-action:active,
.log-add.glass-action:active{
  transform:translateY(1px) scale(.99);
}


.peek-actions{
  display:flex;
  align-items:stretch;
  gap:0;
  overflow:visible;
}
.peek-actions .glass-action{
  position:relative;
  flex:1 1 0;
  min-width:0;
  margin-left:-18px;
  z-index:1;
  transition:
    flex-grow 180ms ease,
    margin 180ms ease,
    transform 150ms ease,
    background 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    box-shadow 150ms ease;
}
/* Light-mode side-peek actions use the same flat .glass-action fill as
   everywhere else now -- no separate embossed treatment (retired 2026-09-06). */

.peek-actions .glass-action:first-child{
  margin-left:0;
}
.peek-actions .glass-action:hover,
.peek-actions .glass-action:focus-visible,
.peek-actions .glass-action.is-expanded{
  flex-grow:1.42;
  margin-left:0;
  z-index:5;
}
.peek-actions .glass-action:hover + .glass-action,
.peek-actions .glass-action:focus-visible + .glass-action,
.peek-actions .glass-action.is-expanded + .glass-action{
  margin-left:0;
}
@media(max-width:420px){
  .peek-actions .glass-action{
    margin-left:-14px;
  }
}


.log-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
}
.log-toolbar .peek-label{
  min-width:0;
  white-space:nowrap;
}
.log-add.glass-action{
  width:auto;
  min-width:max-content;
  max-width:max-content;
  padding-left:16px;
  padding-right:16px;
  justify-self:end;
}
@media(max-width:420px){
  .log-toolbar{
    gap:8px;
  }
  .log-add.glass-action{
    padding-left:12px;
    padding-right:12px;
    font-size:14px;
  }
}


/* GOVERNING LOGO → DASHBOARD BEHAVIOR */
.brand-logo,
.mobile-logo,
.brand-sub{
  cursor:pointer;
}
.brand-logo:focus-visible,
.mobile-logo:focus-visible,
.brand-sub:focus-visible{
  outline:2px solid #B9A7E0;
  outline-offset:4px;
}



/* =========================================================
   APPROVED APPLICATION CANVAS ATMOSPHERE — 8/18/26
   Exact GetYST three-radial treatment (duplicate block -- restored to
   match the one above; see that one for why it was removed and why
   it's back).
   ========================================================= */
html[data-theme="dark"] .main{
  background:
    radial-gradient(circle at 20% 24%, rgba(118,89,168,.28), transparent 26%),
    radial-gradient(circle at 80% 24%, rgba(135,169,141,.22), transparent 30%),
    radial-gradient(circle at 66% 78%, rgba(109,126,141,.18), transparent 26%),
    linear-gradient(135deg,
      color-mix(in srgb, var(--surface) 86%, #7659A8 14%),
      var(--surface)
    );
  background-attachment:fixed;
}
html[data-theme="light"] .main{
  background:
    radial-gradient(circle at 20% 24%, rgba(118,89,168,.15), transparent 38%),
    radial-gradient(circle at 80% 24%, rgba(135,169,141,.13), transparent 42%),
    radial-gradient(circle at 66% 78%, rgba(109,126,141,.10), transparent 38%),
    linear-gradient(135deg,
      color-mix(in srgb, var(--surface) 89%, #7659A8 11%),
      var(--surface)
    );
  background-attachment:fixed;
}
@media(max-width:760px){
  html[data-theme="dark"] .main,
  html[data-theme="light"] .main{
    background:var(--surface);
    background-attachment:scroll;
  }
}



/* CONTACTS — SIDE PEEK MINOR HEADING COLOR */
.side-peek .peek-kicker,
.side-peek .peek-label,
.side-peek .log-method{
  color:#7E9F8B !important;
}


/* SIDE PEEK MINOR HEADING COLOR — BOTH THEMES */
.side-peek .peek-kicker,
.side-peek .peek-label,
.side-peek .log-method{
  color:#7E9F8B !important;
}


/* SIDE PEEK — GOVERNING COMPACT SPACING + FRAMED MINOR SECTIONS */
.side-peek .peek-body{
  gap:14px;
}
.side-peek .peek-identity{
  gap:3px;
}
.side-peek .peek-section{
  gap:6px;
}
.side-peek .peek-section.peek-section-framed{
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--page);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    0 1px 0 rgba(255,255,255,.04);
}
html[data-theme="light"] .side-peek .peek-section.peek-section-framed{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    inset 0 -1px 0 rgba(86,60,92,.045),
    0 1px 0 rgba(255,255,255,.72);
}
html[data-theme="dark"] .side-peek .peek-section.peek-section-framed{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.075),
    inset 0 -1px 0 rgba(0,0,0,.18),
    0 1px 0 rgba(255,255,255,.025);
}
.side-peek .peek-section.peek-section-framed .related-row{
  padding:7px 0;
}
.side-peek .peek-section.peek-section-framed .contact-tags{
  gap:5px 12px;
}
/* Real, editable Contacts fields -- Category/Role/Email/Phone/Preferred
   Method/Method Details, two per row so the panel doesn't turn into one
   long vertical form. Each field auto-saves on blur/change (see
   wireEditableField), reusing the same saved/error flash + inline error
   note pattern as My Shows' inline-edit fields. */
.peek-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.peek-edit-grid .field-label{font-size:13px;font-weight:650;color:var(--muted);gap:5px}
.peek-edit-grid .form-input{font-size:15px}
/* peekLogSummary is a rows="2" textarea, but .form-input's shared
   min-height:44px is sized for a single-line input -- that squeezed a
   2-line textarea into 1 line's worth of height, leaving its placeholder
   looking vertically off-center rather than sitting at the top. */
#peekLogSummary{min-height:64px;padding-top:10px;padding-bottom:10px}


/* CONTACTS v3.37 — SIDE PEEK IDENTITY / CONTACT GRID */
.side-peek .peek-identity-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
  gap:24px;
  align-items:start;
  padding:2px 0 6px;
}
.side-peek .peek-person-column,
.side-peek .peek-org-column{
  min-width:0;
}
.side-peek .peek-person-column{
  display:grid;
  gap:7px;
}
.side-peek .peek-org-column{
  display:grid;
  gap:5px;
  text-align:right;
}
.side-peek .peek-name{
  margin:0 0 4px;
  font:700 24px/1.15 "Google Sans Flex",Arial,sans-serif;
  color:var(--text);
}
.side-peek .peek-detail,
.side-peek .peek-address{
  font:400 15px/1.42 "Google Sans Flex",Arial,sans-serif;
  color:var(--muted);
  overflow-wrap:anywhere;
}
.side-peek .peek-kicker{
  margin:0;
  font:700 15px/1.25 "Google Sans Flex",Arial,sans-serif;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#7E9F8B !important;
}
.side-peek .peek-company{
  font:700 15px/1.32 "Google Sans Flex",Arial,sans-serif;
  color:#7E9F8B !important;
}
.side-peek .peek-address{
  display:grid;
  gap:1px;
  margin-top:2px;
}
.side-peek .peek-address-line{display:block}
.side-peek .peek-address[hidden]{visibility:hidden;display:grid}
.side-peek .peek-identity-grid + .peek-section{
  margin-top:2px;
}
@media(max-width:560px){
  .side-peek .peek-identity-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .side-peek .peek-org-column{
    text-align:left;
  }
}


/* CONTACTS v3.38 — INTERACTION LOG REFINEMENT */
.side-peek .peek-identity-grid + .peek-section{
  margin-top:18px;
}
/* Contact Details/Notes are framed sections with 14px of side padding
   (see .peek-section-framed); Activity isn't framed, so without matching
   padding its heading sits 14px to the left of the ones above it. */
#peekActivitySection{
  padding:0 14px;
}
.side-peek .log-toolbar{
  align-items:center;
  gap:14px;
}
.side-peek .log-toolbar .peek-label{
  font-size:18px !important;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.01em;
}
.side-peek .log-add.glass-action{
  font-size:16px;
  min-height:38px;
  padding-left:10px;
  padding-right:10px;
}
.side-peek .log-note,
.side-peek .edit-note,
.side-peek .editable-note{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 !important;
  margin:2px 0 0 !important;
  color:var(--muted);
  font-size:15px;
  line-height:1.4;
  white-space:nowrap;
}


/* CONTACTS v3.39 — SUMMARY CONTACT TYPE TAGS */
.contacts-screen .contact-type{
  color:#7E9F8B !important;
}


/* CONTACTS v3.41 — SIDE PEEK ADDRESS + OVERFLOW CORRECTION */
.side-peek,
.side-peek *{
  min-width:0;
  max-width:100%;
}
.side-peek .peek-body{
  overflow-y:auto;
  overflow-x:hidden;
}
.side-peek .editable-note{
  white-space:normal !important;
  overflow-wrap:anywhere;
  max-width:100%;
}
.side-peek .peek-name,
.side-peek .peek-company,
.side-peek .peek-detail,
.side-peek .peek-email,
.side-peek .peek-address,
.side-peek .log-copy,
.side-peek .related-row,
.side-peek .tag{
  overflow-wrap:anywhere;
  word-break:normal;
}
.side-peek .peek-address{
  min-height:42px;
}


/* CONTACTS v3.42 — FINAL SIDE PEEK ACTIVITY FLOW / WRAP CORRECTION */
.side-peek .log-toolbar{
  margin-bottom:12px;
}
.side-peek .log-item{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.side-peek .log-copy{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.side-peek .log-title,
.side-peek .log-meta,
.side-peek .log-note{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
.side-peek .editable-note{
  margin-top:8px !important;
  font-size:13px;
  line-height:1.35;
}


/* CONTACTS v3.44 — SIDE PEEK ACTION TYPE + ACTIVITY NOTE SPACING */
.side-peek .peek-actions .glass-action,
.side-peek .log-add.glass-action{
  letter-spacing:.04em;
}
.side-peek .editable-note{
  padding-bottom:25px !important;
}

/* CONTACTS v3.45 — FINAL APPROVED ACTIVITY NOTE */
.side-peek .editable-note{
  font-style:italic;
}



/* Contacts/side-peek buttons now inherit the same flat .glass-action
   material as everywhere else (retired the separate "Liquid Aubergine"
   glass override app-wide 2026-09-06). */


/* =========================================================
   PROFILE — approved v1.24
   Ported from GetYST-page-PROFILE-v1.24.html. Peek-panel-specific
   selectors are scoped under .peek-panel (the Application Profile side
   peek's own wrapper class) so they can't collide with the pre-existing
   unscoped Contacts .peek-head/.peek-body/.peek-section/.peek-close/
   .peek-kicker rules above, which target a differently-shaped panel.
   ========================================================= */
.profile-page{display:grid;gap:22px}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.profile-card,.profile-photo-card,.application-optin{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 12px 30px rgba(0,0,0,.08)
}
.profile-card{padding:24px}
.profile-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.profile-card-head h2,.profile-photo-card h2{margin:0;color:var(--text);font-size:20px;line-height:1.25;font-weight:500}
.profile-card-head p,.profile-photo-card p{margin:6px 0 0;color:var(--muted);font-size:16px;line-height:1.48}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.field{display:grid;gap:7px;min-width:0}
.field.span-2{grid-column:1/-1}
.field label,.field-label{font-size:16px;font-weight:650;color:var(--text)}
.field .hint{font-size:16px;line-height:1.4;color:var(--muted);margin-top:-1px}
.input,.select,.textarea{
  width:100%;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,var(--page) 6%);
  color:var(--text);font:400 16px/1.35 "Google Sans Flex",Arial,sans-serif;outline:none;
  transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)
}
.input,.select{height:44px;padding:0 12px}.textarea{min-height:92px;padding:11px 12px;resize:vertical}
.input:focus,.select:focus,.textarea:focus{border-color:#7659A8;box-shadow:0 0 0 3px rgba(118,89,168,.14)}
.input::placeholder,.textarea::placeholder{color:color-mix(in srgb,var(--muted) 72%,transparent)}
.address-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(110px,.7fr) minmax(90px,.45fr);gap:12px}
.profile-aside{display:grid;gap:16px}
.profile-photo-card{padding:20px}
.photo-drop{margin-top:15px;min-height:190px;border:1px dashed color-mix(in srgb,var(--line) 72%,var(--muted) 28%);border-radius:16px;display:grid;place-items:center;text-align:center;padding:18px;background:color-mix(in srgb,var(--surface) 94%,var(--page) 6%);cursor:pointer}
.photo-drop svg{width:34px;height:34px;stroke:var(--muted);margin:0 auto 10px}.photo-drop strong{display:block;font-size:16px;font-weight:650}.photo-drop span{display:block;font-size:16px;color:var(--muted);margin-top:4px;line-height:1.4}
.application-optin{padding:18px 20px;position:relative;overflow:hidden}
.application-optin::before{content:"";position:absolute;right:-52px;top:-58px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(118,89,168,.16),transparent 68%);pointer-events:none}
.optin-row{position:relative;display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.optin-row input{position:absolute;opacity:0;pointer-events:none}
.checkbox-ui{width:22px;height:22px;flex:0 0 22px;border-radius:6px;border:1px solid var(--line);display:grid;place-items:center;margin-top:1px;background:var(--surface);transition:.15s}
.checkbox-ui::after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.optin-row input:checked + .checkbox-ui{background:#6B5576;border-color:#6B5576}.optin-row input:checked + .checkbox-ui::after{opacity:1}
.optin-copy{display:block;font-size:16px;line-height:1.45;padding-right:18px;font-weight:400}
.optin-copy .optin-yes{display:inline;font-weight:700}
.open-app-profile{display:none;margin:16px auto 0!important;width:max-content;min-width:230px}
.application-optin.enabled .open-app-profile{display:flex!important;margin:16px auto 0!important;width:max-content}
.profile-save-row{display:flex;justify-content:flex-end;margin-top:2px}

/* APPLICATION PROFILE — SIDE PEEK */
.peek-overlay{position:fixed;inset:0;background:rgba(15,10,18,.42);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity 180ms ease;z-index:80}
.peek-panel{position:fixed;right:0;top:0;height:100vh;height:100dvh;width:min(760px,96vw);background:var(--page);border-left:1px solid var(--line);transform:translateX(102%);transition:transform 220ms ease;z-index:81;display:grid;grid-template-rows:auto minmax(0,1fr) auto;font-size:16px}
.peek-open .peek-overlay{opacity:1;pointer-events:auto}.peek-open .peek-panel{transform:none;box-shadow:-24px 0 56px rgba(0,0,0,.28);}
.peek-panel .peek-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 26px 20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,var(--page) 12%)}
.peek-panel .peek-kicker{font-size:16px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.peek-panel .peek-head h2{font-size:30px;font-weight:500;line-height:1.15;margin:0}.peek-panel .peek-head p{margin:9px 0 0;color:var(--muted);font-size:16px;line-height:1.5;max-width:560px}
.peek-panel .peek-close{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);width:38px;height:38px;border-radius:11px;display:grid;place-items:center;cursor:pointer;flex:0 0 38px}.peek-panel .peek-close:hover{background:color-mix(in srgb,var(--surface) 78%,var(--page) 22%)}.peek-panel .peek-close svg{width:19px;height:19px}
.peek-panel .peek-body{overflow:auto;padding:0 26px 28px}
.peek-panel .peek-section{padding:24px 0;border-bottom:1px solid var(--line)}.peek-panel .peek-section:last-child{border-bottom:0}
.peek-panel .peek-section h3{font-size:22px;line-height:1.25;font-weight:500;letter-spacing:.055em;text-transform:uppercase}.peek-panel .peek-section-note{margin:8px 0 20px;color:var(--muted);font-size:16px;line-height:1.5}
.peek-panel .peek-section > h3 + .peek-fields{margin-top:20px}
.peek-fields{display:grid;gap:18px}.peek-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.inherit-row{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--surface);display:grid;grid-template-columns:minmax(118px,.48fr) minmax(300px,1.72fr) auto;gap:16px;align-items:center}
.inherit-top{display:contents}
.inherit-name{font-size:16px;font-weight:650;color:var(--text)}
.inherit-name span{display:block}
.same-control{display:none}
.change-control{position:relative;display:grid;grid-template-columns:auto 22px auto;align-items:center;gap:8px;cursor:pointer;color:var(--muted);font-size:16px;font-weight:600;white-space:nowrap}.change-control input{position:absolute;opacity:0}.choice-box{width:22px;height:22px;border:1px solid var(--line);border-radius:6px;background:var(--page);display:grid;place-items:center}.change-control input:checked + .choice-box{background:#6B5576;border-color:#6B5576}.change-control input:checked + .choice-box::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}.change-control b{font-size:16px;font-weight:650;color:var(--text)}
.override-wrap{display:none}
.inherited-input[readonly]{background:color-mix(in srgb,var(--surface) 86%,var(--page) 14%);color:var(--text);opacity:1}.inherited-input:not([readonly]){border-color:#7659A8;box-shadow:0 0 0 3px rgba(118,89,168,.12)}
.social-entry{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(0,1.35fr);gap:12px}
.social-entry select{pointer-events:auto;cursor:pointer}
.inherited-social-group{display:grid;grid-template-columns:minmax(120px,.42fr) minmax(0,1.58fr);gap:10px}
.inherited-social-group select:disabled{opacity:1;color:var(--text);background:color-mix(in srgb,var(--surface) 86%,var(--page) 14%);-webkit-text-fill-color:var(--text);pointer-events:none;cursor:default}
.inherited-social-group select:not(:disabled){pointer-events:auto;cursor:pointer}
.document-upload{min-height:112px;border:1px dashed var(--line);border-radius:13px;background:var(--surface);display:grid;place-items:center;text-align:center;padding:16px;cursor:pointer}
.document-upload:hover{border-color:#7659A8}
.document-upload svg{width:24px;height:24px;stroke:var(--muted);margin-bottom:7px}
.document-upload strong{display:block;font-size:16px;font-weight:650}
.document-upload span{display:block;color:var(--muted);font-size:16px;margin-top:4px;line-height:1.4}
html[data-theme="dark"] .document-upload strong{font-weight:500}
.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.asset-tile{min-height:118px;border:1px dashed var(--line);border-radius:13px;background:var(--surface);display:grid;place-items:center;text-align:center;padding:16px;cursor:pointer}.asset-tile:hover{border-color:#7659A8}.asset-tile svg{width:24px;height:24px;stroke:var(--muted);margin-bottom:7px}.asset-tile strong{font-size:16px;font-weight:650}.asset-tile span{display:block;color:var(--muted);font-size:16px;margin-top:4px;line-height:1.4}
.asset-tile > div{display:grid;grid-template-columns:24px minmax(0,auto);grid-template-rows:auto auto;column-gap:12px;row-gap:4px;align-items:center;justify-content:center;text-align:left}
.asset-tile svg{grid-column:1;grid-row:1;align-self:center;margin:0}
.asset-tile strong{grid-column:2;grid-row:1;display:block;margin:0}
.asset-tile span{grid-column:2;grid-row:2;display:block;margin:0}
.peek-panel .peek-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 26px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,var(--page) 12%)}
.peek-panel .peek-footer-note{font-size:16px;color:var(--muted);line-height:1.45;max-width:380px}.peek-panel .peek-done{min-width:120px;font-size:16px}
html[data-theme="dark"] .peek-panel,html[data-theme="dark"] .peek-panel *{font-weight:400!important}
html[data-theme="light"] .profile-card,html[data-theme="light"] .profile-photo-card,html[data-theme="light"] .application-optin{box-shadow:0 12px 26px rgba(56,48,62,.07)}
@media(max-width:980px){.profile-layout{grid-template-columns:1fr}.profile-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-photo-card,.application-optin{height:100%}}
@media(max-width:760px){.form-grid,.peek-grid-2,.asset-grid{grid-template-columns:1fr}.social-entry,.inherited-social-group{grid-template-columns:1fr}.address-row{grid-template-columns:1fr 1fr}.address-row .city-field{grid-column:1/-1}.profile-aside{grid-template-columns:1fr}.profile-card{padding:18px}.peek-panel .peek-head,.peek-panel .peek-body,.peek-panel .peek-footer{padding-left:18px;padding-right:18px}.inherit-row{grid-template-columns:1fr;gap:10px}.change-control{justify-self:start}.peek-panel .peek-footer{align-items:flex-start;flex-direction:column}.peek-panel .peek-done{width:100%}}
@media(max-width:520px){.address-row{grid-template-columns:1fr}.address-row .city-field{grid-column:auto}.profile-card-head{display:block}}

/* Route toast — "Coming Soon!" for User Menu destinations that aren't
   real yet (currently only Profile is real; this is ready for the next
   one without a second implementation pass). */
/* Mirrors .nav-coming-soon-badge (same small pill, same muted color) instead
   of its old large purple box -- Kelley's call, for visual consistency with
   every other "not built yet" label in the app. Pops above the anchor,
   horizontally centered on it, rather than to the side, which used to
   overlap a neighboring button in a tight row like the Dashboard's quick
   actions. */
.route-toast{position:fixed;left:0;top:0;z-index:500;transform:translate(-50%,calc(-100% - 4px));opacity:0;pointer-events:none;
  font:700 9px/1.4 "Google Sans Flex",Arial,sans-serif;letter-spacing:.03em;text-transform:uppercase;
  color:#8EA0AF;border:1px solid #8EA0AF;border-radius:999px;padding:3px 9px;white-space:nowrap;
  background:var(--surface);box-shadow:0 8px 20px rgba(0,0,0,.25);
  transition:opacity 180ms ease,transform 180ms ease}
.route-toast.show{opacity:1;transform:translate(-50%,calc(-100% - 10px))}

/* User Menu — real destination links (Profile) replace the old
   "not populated yet" placeholder text. */
.user-popover .user-menu-link{appearance:none;width:100%;min-height:42px;margin-top:6px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:600 16px/1 "Google Sans Flex",Arial,sans-serif;text-align:left;cursor:pointer}
.user-popover .user-menu-link:hover,.user-popover .user-menu-link:focus-visible{background:color-mix(in srgb,var(--text) 8%,transparent);outline:none}

/* People page redesign — ported from the approved design comp. */
.contact-monogram{
  width:40px;height:40px;flex:0 0 40px;border-radius:50%;
  display:grid;place-items:center;
  background:color-mix(in srgb,#7659A8 14%,var(--page));
  color:#7659A8;font:700 15px/1 "Google Sans Flex",Arial,sans-serif;
  letter-spacing:.01em;user-select:none;
}
html[data-theme="dark"] .contact-monogram{background:color-mix(in srgb,#B9A7E0 20%,var(--page));color:#B9A7E0}
.contacts-screen .contact-card{grid-template-columns:40px minmax(240px,1.05fr) minmax(255px,.9fr) auto}
@media(max-width:760px){
  .contacts-screen .contact-card{grid-template-columns:40px 1fr auto}
  .contacts-screen .contact-open{grid-column:3;grid-row:1}
}
@media(max-width:520px){
  .contacts-screen .contact-card{grid-template-columns:40px 1fr auto}
}
.contacts-screen .contact-type{
  display:inline-flex;align-items:center;width:fit-content;
  padding:3px 10px;border-radius:999px;
  background:color-mix(in srgb,#7659A8 12%,transparent)!important;
  color:#7659A8!important;font-size:13px;font-weight:650;letter-spacing:.01em;
}
html[data-theme="dark"] .contacts-screen .contact-type{
  background:color-mix(in srgb,#B9A7E0 18%,transparent)!important;
  color:#B9A7E0!important;
}
.contact-card:focus-visible{
  border-color:color-mix(in srgb,var(--line) 45%,#7659A8);
  box-shadow:0 18px 38px rgba(0,0,0,.075);
  outline:2px solid #9C7FA7;outline-offset:3px;
}
.dialog-lede{margin:-2px 0 2px;color:var(--muted);font-size:15px;line-height:1.45}
#createNotes{padding:10px 12px;min-height:84px;resize:vertical}
.contact-method-rows{display:grid;gap:10px}
.contact-method-row{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}
.contact-method-label{
  flex:0 0 auto;min-width:48px;color:var(--muted);font-size:13px;font-weight:700;
  text-transform:uppercase;letter-spacing:.03em;
}
.contact-method-row .quiet-link{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;text-transform:none!important;font-weight:400!important}
#peekContactMethods .contact-method-row{flex-wrap:wrap;row-gap:4px}
#peekContactMethods .contact-method-label{flex:1 0 100%}
#peekContactMethods .contact-method-row .quiet-link{white-space:normal;overflow:visible;text-overflow:clip;max-width:100%;overflow-wrap:anywhere}
.peek-kicker-label{margin:0;color:var(--text);font:700 28px/1.2 "Google Sans Flex",Arial,sans-serif}
.peek-identity{display:grid;gap:14px}
.peek-identity-core{display:grid;gap:5px}
.peek-identity-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.peek-identity-top .peek-name{margin:0;font-weight:500}
.peek-identity-top .quiet-link{flex:0 0 auto;background:none;border:0;padding:0;margin:0;font-family:inherit;font-size:16px}
.peek-type-company{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
#sidePeek .peek-body{padding-top:24px}
#createContactPeek .peek-body{padding-top:24px}
#createContactPeek .peek-head{align-items:center}
/* ---- from style block at offset 440 ---- */
.myshows-page{padding-bottom:48px}
.myshows-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:26px}
.myshows-head-copy{min-width:0}
.myshows-title-row{display:flex;align-items:center;gap:12px}
/* Kelley's report 2026-09-30: "icon is different from section color and
   the icon should be the size of the font of 'My Applications'." Sized
   to match .page-title's 36px, and colored per-page below instead of
   one hardcoded shared purple. */
.myshows-title-row svg{width:36px;height:36px;flex:0 0 36px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:#7659A8}
html[data-theme="dark"] .myshows-title-row svg{color:#C8B6D7}
.view[data-view="shows"] .myshows-title-row svg{color:#8f7ad1}
.view[data-view="applications"] .myshows-title-row svg{color:#2FB8C4}
.view[data-view="contacts"] .myshows-title-row svg{color:#EC6BA5}
.view[data-view="tasks"] .myshows-title-row svg{color:#4DB6E8}
.view[data-view="gallery"] .myshows-title-row svg{color:#D6336C}
.view[data-view="b.a.d.™"] .myshows-title-row svg{color:#4A8FE0}
/* Coming Soon placeholder pages: h2 is 28px (not .page-title's 36px),
   so the icon matches that size instead -- Kelley: "the icon should be
   the size of the font of" the page's own title. */
.placeholder .myshows-title-row{display:flex;align-items:center;gap:10px}
.placeholder .myshows-title-row svg{width:28px;height:28px;flex:0 0 28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.placeholder .myshows-title-row h2{margin:0}
.view[data-view="my-money"] .placeholder .myshows-title-row svg{color:#4FBF95}
.view[data-view="reports"] .placeholder .myshows-title-row svg{color:#A8A6B3}
.view[data-view="documents"] .placeholder .myshows-title-row svg{color:#3E8E8A}
.view[data-view="preferences"] .placeholder .myshows-title-row svg{color:#9C7FA7}
.view[data-view="calendar"] .placeholder .myshows-title-row svg{color:#8B93E8}
.myshows-head .page-title{margin:0}
.myshows-head-note{margin:8px 0 0;color:var(--muted);font-size:16px;line-height:1.5}
.myshows-tabs{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}
.myshows-tabs::-webkit-scrollbar{display:none}
.myshows-tab{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font:650 16px/1.2 "Google Sans Flex",Arial,sans-serif;padding:12px 14px 11px;white-space:nowrap;cursor:pointer}
.myshows-tab:hover{color:var(--text)}
.myshows-tab.active{color:var(--text);border-bottom-color:#7659A8}
.myshows-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto;gap:10px;align-items:center;margin-bottom:18px}
.myshows-search{min-height:46px;border:1px solid var(--line);border-radius:13px;background:var(--surface);display:flex;align-items:center;gap:10px;padding:0 14px}
.myshows-search svg{width:20px;height:20px;stroke:var(--muted);flex:0 0 20px}
.myshows-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:400 16px/1.2 "Google Sans Flex",Arial,sans-serif}
.myshows-search input::placeholder{color:var(--muted)}
.myshows-tool{appearance:none;min-height:46px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text);padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 16px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.myshows-tool:hover,.myshows-tool[aria-expanded="true"]{background:color-mix(in srgb,var(--surface) 80%,var(--page) 20%)}
.myshows-tool svg{width:18px;height:18px;stroke:currentColor}
.myshows-view-toggle{display:flex;border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:3px}
.myshows-view-btn{appearance:none;border:0;border-radius:9px;background:transparent;color:var(--muted);width:40px;height:38px;display:grid;place-items:center;cursor:pointer}
.myshows-view-btn svg{width:19px;height:19px;stroke:currentColor}
.myshows-view-btn.active{background:color-mix(in srgb,var(--text) 9%,transparent);color:var(--text)}
.myshows-filter-wrap{position:relative}
.myshows-filter-panel{position:absolute;right:0;top:54px;z-index:40;width:min(330px,calc(100vw - 36px));padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 18px 46px rgba(0,0,0,.18);display:none}
.myshows-filter-panel.open{display:block}
.myshows-filter-title{font-size:16px;font-weight:700;margin-bottom:12px}
.myshows-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.myshows-filter-option{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--text)}
.myshows-filter-option input{width:18px;height:18px;accent-color:#7659A8}
.myshows-filter-foot{display:flex;justify-content:flex-end;margin-top:14px}
.myshows-filter-clear{appearance:none;border:0;background:transparent;color:var(--muted);font:600 16px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;padding:6px}
.myshows-sort{min-height:46px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--text);padding:0 38px 0 13px;font:600 16px/1 "Google Sans Flex",Arial,sans-serif}
.myshows-count{font-size:16px;color:var(--muted);margin:0 0 11px}
.myshows-list{display:grid;gap:12px}
.myshows-record{appearance:none;width:100%;border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--text);padding:18px 20px;display:grid;grid-template-columns:minmax(240px,1.35fr) minmax(160px,.75fr) minmax(180px,.85fr) auto;gap:18px;align-items:center;text-align:left;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.035);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.myshows-record:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,0,0,.07);border-color:color-mix(in srgb,var(--text) 20%,var(--line) 80%)}
.myshows-record-name{font-size:19px;font-weight:700;line-height:1.25}
.myshows-record-meta{font-size:16px;color:var(--muted);line-height:1.4}
.myshows-record-label{display:none;font-size:16px;font-weight:650;color:var(--muted);margin-bottom:3px}
.myshows-status{justify-self:end;display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border-radius:999px;border:1px solid color-mix(in srgb,#7659A8 38%,var(--line) 62%);background:color-mix(in srgb,#7659A8 12%,var(--surface) 88%);color:var(--text);font:650 16px/1 "Google Sans Flex",Arial,sans-serif;white-space:nowrap}
.myshows-status[data-status="Interested"]{border-color:color-mix(in srgb,#32799B 38%,var(--line) 62%);background:color-mix(in srgb,#32799B 10%,var(--surface) 90%)}
.myshows-status[data-status="Applied"]{border-color:color-mix(in srgb,#D14C8A 38%,var(--line) 62%);background:color-mix(in srgb,#D14C8A 10%,var(--surface) 90%)}
.myshows-status[data-status="Accepted"],.myshows-status[data-status="Attending"]{border-color:color-mix(in srgb,#0E6943 42%,var(--line) 58%);background:color-mix(in srgb,#0E6943 10%,var(--surface) 90%)}
.myshows-status[data-status="Waiting for Jury"]{border-color:color-mix(in srgb,#C59B3C 40%,var(--line) 60%);background:color-mix(in srgb,#C59B3C 10%,var(--surface) 90%)}
.myshows-status[data-status^="Denied"]{border-color:color-mix(in srgb,#A8013D 38%,var(--line) 62%);background:color-mix(in srgb,#A8013D 9%,var(--surface) 91%);color:var(--muted)}
.myshows-status[data-status="Withdrawn"]{border-color:var(--line);background:var(--surface);color:var(--muted)}
.myshows-card-grid{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.myshows-card-grid.active{display:grid}
.myshows-list.hidden{display:none}
.myshows-card{appearance:none;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);padding:20px;min-height:176px;text-align:left;display:flex;flex-direction:column;gap:12px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.035);overflow:hidden}
.myshows-card:hover{border-color:color-mix(in srgb,var(--text) 20%,var(--line) 80%);box-shadow:0 12px 30px rgba(0,0,0,.07)}
.myshows-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.myshows-card .myshows-status{justify-self:auto;flex:0 0 auto}
.myshows-card-name{font-size:20px;font-weight:700;line-height:1.25}
.myshows-card-meta{font-size:16px;color:var(--muted);line-height:1.5}
.myshows-card-meta + .myshows-card-meta{margin-top:-5px}
.myshows-empty{display:none;border:1px dashed var(--line);border-radius:17px;background:var(--surface);padding:34px 20px;text-align:center}
.myshows-empty.show{display:block}
.myshows-empty strong{display:block;font-size:19px;margin-bottom:6px}
.myshows-empty span{font-size:16px;color:var(--muted)}
.myshows-drawer-backdrop{position:fixed;inset:0;z-index:420;background:rgba(10,9,13,.42);opacity:0;pointer-events:none;transition:opacity .18s ease}
.myshows-drawer{position:fixed;right:0;top:0;z-index:430;width:min(560px,100vw);height:100vh;height:100dvh;background:var(--page);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column}
.myshows-drawer-backdrop.open{opacity:1;pointer-events:auto}
.myshows-drawer.open{transform:none;box-shadow:-22px 0 60px rgba(0,0,0,.24);}
.myshows-drawer-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:24px 26px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.myshows-drawer-head h2{margin:0;font-size:28px;font-weight:700}
.myshows-drawer-head p{margin:7px 0 0;color:var(--muted);font-size:16px;line-height:1.45}
.myshows-drawer-close{appearance:none;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;flex:0 0 38px}
.myshows-drawer-close svg{width:19px;height:19px;stroke:currentColor}
.myshows-drawer-body{padding:22px 26px 30px;overflow:auto;flex:1 1 auto;min-height:0}
.myshows-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.myshows-field{display:grid;gap:7px}
.myshows-field.full{grid-column:1/-1}
.myshows-field label{font-size:16px;font-weight:650}
.myshows-field input,.myshows-field select,.myshows-field textarea{width:100%;min-height:45px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);padding:0 12px;font:400 16px/1.2 "Google Sans Flex",Arial,sans-serif}
/* Kelley's report 2026-09-29, with screenshot: the native select arrow
   sits flush against the box's edge in the Add Application drawer --
   12px matches input/textarea, but a select's own built-in chevron
   needs more room than plain text does to read as "inside" the field. */
.myshows-field select{padding-right:32px}
.myshows-field textarea{padding:10px 12px;resize:vertical;font-family:"Google Sans Flex",Arial,sans-serif}
.myshows-field input:focus,.myshows-field select:focus{outline:2px solid rgba(118,89,168,.22);outline-offset:1px;border-color:#7659A8}
.myshows-field input[type="file"]{min-height:0;padding:9px 12px}
.myshows-field .optional{font-weight:500;color:var(--muted)}
.field-label .optional{font-weight:500;color:var(--muted);font-size:13px}
.myshows-field-hint{margin:0;font-size:14px;color:var(--muted)}
.myshows-form-subheading{margin:50px 0 0;font-size:16px;font-weight:700;color:var(--text)}
#newShowCoverPhotoPreview{width:100%;max-height:160px;object-fit:cover;border-radius:11px;border:1px solid var(--line)}
.myshows-drawer-foot{margin-top:auto;padding:16px 26px;border-top:1px solid var(--line);background:var(--surface);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.myshows-drawer-foot #newShowError{flex-basis:100%;order:-1;text-align:left}
.myshows-cancel{appearance:none;min-height:42px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--text);padding:0 16px;font:600 16px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
html[data-theme="light"] .myshows-record,html[data-theme="light"] .myshows-card{box-shadow:0 10px 26px rgba(56,48,62,.06)}
@media(max-width:1000px){
.myshows-toolbar{grid-template-columns:minmax(220px,1fr) auto auto}
.myshows-view-toggle{grid-column:auto}
.myshows-record{grid-template-columns:minmax(220px,1.3fr) minmax(150px,.7fr) minmax(160px,.8fr) auto;gap:13px;padding:17px}
.myshows-card-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
.myshows-head{align-items:stretch}
.myshows-head .glass-action{flex:0 0 auto}
.myshows-toolbar{grid-template-columns:1fr auto auto}
.myshows-sort{grid-column:1/-1}
.myshows-record{grid-template-columns:1fr auto;gap:10px 14px}
.myshows-record-name{grid-column:1/2}
.myshows-record .myshows-status{grid-column:2/3;grid-row:1/2}
.myshows-record-date,.myshows-record-location{grid-column:1/-1}
.myshows-record-label{display:inline}
.myshows-card-grid{grid-template-columns:1fr}
.myshows-form-grid{grid-template-columns:1fr}
.myshows-field.full{grid-column:auto}
.myshows-drawer-head,.myshows-drawer-body,.myshows-drawer-foot{padding-left:18px;padding-right:18px}
}
@media(max-width:520px){
.myshows-head{display:grid}
.myshows-head .glass-action{width:100%}
.myshows-toolbar{grid-template-columns:1fr auto}
.myshows-filter-wrap{grid-column:auto}
.myshows-view-toggle{grid-column:auto}
.myshows-sort{grid-column:1/-1}
.myshows-record{padding:16px}
.myshows-record-name{font-size:18px}
.myshows-tabs{margin-left:-4px;margin-right:-4px}
.myshows-tab{padding-left:10px;padding-right:10px}
}
.myshows-page{max-width:1240px;margin:0 auto;padding-bottom:54px}
.myshows-head{margin-bottom:20px}
.myshows-head-note{max-width:none}
.myshows-tabs{gap:22px;margin:0 0 20px;padding:0 2px}
.myshows-tab{padding:12px 2px 11px}
.myshows-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(180px,220px) auto;gap:10px;align-items:center;margin:0 0 12px}
.myshows-count{margin:0 0 18px;color:var(--muted);font-size:16px}
.myshows-hero{
  position:relative;overflow:hidden;margin:0 0 24px;border:1px solid var(--line);border-radius:24px;
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  box-shadow:0 14px 36px rgba(0,0,0,.07)
}
.myshows-hero[hidden]{display:none!important}
.myshows-hero-inner{padding:24px}
.myshows-hero-kicker{margin:0 0 18px;font-size:24px;font-weight:700;letter-spacing:-.015em}
.myshows-hero-main{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:28px;align-items:stretch}
.myshows-hero-photo{position:relative;margin:0;min-height:290px;border-radius:20px;overflow:hidden;background:var(--line)}
.myshows-hero-photo img{width:100%;height:100%;min-height:290px;object-fit:cover;display:block}
.myshows-hero-location{position:absolute;left:16px;bottom:16px;padding:8px 13px;border-radius:999px;background:rgba(34,36,42,.88);color:#F2F3F5;font-size:16px;font-weight:700;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.myshows-hero-copy{min-width:0;padding:4px 6px 4px 0;display:flex;flex-direction:column;justify-content:center}
.myshows-hero-statusline{font-size:16px;color:var(--muted);margin-bottom:10px}
.myshows-hero-title{margin:0;font-size:34px;line-height:1.08;font-weight:700;letter-spacing:-.025em}
.myshows-hero-date{margin-top:12px;font-size:20px;line-height:1.35;font-weight:650}
.myshows-hero-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin-top:18px}
.myshows-hero-fact{font-size:16px;line-height:1.45;color:var(--muted)}
.myshows-hero-fact strong{color:var(--text);font-weight:700}
.myshows-hero-action{align-self:flex-start;margin-top:20px}
.myshows-hero-weather{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.myshows-hero-weather-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:8px}
.myshows-hero-weather-head strong{font-size:18px}
.myshows-hero-weather-head span{font-size:16px;color:var(--muted);font-weight:650}
.myshows-hero-weather-row{display:grid;grid-template-columns:56px 30px minmax(90px,.7fr) minmax(120px,1fr) minmax(110px,1fr);gap:12px;align-items:center;min-height:52px;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent);font-size:16px}
.myshows-hero-weather-row:first-of-type{border-top:0}
.myshows-hero-weather-row svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6}
.myshows-hero-weather-day{font-weight:700}
.myshows-hero-weather-temp{font-weight:700}
.myshows-hero-weather-stat{color:var(--muted)}
/* Table view -- new alongside the card grid, same underlying data/filters. */
.myshows-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.myshows-table-wrap[hidden]{display:none}
.myshows-table{width:100%;border-collapse:collapse}
.myshows-table thead th{text-align:left;padding:13px 16px;cursor:pointer;user-select:none;white-space:nowrap;
  font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.myshows-table thead th:hover{color:var(--text)}
.myshows-table-arrow{margin-left:4px;color:#9C7FA7}
.myshows-table thead th.is-sorted{color:var(--text)}
.myshows-table tbody tr{cursor:pointer;transition:background .12s}
.myshows-table tbody tr:hover{background:var(--hover-row)}
.myshows-table tbody td{padding:13px 16px;border-bottom:1px solid var(--line);font-size:15px}
.myshows-table tbody tr:last-child td{border-bottom:0}
/* Applications' default grouped-by-status view, 2026-09-29 -- a full-width
   row between groups instead of a separate section wrapper, since this
   stays a single <table> (Kelley's call: table-only, no card/calendar). */
.myshows-table tbody tr.myshows-group-row{cursor:default}
.myshows-table tbody tr.myshows-group-row:hover{background:transparent}
.myshows-table tbody tr.myshows-group-row td{padding:16px 16px 8px;border-bottom:0;display:flex;align-items:center}
.myshows-table tbody tr.myshows-group-row:first-child td{padding-top:2px}
.myshows-group-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 8px;vertical-align:middle;margin-right:8px}
.myshows-group-label{display:inline;font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text);vertical-align:middle}
/* Reused as the per-row Status cell too (Kelley's call: one dot+text
   treatment everywhere on this page, not a heavy pill duplicating what
   the group header already says) -- normal case there, not shouting
   uppercase, set inline per-call via style="text-transform:none". */
.myshows-table tbody td.myshows-table-meta{color:var(--muted)}
.myshows-table tbody td.is-paid{color:#3F8F5F;font-weight:600}
html[data-theme="dark"] .myshows-table tbody td.is-paid{color:#7FD9A0}
.myshows-table tbody td.is-unpaid{color:#B85C5C;font-weight:600}
html[data-theme="dark"] .myshows-table tbody td.is-unpaid{color:#E28B8B}
@media(max-width:700px){
  .myshows-table thead th,.myshows-table tbody td{padding:11px 12px;font-size:14px}
}

.myshows-card-groups{display:grid;gap:26px}
.myshows-month-group{display:grid;gap:12px}
.myshows-month-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:0 2px}
.myshows-month-head h2{margin:0;font-size:22px;line-height:1.2;font-weight:700}
.myshows-month-head span{font-size:16px;color:var(--muted)}
.myshows-month-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.myshows-card{
  min-height:176px;padding:18px 18px 16px;border-radius:18px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:74px minmax(0,1fr);gap:16px;align-items:stretch
}
.myshows-card::after{content:"";position:absolute;right:-42px;bottom:-54px;width:150px;height:150px;border-radius:50%;border:1px solid color-mix(in srgb,#7659A8 30%,transparent);opacity:.6;pointer-events:none}
.myshows-date-block{border-radius:15px;background:color-mix(in srgb,#7659A8 10%,var(--surface) 90%);border:1px solid color-mix(in srgb,#7659A8 26%,var(--line) 74%);padding:11px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;align-self:start}
.myshows-date-month{font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.myshows-date-day{margin-top:3px;font-size:27px;line-height:1;font-weight:700}
.myshows-card-body{min-width:0;display:flex;flex-direction:column}
.myshows-card-top{gap:12px}
.myshows-card-name{font-size:20px}
.myshows-card-meta{font-size:16px;margin-top:8px!important;color:var(--muted);line-height:1.45}
.myshows-card-link{margin-top:auto;padding-top:14px;color:var(--app-link,#9C7FA7);font-size:16px;font-weight:700}
.myshows-card:hover .myshows-card-link{text-decoration:underline}
.myshows-status{font-size:16px;min-height:32px;padding:0 10px}
.myshows-list{gap:10px}
.myshows-record{grid-template-columns:minmax(250px,1.25fr) minmax(150px,.65fr) minmax(200px,.85fr) auto;gap:20px;padding:17px 20px}
.myshows-record-date,.myshows-record-location{display:flex;align-items:center}
.myshows-record-label{margin-right:8px}
.myshows-record-name{font-size:19px}
#myshowsCards.active{display:block}
#myshowsList.hidden{display:none}
.myshows-view-btn.active{background:color-mix(in srgb,var(--text) 11%,transparent)}
@media(max-width:980px){
.myshows-hero-main{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:22px}
.myshows-month-grid{grid-template-columns:1fr 1fr}
.myshows-toolbar{grid-template-columns:minmax(220px,1fr) auto auto}
.myshows-view-toggle{grid-column:auto}
.myshows-sort{grid-column:1/-1}
}
@media(max-width:760px){
.myshows-tabs{gap:18px}
.myshows-toolbar{grid-template-columns:1fr auto auto}
.myshows-hero-inner{padding:18px}
.myshows-hero-main{grid-template-columns:1fr}
.myshows-hero-photo{min-height:220px}
.myshows-hero-photo img{min-height:220px}
.myshows-hero-title{font-size:30px}
.myshows-hero-facts{grid-template-columns:1fr}
.myshows-hero-weather-row{grid-template-columns:48px 28px 1fr;gap:10px}
.myshows-hero-weather-stat{display:none}
.myshows-month-grid{grid-template-columns:1fr}
.myshows-card{grid-template-columns:68px minmax(0,1fr)}
}
@media(max-width:520px){
.myshows-head{display:grid}
.myshows-head .glass-action{width:100%}
.myshows-tabs{gap:16px}
.myshows-tab{font-size:16px}
.myshows-toolbar{grid-template-columns:1fr auto}
.myshows-filter-wrap{grid-column:auto}
.myshows-sort{grid-column:1/-1}
.myshows-view-toggle{grid-column:2}
.myshows-card-top{display:grid}
.myshows-card .myshows-status{justify-self:start}
}
.myshows-hero{border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 95%,#7659A8 5%),var(--surface));}
.myshows-hero-inner{padding:26px 28px 24px}
.myshows-hero-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}
.myshows-hero-eyebrow{font-size:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9C7FA7;margin-bottom:7px}
html[data-theme="light"] .myshows-hero-eyebrow{color:#6B4772}
.myshows-hero-kicker{margin:0;font-size:32px;line-height:1.08;font-weight:700;letter-spacing:-.025em}
.myshows-hero-date{margin-top:8px;font-size:18px;line-height:1.35;font-weight:650;color:var(--muted)}
.myshows-hero-status{margin-top:2px;flex:0 0 auto}
.myshows-hero-command-grid{display:grid;grid-template-columns:minmax(260px,34%) minmax(0,1fr);gap:28px;align-items:stretch}
.myshows-hero-photo{min-height:330px;height:100%}
.myshows-hero-photo img{min-height:330px}
.myshows-hero-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-content:stretch}
.myshows-detail-group{min-width:0;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:17px;padding:16px 16px 14px;background:color-mix(in srgb,var(--surface) 82%,transparent)}
.myshows-detail-group h3{margin:0 0 12px;font-size:16px;line-height:1.2;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.myshows-detail-list{margin:0;display:grid;gap:10px}
.myshows-detail-list div{display:grid;gap:3px;padding-bottom:9px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.myshows-detail-list div:last-child{border-bottom:0;padding-bottom:0}
.myshows-detail-list dt{font-size:16px;font-weight:650;color:var(--text)}
.myshows-detail-list dd{margin:0;font-size:16px;line-height:1.36;color:var(--muted)}
.myshows-month-head{justify-content:flex-start;gap:8px;padding:0}
.myshows-month-head h2{display:flex;align-items:baseline;gap:8px}
.myshows-month-head .myshows-month-count{font-size:16px;font-weight:500;color:var(--muted)}
.myshows-month-grid>.myshows-card:only-child{grid-column:1/-1}
.myshows-card{padding:0;min-height:198px;grid-template-columns:88px minmax(0,1fr) 34%;gap:0;align-items:stretch}
.myshows-card::after{display:none}
.myshows-date-block{margin:18px 0 18px 18px;align-self:start;min-height:84px;border-radius:16px;padding:12px 8px}
.myshows-date-day{font-size:30px}
.myshows-card-body{padding:18px 16px 18px 16px;min-width:0;justify-content:flex-start}
.myshows-card-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}
.myshows-card-name{font-size:20px;line-height:1.18}
.myshows-card-meta{margin-top:10px!important}
/* Kelley's call 2026-09-30: fixed 4:3 everywhere a show's cover photo
   renders instead of an unconstrained min-height (the Dashboard hero's
   min-height-only box let a tall source photo balloon the whole row via
   height:100%). No align-self override here -- #myshows2Root's card view
   is a flex-column layout where align-self controls WIDTH, not height,
   and broke the image down to a narrow strip; that view already has its
   own explicit height (min-height:110px!important) and doesn't need this
   rule's height behavior at all, just inherits aspect-ratio harmlessly. */
.myshows-card-image{position:relative;aspect-ratio:4/3;overflow:hidden;border-left:1px solid color-mix(in srgb,var(--line) 78%,transparent);background:var(--line)}
.myshows-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s ease}
.myshows-card:hover .myshows-card-image img{transform:scale(1.018)}
.myshows-card-image span{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:6px 9px;border-radius:999px;background:rgba(34,36,42,.82);color:#F2F3F5;font-size:16px;font-weight:650;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.myshows-card-link{display:none!important}
.myshows-month-grid>.myshows-card:only-child{grid-template-columns:90px minmax(0,1fr) minmax(260px,38%)}
.myshows-month-grid>.myshows-card:only-child .myshows-card-image{min-height:220px}
.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{min-height:220px}
@media(max-width:1080px){
.myshows-hero-details{grid-template-columns:1fr 1fr}
.myshows-detail-group:last-child{grid-column:1/-1}
.myshows-card{grid-template-columns:80px minmax(0,1fr) 31%}
}
@media(max-width:820px){
.myshows-hero-heading-row{display:grid;gap:12px}
.myshows-hero-status{justify-self:start}
.myshows-hero-command-grid{grid-template-columns:1fr}
.myshows-hero-photo,.myshows-hero-photo img{min-height:260px}
.myshows-hero-details{grid-template-columns:1fr 1fr}
.myshows-month-grid{grid-template-columns:1fr}
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:76px minmax(0,1fr) 34%}
}
@media(max-width:600px){
.myshows-hero-inner{padding:20px 18px}
.myshows-hero-kicker{font-size:28px}
.myshows-hero-details{grid-template-columns:1fr}
.myshows-detail-group:last-child{grid-column:auto}
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:72px minmax(0,1fr)}
.myshows-card-image{grid-column:1/-1;min-height:170px;border-left:0;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent)}
.myshows-card-image img,.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{min-height:170px}
.myshows-date-block{margin:16px 0 0 16px}
.myshows-card-body{padding:16px}
.myshows-card-top{grid-template-columns:1fr}
.myshows-card .myshows-status{justify-self:start}
}
.myshows-page{
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding-bottom:54px;
}
.myshows-hero-heading-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(520px,auto);
  gap:30px;
  align-items:start;
  margin-bottom:22px;
}
.myshows-hero-heading-copy{min-width:0;padding-top:2px}
.myshows-hero-at-a-glance{min-width:0;justify-self:end;width:min(100%,640px)}
.myshows-hero-topline{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.myshows-hero-date{margin:0;font-size:18px;line-height:1.35;font-weight:700;color:var(--text);text-align:right}
.myshows-hero-status{margin:0}
.myshows-hero-weather{
  margin:10px 0 0;
  padding:0;
  border-top:0;
}
.myshows-hero-weather-row{
  grid-template-columns:44px 26px 90px minmax(108px,auto) minmax(98px,auto);
  justify-content:end;
  gap:10px;
  min-height:36px;
  border-top:0;
  font-size:16px;
}
.myshows-hero-weather-row + .myshows-hero-weather-row{margin-top:2px}
.myshows-hero-weather-row svg{width:22px;height:22px}
.myshows-hero-weather-day,.myshows-hero-weather-temp{font-weight:700}
.myshows-hero-weather-stat{white-space:nowrap}
.myshows-hero-command-grid{
  grid-template-columns:minmax(390px,44%) minmax(0,1fr);
  gap:28px;
}
.myshows-hero-photo,.myshows-hero-photo img{min-height:390px}
.myshows-hero-photo{border-radius:21px}
.myshows-hero-details{align-content:stretch}
@media(max-width:1180px){
.myshows-hero-heading-row{grid-template-columns:minmax(0,1fr) minmax(420px,auto)}
.myshows-hero-command-grid{grid-template-columns:minmax(330px,40%) minmax(0,1fr)}
.myshows-hero-weather-row{grid-template-columns:42px 25px 84px auto auto}
}
@media(max-width:980px){
.myshows-hero-heading-row{grid-template-columns:1fr;gap:14px}
.myshows-hero-at-a-glance{justify-self:stretch;width:100%}
.myshows-hero-topline{justify-content:flex-start}
.myshows-hero-date{text-align:left}
.myshows-hero-weather-row{justify-content:start}
.myshows-hero-command-grid{grid-template-columns:1fr}
.myshows-hero-photo,.myshows-hero-photo img{min-height:320px}
}
@media(max-width:760px){
.myshows-hero-weather-row{grid-template-columns:42px 25px 1fr;gap:9px}
.myshows-hero-weather-stat{display:none}
.myshows-hero-photo,.myshows-hero-photo img{min-height:260px}
}
@media(max-width:600px){
.myshows-hero-topline{display:grid;justify-content:start;gap:9px}
}
.myshows-hero-heading-row{
  grid-template-columns:minmax(0,1fr) minmax(430px,520px);
  gap:22px;
  align-items:start;
}
.myshows-hero-heading-copy{padding-top:0}
.myshows-hero-kicker{
  white-space:nowrap;
  margin-top:2px;
}
.myshows-hero-topline{justify-content:flex-end}
.myshows-hero-details{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  align-content:start;
}
.myshows-detail-group{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:16px 18px;
}
.myshows-detail-group h3{
  margin:2px 0 0;
}
.myshows-detail-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:24px;
  row-gap:10px;
}
.myshows-detail-list div{
  padding:0 0 9px;
}
.myshows-detail-list div:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}
.myshows-card .myshows-status{display:none!important}
@media(max-width:1180px){
.myshows-hero-heading-row{grid-template-columns:minmax(0,1fr) minmax(390px,470px)}
.myshows-hero-kicker{font-size:30px}
.myshows-hero-command-grid{grid-template-columns:minmax(360px,42%) minmax(0,1fr)}
.myshows-detail-group{grid-template-columns:108px minmax(0,1fr);gap:14px}
.myshows-detail-list{grid-template-columns:1fr 1fr;column-gap:18px}
}
@media(max-width:980px){
.myshows-hero-heading-row{grid-template-columns:1fr;gap:10px}
.myshows-hero-kicker{white-space:normal;font-size:30px}
.myshows-hero-at-a-glance{justify-self:stretch;width:100%}
.myshows-hero-topline{justify-content:flex-start}
.myshows-hero-date{text-align:left}
.myshows-hero-weather-row{justify-content:start}
.myshows-hero-command-grid{grid-template-columns:1fr}
.myshows-detail-group{grid-template-columns:130px minmax(0,1fr)}
}
@media(max-width:760px){
.myshows-detail-group{grid-template-columns:1fr;gap:10px}
.myshows-detail-list{grid-template-columns:1fr}
.myshows-detail-list div:nth-last-child(-n+2){border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);padding-bottom:9px}
.myshows-detail-list div:last-child{border-bottom:0;padding-bottom:0}
}
.myshows-hero-heading-copy .myshows-hero-date{
  margin-top:8px;
  font-size:18px;
  line-height:1.35;
  font-weight:650;
  color:var(--muted);
  text-align:left;
}
.myshows-mobile-add-wrap{display:none}
.myshows-filter-panel{width:min(420px,calc(100vw - 36px));max-height:min(72vh,680px);overflow:auto}
.myshows-filter-section{padding:0 0 14px;margin:0 0 14px;border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent)}
.myshows-filter-section:last-of-type{border-bottom:0;margin-bottom:0}
.myshows-filter-grid--single{grid-template-columns:1fr}
.myshows-filter-title{margin-bottom:9px}
.myshows-record{grid-template-columns:minmax(260px,1.35fr) minmax(180px,.65fr) minmax(230px,.85fr) 150px;column-gap:22px}
.myshows-record>*{min-width:0}
.myshows-record .myshows-status{width:max-content;max-width:150px;justify-self:end}
.myshows-detail-stack{display:grid!important;gap:3px!important}
.myshows-detail-stack span{display:block}
.myshows-detail-stack strong{color:var(--text);font-weight:650}
@media(max-width:820px){
.myshows-page{width:100%!important;max-width:none!important}
.myshows-head-note{display:none!important}
.myshows-head{margin-bottom:16px!important}
.myshows-head #myshowsAddButton{display:none!important}
.myshows-head #applicationsAddButton{display:none!important}
.myshows-mobile-add-wrap{display:flex;justify-content:stretch;padding:22px 0 calc(16px + env(safe-area-inset-bottom))}
.myshows-mobile-add-wrap .glass-action{width:100%;justify-content:center}
.myshows-toolbar{grid-template-columns:minmax(0,1fr) auto auto!important;gap:8px!important}
.myshows-search{min-width:0}
.myshows-sort{grid-column:1/-1!important;width:100%}
.myshows-filter-panel{position:fixed;left:12px;right:12px;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;max-height:72vh;border-radius:18px}
.myshows-hero-weather-row{grid-template-columns:34px 22px 82px minmax(100px,1fr) minmax(82px,auto)!important;gap:6px!important;font-size:16px!important;min-height:38px!important}
.myshows-hero-weather-stat{display:block!important;white-space:nowrap!important;font-size:16px!important}
.myshows-hero-weather-row svg{width:20px!important;height:20px!important}
.myshows-record{grid-template-columns:minmax(0,1fr)!important;gap:10px!important;padding:18px!important;width:100%!important;overflow:hidden}
.myshows-record-name,.myshows-record-date,.myshows-record-location,.myshows-record .myshows-status{grid-column:1!important;grid-row:auto!important;justify-self:start!important;max-width:100%!important}
.myshows-record .myshows-status{margin-top:2px}
.myshows-record-date,.myshows-record-location{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start!important}
.myshows-record-label{display:inline!important;margin:0!important}
}
@media(max-width:520px){
.myshows-toolbar{grid-template-columns:minmax(0,1fr) auto!important}
.myshows-view-toggle{grid-column:2!important}
.myshows-filter-wrap{grid-column:auto!important}
.myshows-sort{grid-column:1/-1!important}
.myshows-filter-grid{grid-template-columns:1fr 1fr}
.myshows-filter-grid--single{grid-template-columns:1fr}
.myshows-hero-inner{padding-left:14px!important;padding-right:14px!important}
.myshows-hero-weather-row{grid-template-columns:30px 20px 74px minmax(92px,1fr) minmax(76px,auto)!important;gap:5px!important}
}

/* ---- from style block at offset 221048 ---- */
.nav-item-myshows{margin:2px 0!important}
.myshows-related-people{height:auto!important;min-height:76px!important}
.myshows-related-people.is-open{min-height:300px!important}
.myshows-related-people.is-open .myshows-related-people-reveal{grid-template-rows:1fr!important;opacity:1!important;border-top-color:rgba(255,255,255,.1)!important;padding-bottom:16px!important}
.myshows-related-people.is-open .related-people-cue{opacity:1!important;transform:rotate(90deg)!important}
.myshows-related-people.is-open .related-people-cue i:last-child{opacity:0!important}
.myshows-operational-panel{
  margin-top:18px;padding:18px;border:1px solid rgba(168,1,61,.32);border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)
}
html[data-theme="light"] .myshows-operational-panel{background:rgba(255,255,255,.48);border-color:rgba(168,1,61,.2)}
.myshows-operational-panel .myshows-outstanding{margin:0 0 18px;padding:0 0 18px;border:0;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0;background:none;box-shadow:none}
html[data-theme="light"] .myshows-operational-panel .myshows-outstanding{border-bottom-color:rgba(41,27,51,.12)}
.myshows-outstanding{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.myshows-urgency-group{min-width:0}
.myshows-urgency-line{margin-bottom:8px}
.myshows-urgency-dot,.urgency-dot{display:inline-block;width:1em;height:1em;flex:0 0 1em;border-radius:50%}
.myshows-urgency-group[data-urgency="critical"] .myshows-urgency-dot{background:#A8013D}
.myshows-urgency-group[data-urgency="important"] .myshows-urgency-dot{background:var(--gold,#C59B3C)}
.myshows-operational-panel .myshows-hero-command-grid{display:block!important}
.myshows-operational-panel .myshows-hero-details{border:0!important;background:none!important;padding:0!important;box-shadow:none!important}
.myshows-operational-panel .myshows-detail-group{padding:0!important}
.myshows-peek-tasks{padding:18px 0 22px}
.myshows-peek-tasks>h3{margin:0 0 14px;font-family:"Bebas Neue",sans-serif;font-size:25px;letter-spacing:.055em}
.myshows-peek-task-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.myshows-peek-task-group h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:700 13px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase}
.myshows-peek-task-group[data-urgency="overdue"] .urgency-dot{background:#D56AA0}
.myshows-peek-task-group[data-urgency="critical"] .urgency-dot{background:#A8013D}
.myshows-peek-task-group[data-urgency="important"] .urgency-dot{background:var(--gold,#C59B3C)}
.myshows-peek-task-group[data-urgency="open"] .urgency-dot{background:var(--blue,#2E6FA3)}
.myshows-peek-task-row{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.35;cursor:pointer}
.myshows-peek-task-row input,.myshows-task-row input{appearance:none;width:19px;height:19px;flex:0 0 19px;margin:0;color:inherit;border:1.5px solid currentColor;border-radius:50%;background:transparent;cursor:pointer}
.myshows-peek-task-row input:checked,.myshows-task-row input:checked{background:currentColor;box-shadow:inset 0 0 0 4px var(--aubergine,#291B33)}
html[data-theme="light"] .myshows-peek-task-row input:checked,html[data-theme="light"] .myshows-task-row input:checked{box-shadow:inset 0 0 0 4px #EAF3F7}
.myshows-peek-task-row.is-complete{display:none}
.myshows-related-people{margin-top:22px;border:1px solid rgba(255,255,255,.13);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.025)}
html[data-theme="light"] .myshows-related-people{border-color:rgba(41,27,51,.14);background:rgba(255,255,255,.42)}
.myshows-related-people-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.myshows-related-people-toggle::-webkit-details-marker{display:none}
.myshows-related-people-toggle::marker{content:""}
.myshows-related-people-toggle>span:first-child{display:grid;gap:3px}
.myshows-related-people-toggle strong{font-family:"Bebas Neue",sans-serif;font-size:23px;line-height:1;letter-spacing:.055em;text-transform:uppercase}
.myshows-related-people-toggle small{font-size:13px;opacity:.7}
.myshows-related-people[open] .related-people-cue{opacity:1;transform:rotate(90deg)}
.myshows-related-people[open] .related-people-cue i:last-child{opacity:0}
#relatedPeopleState:checked + .myshows-related-people-toggle .related-people-cue{opacity:1;transform:rotate(90deg)}
#relatedPeopleState:checked + .myshows-related-people-toggle .related-people-cue i:last-child{opacity:0}
.myshows-related-people-reveal{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows 360ms cubic-bezier(.22,1,.36,1),opacity 220ms ease;border-top:1px solid transparent}
.myshows-related-people-reveal{overflow:hidden}
.myshows-related-people-reveal>*{overflow:hidden;min-height:0}
.myshows-related-people[open] .myshows-related-people-reveal{grid-template-rows:1fr;opacity:1;border-top-color:rgba(255,255,255,.1)}
#relatedPeopleState:checked ~ .myshows-related-people-reveal{grid-template-rows:1fr;opacity:1;border-top-color:rgba(255,255,255,.1)}
.myshows-related-people-reveal{padding:0 18px}
.myshows-related-people[open] .myshows-related-people-reveal{padding-bottom:16px}
#relatedPeopleState:checked ~ .myshows-related-people-reveal{padding-bottom:16px}
@media(max-width:760px){
.myshows-outstanding,.myshows-peek-task-groups{grid-template-columns:1fr}
.myshows-operational-panel{padding:15px}
}
@media(prefers-reduced-motion:reduce){
.myshows-related-people-reveal,.related-people-cue,.related-people-cue i{transition:none!important}
}

/* ---- from style block at offset 232678 ---- */
@media (max-width:820px){
.dashboard-wrap,.myshows-page,.contacts-screen,.contacts-page,.profile-page{
    width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;
  }
.section-card,.weekend-card,.myshows-hero,.myshows-card,.profile-card,.contact-card{max-width:none!important}
}

/* ---- from style block at offset 233969 ---- */
.myshows-record[hidden]{display:none!important}
.myshows-hero{cursor:pointer}
.myshows-hero:focus-visible{outline:2px solid #9C7FA7;outline-offset:3px}
.myshows-outstanding{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:13px 15px;border:1px solid color-mix(in srgb,#D6A12E 42%,var(--line) 58%);border-radius:15px;background:color-mix(in srgb,#D6A12E 8%,var(--surface) 92%)}
.myshows-outstanding-icon{width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:grid;place-items:center;border:1px solid #D6A12E;color:#D6A12E;font-weight:800}
.myshows-outstanding-copy{display:grid;gap:2px;min-width:0}
.myshows-outstanding-copy strong{font-size:16px}
.myshows-outstanding-copy span{font-size:16px;line-height:1.35;color:var(--muted)}
.myshows-outstanding#myshowsOutstanding{border-color:#6D7E8D;background:#2F343A;color:#F2F3F5}
#myshowsOutstanding .myshows-outstanding-icon{border-color:#6D7E8D;color:#6D7E8D}
#myshowsOutstanding .myshows-outstanding-copy strong{color:#F2F3F5}
#myshowsOutstanding .myshows-outstanding-copy span{color:rgba(242,243,245,.78)}
html[data-theme="dark"] .myshows-outstanding#myshowsOutstanding{border-color:#6E9FD0;background:#22242A}
html[data-theme="dark"] #myshowsOutstanding .myshows-outstanding-icon{border-color:#6E9FD0;color:#6E9FD0}
.myshows-address-stack{gap:2px!important}
.myshows-address-stack span{line-height:1.35}
.myshows-detail-list .myshows-notes-row{grid-column:1/-1;border-bottom:0;padding-bottom:0}
.myshows-detail-list>div{align-content:start}
.myshows-detail-list dd{min-width:0}
.myshows-detail-list .myshows-detail-stack>span{min-width:0}
.myshows-detail-list .myshows-detail-stack>span:has(strong){display:grid;grid-template-columns:86px minmax(0,1fr);column-gap:7px;align-items:start}
.myshows-card-snapshot{display:grid;grid-template-columns:minmax(105px,.45fr) minmax(0,1fr);gap:10px 16px;margin-top:14px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent);font-size:16px;color:var(--muted)}
.myshows-card-snapshot>span{display:grid;gap:3px}
.myshows-card-snapshot b{color:var(--text);font-size:16px}
.myshows-event-peek-backdrop{position:fixed;inset:0;z-index:520;background:rgba(10,9,13,.46);opacity:0;pointer-events:none;transition:opacity .18s ease}
.myshows-event-peek-backdrop.open{opacity:1;pointer-events:auto}
.myshows-event-peek{position:fixed;right:0;top:0;z-index:530;width:min(720px,100vw);height:100vh;height:100dvh;background:var(--page);border-left:1px solid var(--line);transform:translateX(102%);transition:transform .22s ease;display:flex;flex-direction:column}
.myshows-event-peek.open{transform:none;box-shadow:-24px 0 70px rgba(0,0,0,.30);}
.myshows-event-peek-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:24px 26px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.myshows-event-peek-kicker{font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9C7FA7;margin-bottom:6px}
.myshows-event-peek-head h2{margin:0;font-size:28px;line-height:1.1}
/* Editable event name -- looks like a plain heading at rest (an event
   getting sold to a new organizer and renamed is a real, if rare, need),
   picks up a visible border/background only on focus so it still reads
   as "this is text" rather than permanently looking like a form field. */
.myshows-event-peek-title-input{
  display:block;width:100%;box-sizing:border-box;margin:0;padding:2px 4px 4px;cursor:text;
  font-family:"Google Sans Flex",Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.1;
  color:var(--text);background:transparent;overflow-wrap:break-word;white-space:normal;
  border:1px solid transparent;border-bottom:1px dashed var(--line);border-radius:8px 8px 0 0;
}
.myshows-event-peek-title-input:hover{border-bottom-style:solid;border-bottom-color:#8EA0AF}
.myshows-event-peek-title-input:focus{
  outline:none;background:var(--surface);border:1px solid var(--app-link,#9C7FA7);border-radius:8px;
}
.myshows-event-peek-head p{margin:7px 0 0;font-size:16px;color:var(--muted)}
.myshows-event-peek-body{padding:20px 26px 34px;overflow:auto;display:grid;gap:14px}
.myshows-peek-attention{display:flex;gap:12px;align-items:center;padding:14px 15px;border-radius:14px;border:1px solid color-mix(in srgb,#D6A12E 42%,var(--line) 58%);background:color-mix(in srgb,#D6A12E 8%,var(--surface) 92%)}
.myshows-peek-attention>div{display:grid;gap:2px}
.myshows-peek-attention strong,.myshows-peek-attention span{font-size:16px}
.myshows-peek-attention span{color:var(--muted)}
.myshows-peek-section{padding:18px 0 22px}
.myshows-peek-section h3{margin:0 0 12px;font-size:16px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.myshows-peek-grid{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
.myshows-peek-grid>div{display:grid;gap:3px;padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.myshows-peek-grid>div[hidden]{display:none!important}
.myshows-peek-grid>div.full{grid-column:1/-1}
.myshows-peek-grid dt{font-size:16px;font-weight:700}
.myshows-show-grid dt{padding-bottom:3px}
.myshows-peek-grid dd{margin:0;font-size:16px;line-height:1.4;color:var(--muted)}
.myshows-peek-expense-total{font-size:24px!important;font-weight:800;color:var(--text)!important}
/* The global "enforce app-wide link styling on ALL links" rule
   (uppercase, bold, 15px) would otherwise wreck a phone number/email
   address here -- same bug class as the Dashboard/My Shows rebuilds. */
.myshows-peek-grid dd a,#myshowsPeekOrganizerPhone,#myshowsPeekOrganizerEmail{
  font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;
  letter-spacing:normal!important;text-transform:none!important;text-decoration:underline!important;
  color:inherit!important;
}
.myshows-wifi-grid{display:grid!important;grid-template-columns:82px minmax(0,1fr);gap:3px 8px!important}

/* Organizer: search-existing-or-create-new. The card mirrors the rest of
   the peek's dt/dd rhythm; "Change" is a quiet text action, not a button,
   so it doesn't compete with the name for attention. */
/* Same [hidden]-losing-to-display bug as the log form below -- without
   this, the organizer card would render even when item.organizerId is
   null and organizerCard.hidden is true. */
.myshows-organizer[hidden]{display:none!important}
.myshows-organizer{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.myshows-organizer-info{display:grid;gap:4px;min-width:0}
.myshows-organizer-name{font-size:16px;font-weight:700;color:var(--text)}
.myshows-organizer-role{font-size:14px;color:var(--muted)}
.myshows-organizer-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:2px}
.myshows-organizer-links a{font-size:14px;font-weight:inherit!important;text-transform:none!important;letter-spacing:normal!important;color:var(--app-link,#9C7FA7)!important;text-decoration:none}
.myshows-organizer-links a:hover{text-decoration:underline}
.myshows-organizer-change{flex:0 0 auto;background:none;border:0;padding:0;font:inherit;font-size:14px;font-weight:650;color:var(--app-link,#9C7FA7);cursor:pointer}
.myshows-organizer-change:hover{text-decoration:underline}
.myshows-organizer-empty{font-size:14px;color:var(--muted);margin-bottom:12px}
.myshows-organizer-search{position:relative}
.myshows-organizer-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.22);max-height:220px;overflow-y:auto;padding:4px}
.myshows-organizer-result{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:7px;cursor:pointer}
.myshows-organizer-result:hover{background:color-mix(in srgb,#7659A8 14%,var(--surface) 86%)}
.myshows-organizer-result-name{font-size:15px;font-weight:650;color:var(--text)}
.myshows-organizer-result-meta{font-size:13px;color:var(--muted)}
.myshows-organizer-result-meta:empty{display:none}
.myshows-organizer-result-add{color:var(--app-link,#9C7FA7);font-weight:650}

/* Log Interaction: a dated call/email/text/note against whoever's
   currently the organizer. Quiet text-link trigger (matches "Change"),
   a small inline form, and a brief green confirmation instead of
   swapping the whole section into a different state. */
.myshows-organizer-activity{margin-top:14px}
.myshows-organizer-log-list{margin-top:10px;border-top:0}
.myshows-organizer-log-list .log-item:first-child{border-top:1px solid var(--line)}
.myshows-organizer-log-btn{background:none;border:0;padding:0;font:inherit;font-size:14px;font-weight:650;color:var(--app-link,#9C7FA7);cursor:pointer}
.myshows-organizer-log-btn:hover{text-decoration:underline}
.myshows-organizer-log-saved{margin-left:10px;font-size:13px;font-weight:650;color:#4D9A75}
/* [hidden] must win over the display:flex below, or the form stays
   visibly open regardless of its hidden attribute -- discovered live:
   the log form rendered open on every peek even though .hidden was
   true, because this rule's display:flex silently overrode the
   browser's default [hidden]{display:none} UA style. */
.myshows-organizer-log-form[hidden]{display:none!important}
.myshows-organizer-log-form{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.myshows-organizer-log-actions{display:flex;justify-content:flex-end;gap:8px}
.myshows-organizer-log-cancel{background:none;border:0;padding:7px 6px;font:inherit;font-size:14px;color:var(--muted);cursor:pointer}
.myshows-organizer-log-cancel:hover{color:var(--text)}
.myshows-organizer-log-save{background:#7659A8;border:0;border-radius:8px;padding:7px 16px;font:inherit;font-size:14px;font-weight:650;color:#fff;cursor:pointer}
.myshows-organizer-log-save:hover{background:color-mix(in srgb,#7659A8 88%,#000 12%)}
.myshows-organizer-log-save:disabled{opacity:.6;cursor:default}

/* Review section redesign -- was one long run of full-size bold/white
   labels with ad hoc margin-bottom/margin-top on individual pieces (20px
   here, 10px there), which read as thrown-together rather than a
   deliberate layout. .myshows-review-body now owns the vertical rhythm
   with a single `gap`, and each question label drops to a smaller, muted,
   medium-weight treatment -- quieter than the section heading but no
   longer competing with it either. */
.myshows-review-body{display:flex;flex-direction:column;gap:24px}
.myshows-review-stars{display:flex;align-items:center;gap:4px}
.myshows-star{background:none;border:0;padding:0;font-size:19px;line-height:1;color:color-mix(in srgb,var(--line) 55%,var(--muted) 45%);cursor:pointer;transition:color .12s ease,transform .12s ease}
.myshows-star:hover{transform:scale(1.15)}
.myshows-star.is-filled{color:#EFB646}
.myshows-review-question{display:flex;flex-direction:column;gap:9px}
.myshows-review-question-label{font-size:14px;font-weight:600;color:var(--muted);letter-spacing:.01em}
.myshows-review-radios{display:flex;gap:18px}
.myshows-review-radios label{display:flex;align-items:center;gap:7px;font-size:15px;color:var(--text);cursor:pointer}
.myshows-review-radios input{width:16px;height:16px;accent-color:#7659A8;cursor:pointer}
.myshows-review-notes-row{display:flex;flex-direction:column;gap:9px}
.myshows-review-notes-row textarea.myshows-inline-edit{min-height:76px}
.myshows-wifi-grid span{color:var(--text);font-weight:650}
.myshows-wifi-grid b{font-weight:400;color:var(--muted)}
.myshows-peek-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.myshows-peek-modules button{appearance:none;border:1px solid var(--line);border-radius:12px;background:var(--page);color:var(--text);padding:12px 13px;display:flex;justify-content:space-between;gap:12px;text-align:left;font:650 16px/1.25 "Google Sans Flex",Arial,sans-serif}
.myshows-peek-modules button span{color:var(--muted);font-weight:400}
@media(max-width:820px){
.myshows-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}
.myshows-head #myshowsAddButton{display:inline-flex!important;width:auto!important;min-width:126px!important;min-height:42px!important;padding:0 14px!important}
.myshows-head #applicationsAddButton{display:inline-flex!important;width:auto!important;min-width:126px!important;min-height:42px!important;padding:0 14px!important}
.myshows-card-snapshot{grid-template-columns:1fr;gap:8px}
.myshows-event-peek{width:100vw;border-left:0}
.myshows-event-peek-head,.myshows-event-peek-body{padding-left:16px;padding-right:16px}
}
@media(max-width:600px){
.myshows-hero-weather-row{grid-template-columns:30px 20px 72px minmax(86px,1fr) minmax(72px,auto)!important;gap:4px!important}
.myshows-hero-weather-stat{font-size:15px!important}
.myshows-detail-list .myshows-detail-stack>span:has(strong){grid-template-columns:82px minmax(0,1fr)}
.myshows-peek-grid{grid-template-columns:1fr}
.myshows-peek-grid>div.full{grid-column:auto}
.myshows-peek-modules{grid-template-columns:1fr}
}

/* ---- from style block at offset 239953 ---- */
.myshows-hero-weather-row{
  grid-template-columns:44px 26px 90px minmax(126px,auto)!important;
  grid-template-rows:auto auto!important;
  column-gap:10px!important;row-gap:1px!important;align-items:center!important;
}
.myshows-hero-weather-day,.myshows-hero-weather-row>svg,.myshows-hero-weather-temp{grid-row:1 / span 2!important;align-self:center!important}
.myshows-hero-weather-row .myshows-hero-weather-stat:nth-last-of-type(2){grid-column:4!important;grid-row:1!important}
.myshows-hero-weather-row .myshows-hero-weather-stat:last-of-type{grid-column:4!important;grid-row:2!important}
.myshows-card-snapshot{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px 20px!important;margin-top:16px!important;padding-top:14px!important;
}
.myshows-card-fact{display:grid!important;gap:4px!important;align-content:start!important;min-width:0}
.myshows-card-fact>b,.myshows-card-next>b{font-size:16px!important;color:var(--text)!important}
.myshows-card-fact>span,.myshows-card-next>span{font-size:16px!important;color:var(--muted)!important;line-height:1.35!important}
.myshows-card-payment{display:inline-flex!important;align-items:center!important;gap:7px!important}
.myshows-card-payment::before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 8px;background:#D6A12E}
.myshows-card-payment.is-paid::before{background:#4D9A75}
.myshows-card-next{
  grid-column:auto!important;display:grid!important;grid-template-columns:1fr!important;gap:3px!important;
  align-items:start!important;margin-top:-4px!important;padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;
}
.myshows-card-next>b{display:inline-flex!important;align-items:center!important;gap:7px!important;width:auto!important;height:auto!important;color:#6D7E8D!important;font-size:16px!important;font-weight:800!important;line-height:1.2!important;text-transform:uppercase!important;white-space:nowrap!important}
.myshows-action-attention-icon{display:inline-block;flex:0 0 auto;color:#6D7E8D;font-size:17px;font-weight:800;line-height:1}
.myshows-card-next>span{font-size:16px!important;line-height:1.35!important;color:var(--muted)!important}
html[data-theme="dark"] .myshows-card-next>b,
html[data-theme="dark"] .myshows-action-attention-icon{color:#6E9FD0!important}
.myshows-month-grid>.myshows-card:only-child{
  grid-template-columns:90px minmax(0,1fr) minmax(300px,34%)!important;
  min-height:260px!important;height:260px!important;
}
.myshows-month-grid>.myshows-card:only-child .myshows-card-image,
.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{height:260px!important;min-height:260px!important}
.myshows-list .myshows-record[hidden]{display:none!important}
@media(max-width:980px){
.myshows-hero-weather-row{grid-template-columns:42px 24px 86px minmax(118px,auto)!important}
.myshows-month-grid>.myshows-card:only-child{height:auto!important;min-height:220px!important;grid-template-columns:76px minmax(0,1fr) 34%!important}
.myshows-month-grid>.myshows-card:only-child .myshows-card-image,
  .myshows-month-grid>.myshows-card:only-child .myshows-card-image img{height:auto!important;min-height:220px!important}
}
@media(max-width:600px){
.myshows-hero-weather-row{grid-template-columns:34px 22px 82px minmax(110px,1fr)!important;column-gap:6px!important}
.myshows-card-snapshot{grid-template-columns:1fr 1fr!important;gap:10px 12px!important}
.myshows-card-next{grid-template-columns:1fr!important;gap:2px!important}
.myshows-month-grid>.myshows-card:only-child{grid-template-columns:72px minmax(0,1fr)!important;height:auto!important}
.myshows-month-grid>.myshows-card:only-child .myshows-card-image{grid-column:1/-1!important;height:auto!important;min-height:170px!important}
.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{height:auto!important;min-height:170px!important}
}

/* ---- from style block at offset 245229 ---- */
.myshows-hero-weather-row{
  display:flex!important;align-items:center!important;flex-wrap:nowrap!important;
  gap:8px!important;min-width:0!important;
}
.myshows-hero-weather-day{flex:0 0 34px!important}
.myshows-hero-weather-row>svg{flex:0 0 22px!important}
.myshows-hero-weather-temp{flex:0 0 auto!important}
.myshows-hero-weather-row .myshows-hero-weather-stat{grid-column:auto!important;grid-row:auto!important;white-space:nowrap!important}
.myshows-hero-weather-row .myshows-hero-weather-stat:nth-last-of-type(2){margin-left:auto!important}
.myshows-hero-weather-row .myshows-hero-weather-stat:last-of-type{margin-left:8px!important}
.myshows-detail-list .myshows-booth-notes{grid-column:2!important}
.myshows-detail-list .myshows-logistics-instructions{grid-column:1/-1!important;border-bottom:0!important;padding-bottom:0!important}
@media(max-width:760px){
.myshows-detail-list .myshows-booth-notes,
  .myshows-detail-list .myshows-logistics-instructions{grid-column:auto!important}
}

/* ---- from style block at offset 248178 ---- */
#myshowsOutstanding[data-urgency="critical"]{border-color:var(--urgency-critical)!important}
#myshowsOutstanding[data-urgency="critical"] .myshows-outstanding-icon,
#myshowsOutstanding[data-urgency="critical"] .myshows-outstanding-copy strong{border-color:var(--urgency-critical)!important;color:var(--urgency-critical)!important}
#myshowsOutstanding[data-urgency="important"]{border-color:var(--urgency-important)!important}
#myshowsOutstanding[data-urgency="important"] .myshows-outstanding-icon,
#myshowsOutstanding[data-urgency="important"] .myshows-outstanding-copy strong{border-color:var(--urgency-important)!important;color:var(--urgency-important)!important}
#myshowsOutstanding[data-urgency="open"]{border-color:var(--urgency-open)!important}
#myshowsOutstanding[data-urgency="open"] .myshows-outstanding-icon,
#myshowsOutstanding[data-urgency="open"] .myshows-outstanding-copy strong{border-color:var(--urgency-open)!important;color:var(--urgency-open)!important}
#myshowsOutstanding[data-urgency="overdue"]{border-color:var(--urgency-overdue)!important}
#myshowsOutstanding[data-urgency="overdue"] .myshows-outstanding-icon,
#myshowsOutstanding[data-urgency="overdue"] .myshows-outstanding-copy strong{border-color:var(--urgency-overdue)!important;color:var(--urgency-overdue)!important}

/* ---- from style block at offset 250139 ---- */
@media(max-width:1180px){
.view[data-view="shows"] .myshows-hero-command-grid{
    grid-template-columns:1fr!important;
  }
.view[data-view="shows"] .myshows-hero-photo,
  .view[data-view="shows"] .myshows-hero-photo img{
    min-height:320px!important;
    height:auto!important;
  }
}

/* ---- from style block at offset 251311 ---- */
#myshowsOutstanding{display:grid!important;gap:10px!important}
#myshowsOutstanding .myshows-urgency-line{display:flex;align-items:center;gap:8px;min-width:0}
#myshowsOutstanding .myshows-outstanding-icon{width:20px!important;height:20px!important;flex:0 0 20px!important;border-width:1.5px!important;font-size:13px!important;line-height:1!important}
#myshowsOutstanding .myshows-urgency-label{font-size:18px!important;line-height:1.1!important;font-weight:800!important;letter-spacing:.02em}
#myshowsOutstanding .myshows-urgency-count{font-size:16px;line-height:1.2;color:var(--muted);font-weight:650}
#myshowsOutstanding .myshows-outstanding-tasks{display:grid;gap:0;margin-left:28px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
#myshowsOutstanding .myshows-task-row{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:center;min-height:40px;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);font-size:16px;line-height:1.35;color:var(--text);cursor:pointer}
#myshowsOutstanding .myshows-task-row:last-child{border-bottom:0}
#myshowsOutstanding .myshows-task-complete{appearance:none;-webkit-appearance:none;width:19px;height:19px;margin:0;border:1.5px solid color-mix(in srgb,var(--muted) 76%,transparent);border-radius:50%;background:transparent;display:grid;place-content:center;cursor:pointer;color:var(--text)}
#myshowsOutstanding .myshows-task-complete::before{content:"";width:8px;height:4px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg) scale(0);transform-origin:center;transition:transform .12s ease}
#myshowsOutstanding .myshows-task-complete:checked{border-color:#7E9F8B;color:#7E9F8B;background:color-mix(in srgb,#7E9F8B 9%,transparent)}
#myshowsOutstanding .myshows-task-complete:checked::before{transform:rotate(-45deg) scale(1)}
#myshowsOutstanding .myshows-task-row.is-complete span{opacity:.54;text-decoration:line-through}
#myshowsOutstanding[data-urgency="critical"] .myshows-outstanding-icon,#myshowsOutstanding[data-urgency="critical"] .myshows-urgency-label{border-color:var(--urgency-critical)!important;color:var(--urgency-critical)!important}
#myshowsOutstanding[data-urgency="important"] .myshows-outstanding-icon,#myshowsOutstanding[data-urgency="important"] .myshows-urgency-label{border-color:var(--urgency-important)!important;color:var(--urgency-important)!important}
#myshowsOutstanding[data-urgency="open"] .myshows-outstanding-icon,#myshowsOutstanding[data-urgency="open"] .myshows-urgency-label{border-color:var(--urgency-open)!important;color:var(--urgency-open)!important}
#myshowsOutstanding[data-urgency="overdue"] .myshows-outstanding-icon,#myshowsOutstanding[data-urgency="overdue"] .myshows-urgency-label{border-color:var(--urgency-overdue)!important;color:var(--urgency-overdue)!important}
@media(max-width:600px){
#myshowsOutstanding .myshows-urgency-line{flex-wrap:wrap}
#myshowsOutstanding .myshows-urgency-count{flex-basis:100%;margin-left:28px}
#myshowsOutstanding .myshows-outstanding-tasks{margin-left:0}
}
.myshows-hero-command-grid{display:block!important}
.myshows-hero-details{display:block!important}
.myshows-hero-details .myshows-detail-group{grid-template-columns:120px minmax(0,1fr)!important}
.myshows-event-peek-photo{position:relative;margin:0;aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:var(--line)}
.myshows-event-peek-photo img{display:block;width:100%;height:100%;object-fit:cover}
.myshows-event-peek-photo img[hidden]{display:none}
.myshows-event-peek-photo figcaption{position:absolute;left:14px;bottom:14px;padding:7px 11px;border-radius:999px;background:rgba(34,36,42,.88);color:#F2F3F5;font-size:16px;font-weight:700;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
/* Drag-to-reposition: lets the artist pick the focal point of a fixed
   4:3 crop instead of losing whatever the center-crop cuts off. */
.myshows-event-peek-photo.is-repositionable img{cursor:grab;touch-action:none}
.myshows-event-peek-photo.is-repositionable img:active{cursor:grabbing}
.myshows-peek-reposition-hint{position:absolute;top:10px;left:14px;z-index:2;padding:6px 11px;border-radius:999px;background:rgba(34,36,42,.82);color:#F2F3F5;font-size:13px;font-weight:650;pointer-events:none;opacity:0;transition:opacity .15s ease}
.myshows-event-peek-photo.is-repositionable:hover .myshows-peek-reposition-hint{opacity:1}
.myshows-peek-reposition-saved{position:absolute;top:10px;left:14px;z-index:2;padding:6px 11px;border-radius:999px;background:#1F8A5C;color:#fff;font-size:13px;font-weight:650;opacity:0;transition:opacity .2s ease;pointer-events:none}
.myshows-peek-reposition-saved.show{opacity:1}
.myshows-peek-photo-wrap{position:relative}
/* Controls live below the image now, in normal flow -- they used to float
   absolutely on top of it and ended up overlapping the location caption,
   plus made it unclear whether the Upload button had vanished or was just
   covered by the URL row sitting at the same coordinates. */
.myshows-peek-photo-controls{margin-top:10px}
.myshows-peek-photo-upload-group{display:flex;gap:8px}
.myshows-peek-photo-upload-group[hidden]{display:none}
.myshows-peek-photo-upload-btn{position:static}
.myshows-peek-photo-url-row{
  display:flex;gap:6px;margin-top:8px;
}
.myshows-peek-photo-url-row[hidden]{display:none}
.myshows-peek-photo-url-row input{
  flex:1;min-width:0;min-height:38px;border:1px solid var(--line);border-radius:8px;
  background:var(--surface);color:var(--text);padding:0 10px;font:400 14px/1.2 "Google Sans Flex",Arial,sans-serif;
}
.myshows-peek-photo-url-row button{
  padding:0 12px;border-radius:8px;border:0;font:600 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;
}
#myshowsPeekCoverPhotoUrlCancel,.myshows-url-cancel-btn{background:var(--surface);border:1px solid var(--line);color:var(--text)}
#myshowsPeekCoverPhotoUrlSave,.myshows-url-save-btn{background:#7659A8;color:#fff}
.myshows-peek-photo-upload-btn{
  padding:7px 13px;border-radius:999px;border:0;
  background:rgba(34,36,42,.88);color:#F2F3F5;font:600 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.myshows-peek-photo-upload-btn:hover{background:rgba(34,36,42,.98)}
.myshows-peek-photo-url-btn{background:rgba(118,89,168,.85)}
.myshows-peek-photo-url-btn:hover{background:rgba(118,89,168,.98)}
.myshows-peek-carousel{position:relative;width:100%;height:100%;min-height:250px}
.myshows-peek-carousel-track{display:flex;width:100%;height:100%;min-height:250px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.myshows-peek-carousel-track::-webkit-scrollbar{display:none}
.myshows-peek-carousel-slide{position:relative;flex:0 0 100%;width:100%;height:100%;min-height:250px;max-height:340px;scroll-snap-align:start}
.myshows-peek-carousel-slide img{display:block;width:100%;height:100%;object-fit:cover}
.myshows-highlight-tag{position:absolute;bottom:auto;right:auto;padding:3px 8px;border-radius:99px;background:rgba(20,20,24,.72);color:#fff;font:700 10px "Google Sans Flex",Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;z-index:2}
.myshows-peek-carousel-slide .myshows-highlight-tag{top:18px;left:18px}
.myshows-peek-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:0;background:rgba(20,20,24,.6);color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.myshows-peek-carousel-arrow:hover{background:rgba(20,20,24,.82)}
.myshows-peek-carousel-arrow.prev{left:12px}
.myshows-peek-carousel-arrow.next{right:12px}
@media(max-width:760px){
  .myshows-peek-carousel-arrow{display:none}
}
@media(max-width:760px){
.myshows-hero-details .myshows-detail-group{grid-template-columns:1fr!important}
.myshows-event-peek-photo,.myshows-event-peek-photo img{min-height:210px}
}

/* ---- from style block at offset 255497 ---- */
.myshows-operational-panel{padding:22px!important;border-color:color-mix(in srgb,var(--line) 88%,transparent)!important}
.myshows-operational-panel .myshows-outstanding{margin:0 0 22px!important;padding:0 0 22px!important;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)!important}
.myshows-operational-panel .myshows-detail-group{display:block!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
.myshows-operational-panel .myshows-detail-group h3{margin:0 0 16px!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="critical"] .myshows-urgency-label{color:#A8013D!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="important"] .myshows-urgency-label{color:var(--urgency-important)!important}
.myshows-peek-task-group[data-urgency="overdue"] h4{color:#D56AA0!important}
.myshows-peek-task-group[data-urgency="critical"] h4{color:#A8013D!important}
.myshows-peek-task-group[data-urgency="important"] h4{color:var(--urgency-important)!important}
.myshows-peek-task-group[data-urgency="open"] h4{color:var(--urgency-open)!important}
.myshows-logistics-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px 22px!important}
.myshows-logistics-grid .myshows-logistics-item{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:11px!important;align-items:start!important;padding:0!important;border:0!important;min-width:0}
.myshows-logistics-item>svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--app-link,#9C7FA7)}
.myshows-logistics-item>.myshows-logistics-copy{display:grid;gap:4px;min-width:0}
.myshows-logistics-item dt{font-size:15px!important}
.myshows-logistics-item dd{font-size:15px!important}
.myshows-logistics-instructions{grid-column:span 2}
@media(max-width:1050px){
.myshows-logistics-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.myshows-logistics-instructions{grid-column:auto}
}
@media (min-width:821px) and (max-width:1250px){
.view[data-view="shows"] .myshows-hero-heading-row{grid-template-columns:1fr!important;gap:12px!important}
.view[data-view="shows"] .myshows-hero-at-a-glance{justify-self:stretch!important;width:100%!important}
.view[data-view="shows"] .myshows-hero-weather-row{justify-content:start!important}
}
@media(max-width:620px){
.myshows-operational-panel{padding:17px!important}
.myshows-logistics-grid{grid-template-columns:1fr!important;gap:16px!important}
}
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:76px minmax(0,1fr) 148px!important;min-height:154px!important;height:auto!important}
.myshows-card-body{padding:16px!important}
.myshows-card-image,.myshows-month-grid>.myshows-card:only-child .myshows-card-image{height:154px!important;min-height:154px!important}
.myshows-card-image img,.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{height:154px!important;min-height:154px!important}
.myshows-card-image span{display:none!important}
.myshows-card-snapshot{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px 14px!important;margin-top:11px!important;padding-top:10px!important}
.myshows-card-next{grid-column:1/-1!important}
@media(max-width:900px){
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:72px minmax(0,1fr) 124px!important}
.myshows-card-snapshot{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:64px minmax(0,1fr) 82px!important;min-height:144px!important}
.myshows-card-image,.myshows-month-grid>.myshows-card:only-child .myshows-card-image,.myshows-card-image img,.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{grid-column:auto!important;height:144px!important;min-height:144px!important}
.myshows-card-snapshot{grid-template-columns:1fr 1fr!important}
.myshows-card-next{grid-column:1/-1!important}
}
.myshows-peek-tasks>h3,.myshows-related-people-toggle strong{font-family:"Google Sans Flex",Arial,sans-serif!important;font-weight:700!important;letter-spacing:.04em!important}
.myshows-booth-blueprint[hidden]{display:none!important}

/* ---- from style block at offset 262421 ---- */
.myshows-operation-title,
.myshows-operational-panel .myshows-detail-group>h3,
.myshows-peek-tasks>h3,
.myshows-peek-section>h3,
.myshows-related-people-toggle strong{
  margin:0 0 16px!important;
  font:700 16px/1.2 "Google Sans Flex",Arial,sans-serif!important;
  letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--muted)!important;
}
.myshows-operation-title{display:block}
.myshows-operational-panel .myshows-outstanding{padding-top:0!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="critical"] .myshows-urgency-dot{background:var(--urgency-critical)!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="critical"] .myshows-urgency-label{color:var(--urgency-critical)!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="important"] .myshows-urgency-dot{background:var(--urgency-important)!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="important"] .myshows-urgency-label{color:var(--urgency-important)!important}
.myshows-logistics-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px 28px!important;padding:2px 0!important}
.myshows-logistics-instructions{grid-column:auto!important}
.myshows-list-intro{margin:30px 0 16px;padding-top:4px}
.myshows-list-intro h2{margin:0;font:700 28px/1.12 "Google Sans Flex",Arial,sans-serif;letter-spacing:-.02em}
.myshows-list-intro p{max-width:760px;margin:8px 0 0;color:var(--muted);font-size:16px;line-height:1.5}
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:82px minmax(0,1fr) minmax(190px,25%)!important;min-height:184px!important}
.myshows-card-body{padding:18px!important;align-self:center}
.myshows-card-image,.myshows-month-grid>.myshows-card:only-child .myshows-card-image,
.myshows-card-image img,.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{height:184px!important;min-height:184px!important}
.myshows-card-snapshot{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.myshows-related-people-toggle strong{margin:0!important}
@media(max-width:1050px){
.myshows-logistics-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px 24px!important}
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:76px minmax(0,1fr) 170px!important}
.myshows-card-snapshot{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
.myshows-list-intro{margin-top:24px}
.myshows-list-intro h2{font-size:25px}
.myshows-card,.myshows-month-grid>.myshows-card:only-child{grid-template-columns:70px minmax(0,1fr)!important}
.myshows-card-image,.myshows-month-grid>.myshows-card:only-child .myshows-card-image{grid-column:1/-1!important;border-left:0!important;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important}
.myshows-card-image,.myshows-month-grid>.myshows-card:only-child .myshows-card-image,
  .myshows-card-image img,.myshows-month-grid>.myshows-card:only-child .myshows-card-image img{height:180px!important;min-height:180px!important}
}
@media(max-width:620px){
.myshows-logistics-grid{grid-template-columns:1fr!important;gap:18px!important}
.myshows-card-snapshot{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.myshows-card-fact>b{font-size:14px!important}
.myshows-card-fact>span{font-size:15px!important}
}

/* ---- from style block at offset 266456 ---- */
.myshows-operation-stack{display:grid;gap:18px;margin-top:22px}
.myshows-operational-panel,
.myshows-logistics-card{
  padding:22px!important;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.045)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.08)!important;
}
html[data-theme="light"] .myshows-operational-panel,
html[data-theme="light"] .myshows-logistics-card{background:rgba(255,255,255,.48)!important;border-color:rgba(168,1,61,.2)!important}
.myshows-operational-panel .myshows-outstanding{margin:0!important;padding:0!important;border:0!important}
.myshows-logistics-card .myshows-detail-group{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.myshows-logistics-card .myshows-detail-group>h3{margin:0 0 16px!important;font:700 16px/1.2 "Google Sans Flex",Arial,sans-serif!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--muted)!important}
.myshows-peek-task-groups{grid-auto-flow:column!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,auto)!important}
@media(max-width:760px){
.myshows-peek-task-groups{grid-auto-flow:row!important;grid-template-columns:1fr!important;grid-template-rows:none!important}
}
@media(max-width:620px){
.myshows-operation-stack{gap:14px}
.myshows-operational-panel,.myshows-logistics-card{padding:17px!important}
.myshows-event-peek{width:100%!important;max-width:100%!important}
}
.myshows-month-head h2{align-items:center!important;color:color-mix(in srgb,var(--muted) 88%,#7659A8 12%);font-size:18px!important;font-weight:700!important;letter-spacing:.045em;text-transform:uppercase}
.myshows-month-icon{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:#7659A8;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;opacity:.72}
html[data-theme="dark"] .myshows-month-icon{stroke:#B7A0C8}
a:hover,a:focus-visible,a:active,
.quiet-link:hover,.quiet-link:focus-visible,
.marker-label-link:hover,.marker-label-link:focus-visible,
.myshows-card-link:hover,.myshows-card-link:focus-visible,
.related-person-card a:hover,.related-person-card a:focus-visible,
#peekTags .tag:hover,#peekTags .tag:focus-visible{text-decoration:none!important;text-decoration-line:none!important}
.quiet-link,.marker-label-link,.myshows-card-link,.related-person-actions a{color:#9C7FA7!important;text-decoration:none!important}

/* ---- from style block at offset 834667 ---- */
@media (min-width:821px) and (max-width:1180px){
.view[data-view="shows"] .myshows-hero-heading-row{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
.view[data-view="shows"] .myshows-hero-at-a-glance{
    justify-self:stretch!important;
    width:100%!important;
  }
.view[data-view="shows"] .myshows-hero-topline{justify-content:flex-start!important}
.view[data-view="shows"] .myshows-hero-date{text-align:left!important}
.view[data-view="shows"] .myshows-hero-weather-row{justify-content:start!important}
.view[data-view="shows"] .myshows-hero-command-grid{grid-template-columns:1fr!important}
.view[data-view="shows"] .myshows-hero-photo,
  .view[data-view="shows"] .myshows-hero-photo img{height:auto!important;min-height:320px!important}
}

/* ---- from style block at offset 841651 ---- */
.nav-item-myshows{margin:2px 0!important}
.myshows-operational-panel .myshows-outstanding{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;margin:0 0 18px!important;padding:0 0 18px!important;border-width:0 0 1px!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.myshows-operational-panel .myshows-hero-command-grid{display:block!important;margin:0!important}
.myshows-operational-panel .myshows-hero-details{border:0!important;background:none!important;padding:0!important;box-shadow:none!important}
@media(max-width:760px){
.myshows-operational-panel .myshows-outstanding{grid-template-columns:1fr!important}
}/* ---- gap-fill from style block at offset 221048 ---- */
.myshows-related-people.is-open .related-people-cue{opacity:1!important;transform:rotate(90deg)!important}
.myshows-related-people.is-open .related-people-cue i:last-child{opacity:0!important}
.myshows-urgency-dot,.urgency-dot{display:inline-block;width:1em;height:1em;flex:0 0 1em;border-radius:50%}
.myshows-urgency-group[data-urgency="critical"] .myshows-urgency-dot{background:#A8013D}
.myshows-urgency-group[data-urgency="important"] .myshows-urgency-dot{background:var(--gold,#C59B3C)}
.myshows-peek-task-group[data-urgency="overdue"] .urgency-dot{background:#D56AA0}
.myshows-peek-task-group[data-urgency="critical"] .urgency-dot{background:#A8013D}
.myshows-peek-task-group[data-urgency="important"] .urgency-dot{background:var(--gold,#C59B3C)}
.myshows-peek-task-group[data-urgency="open"] .urgency-dot{background:var(--blue,#2E6FA3)}
.related-people-state{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important}
.related-people-cue{position:relative;width:20px;height:20px;flex:0 0 20px;border-radius:50%;border:1px solid currentColor;opacity:.65;transition:opacity 180ms ease,transform 260ms ease}
.related-people-cue i{position:absolute;left:5px;right:5px;top:9px;height:1px;background:currentColor;transition:transform 260ms ease,opacity 180ms ease}
.related-people-cue i:last-child{transform:rotate(90deg)}
.myshows-related-people[open] .related-people-cue{opacity:1;transform:rotate(90deg)}
.myshows-related-people[open] .related-people-cue i:last-child{opacity:0}
#relatedPeopleState:checked + .myshows-related-people-toggle .related-people-cue{opacity:1;transform:rotate(90deg)}
#relatedPeopleState:checked + .myshows-related-people-toggle .related-people-cue i:last-child{opacity:0}
#relatedPeopleState:checked ~ .myshows-related-people-reveal{grid-template-rows:1fr;opacity:1;border-top-color:rgba(255,255,255,.1)}
#relatedPeopleState:checked ~ .myshows-related-people-reveal{padding-bottom:16px}
.related-person-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.09)}
.related-person-card>div:first-child{display:grid;gap:3px}
.related-person-card strong{font-size:16px}
.related-person-card span{font-size:13px;opacity:.72}
.related-person-card a{color:inherit;text-decoration:none;font-size:14px}
.related-person-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.related-person-actions a{padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:13px;font-weight:700}
html[data-theme="light"] .related-person-actions a{border-color:rgba(41,27,51,.18)}
.view-in-people{justify-self:start;margin-top:14px;padding:0;border:0;background:none;color:inherit;font-weight:700;cursor:pointer}
@media(max-width:760px){
.related-person-card{grid-template-columns:1fr}
.related-person-actions{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){
.myshows-related-people-reveal,.related-people-cue,.related-people-cue i{transition:none!important}
}

/* ---- gap-fill from style block at offset 255497 ---- */
.booth-blueprint-thumb{display:grid;grid-template-columns:minmax(150px,220px);gap:8px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}
.myshows-doc-upload-btn{padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:600 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.myshows-doc-upload-btn:hover{border-color:#8EA0AF}
.myshows-doc-upload-btn.myshows-peek-photo-url-btn{background:rgba(118,89,168,.85);border-color:transparent;color:#fff}
.myshows-doc-upload-btn.myshows-peek-photo-url-btn:hover{background:rgba(118,89,168,.98);border-color:transparent}
.myshows-doc-link{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--app-link,#7659A8);font:600 14px/1 "Google Sans Flex",Arial,sans-serif;text-decoration:none;margin-bottom:8px}
.myshows-doc-link[hidden]{display:none}
.myshows-doc-link:hover{border-color:#8EA0AF;text-decoration:underline}
.booth-blueprint-thumb svg{display:block;width:100%;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:14px;box-shadow:0 10px 26px rgba(0,0,0,.12)}
.booth-blueprint-thumb span{font-size:14px;font-weight:700;color:var(--app-link,#9C7FA7)}
.booth-blueprint-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(16,11,20,.82);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.booth-blueprint-modal.open{opacity:1;visibility:visible}
.booth-blueprint-modal-surface{width:min(1120px,100%);max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.42)}
.booth-blueprint-modal header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}
.booth-blueprint-modal header span{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.booth-blueprint-modal header h2{margin:3px 0 0;font:700 24px/1.2 "Google Sans Flex",Arial,sans-serif}
.booth-blueprint-modal-stage{min-height:0;padding:22px;overflow:auto;display:grid;place-items:center}
.booth-blueprint-modal-stage svg{display:block;width:min(100%,900px);height:auto;border-radius:18px}
.add-contact-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(16,11,20,.82);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.add-contact-modal.open{opacity:1;visibility:visible}
.add-contact-modal-surface{width:min(440px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.42)}
.add-contact-modal-surface header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}
.add-contact-modal-surface header h2{margin:0;font:700 22px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.add-contact-form{display:grid;gap:14px;padding:22px}
.add-contact-form label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}
.add-contact-required{color:#C0656B;margin-left:2px}
.add-contact-form input{font:400 16px/1.3 Arial,sans-serif;color:var(--text);background:var(--page);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.add-contact-form input:focus{outline:none;border-color:var(--app-link,#9C7FA7)}
.add-contact-error{margin:0;font-size:14px;color:#C0656B}
.add-contact-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.add-contact-cancel{padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--text);font:600 15px/1 Arial,sans-serif;cursor:pointer}
.add-contact-cancel:hover{border-color:#8EA0AF}
@media(max-width:620px){
.add-contact-modal{padding:10px}
.add-contact-modal-surface{max-height:calc(100vh - 20px)}
}
@media(prefers-reduced-motion:reduce){
.add-contact-modal{transition:none}
}
.feedback-fab{
  /* Below every drawer/peek/modal (420+) so an open panel always covers it
     instead of the fab floating on top of its Save/Cancel row -- still
     above ordinary page content and dropdowns (max ~80). */
  position:fixed;right:22px;bottom:22px;z-index:100;
  display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;
  background:#2F343A;color:#F2F3F5;border:1px solid rgba(242,243,245,.18);font:600 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
.feedback-fab:hover{background:color-mix(in srgb,#2F343A 85%,#fff 15%)}
.feedback-fab .hero{width:19px;height:19px;stroke:currentColor}
@media(max-width:620px){
.feedback-fab span{display:none}
.feedback-fab{padding:14px;right:16px;bottom:16px}
}
.feedback-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(16,11,20,.82);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.feedback-modal.open{opacity:1;visibility:visible}
.feedback-modal-surface{width:min(440px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.42)}
.feedback-modal-surface header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}
.feedback-modal-surface header h2{margin:0;font:700 22px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.feedback-form{display:grid;gap:14px;padding:22px}
.feedback-form label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}
.feedback-form select,.feedback-form textarea{font:400 16px/1.4 Arial,sans-serif;color:var(--text);background:var(--page);border:1px solid var(--line);border-radius:10px;padding:10px 12px;resize:vertical}
.feedback-form select:focus,.feedback-form textarea:focus{outline:none;border-color:var(--app-link,#9C7FA7)}
.feedback-error{margin:0;font-size:14px;color:#C0656B}
.feedback-success{margin:0;font-size:14px;color:#4D9A75}
.feedback-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
@media(max-width:620px){
.feedback-modal{padding:10px}
.feedback-modal-surface{max-height:calc(100vh - 20px)}
}
@media(prefers-reduced-motion:reduce){
.feedback-modal{transition:none}
}
@media(max-width:620px){
.booth-blueprint-modal{padding:10px}
.booth-blueprint-modal-surface{max-height:calc(100vh - 20px)}
.booth-blueprint-modal-stage{padding:12px}
.booth-blueprint-modal header{padding:14px}
}
@media(prefers-reduced-motion:reduce){
.booth-blueprint-modal{transition:none}
}

/* ---- gap-fill from style block at offset 262421 ---- */
#myshowsOutstanding .myshows-urgency-group[data-urgency="critical"] .myshows-urgency-dot{background:var(--urgency-critical)!important}
#myshowsOutstanding .myshows-urgency-group[data-urgency="important"] .myshows-urgency-dot{background:var(--urgency-important)!important}
.booth-blueprint-thumb span{font-size:14px;font-weight:700;color:var(--app-link,#9C7FA7)}

/* ---- gap-fill from style block at offset 266456 ---- */
.section-heading-major{display:flex;align-items:center;gap:11px;color:#D6336C}
.section-heading-major svg{width:24px;height:24px;flex:0 0 24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.section-heading-major h2{color:inherit!important;font-size:26px!important;line-height:1.15!important;letter-spacing:-1px!important}
html[data-theme="dark"] .section-heading-major{color:#E8789E}
.clickable-title-cue{display:inline;color:var(--text)!important;border:0!important;padding:0!important;text-decoration:none!important;position:relative;transition:color .16s ease}
html[data-theme="light"] .clickable-title-cue:hover,
html[data-theme="light"] .clickable-title-cue:focus-visible,
html[data-theme="dark"] .clickable-title-cue:hover,
html[data-theme="dark"] .clickable-title-cue:focus-visible{text-decoration:none!important}
.quiet-link,.quiet-link:visited,.booth-blueprint-thumb>span{color:#9C7FA7!important;text-decoration:none!important}
.quiet-link:hover,.quiet-link:focus-visible,.booth-blueprint-thumb:hover>span,.booth-blueprint-thumb:focus-visible>span{color:#9C7FA7!important;text-decoration:none!important}
a:hover,a:focus-visible,a:active,
.quiet-link:hover,.quiet-link:focus-visible,
.marker-label-link:hover,.marker-label-link:focus-visible,
.myshows-card-link:hover,.myshows-card-link:focus-visible,
.related-person-card a:hover,.related-person-card a:focus-visible,
#peekTags .tag:hover,#peekTags .tag:focus-visible{text-decoration:none!important;text-decoration-line:none!important}
.quiet-link,.marker-label-link,.myshows-card-link,.related-person-actions a{color:#9C7FA7!important;text-decoration:none!important}
@media(max-width:620px){
.section-heading-major h2{font-size:23px!important}
.section-heading-major svg{width:21px;height:21px;flex-basis:21px}
}

/* ---- gap-fill from style block at offset 274659 ---- */
.urgency-dot{width:10px;height:10px;border-radius:50%;background:#C66D75;box-shadow:0 0 0 4px color-mix(in srgb,#C66D75 12%,transparent)}
.urgency-dot.important{background:#D2A45E;box-shadow:0 0 0 4px color-mix(in srgb,#D2A45E 12%,transparent)}
.soon-column:has(.urgency-dot) .compact-row{grid-template-columns:19px minmax(0,1fr) auto;gap:7px}
.soon-column:has(.urgency-dot) .compact-row .urgency-dot{justify-self:center}
.soon-column:has(.urgency-dot) > .quiet-link{margin-left:26px}/* ---- from style block at offset 241 ---- */
@media (max-width:700px){
.task-create-drawer,
  .myshows-drawer,
  #createContactPeek{overflow-x:hidden;}
.task-create-head,
  .task-create-body,
  .task-create-foot,
  .myshows-drawer-head,
  .myshows-drawer-body,
  .myshows-drawer-foot,
  #createContactPeek .peek-head,
  #createContactPeek .peek-body{box-sizing:border-box;max-width:100%;min-width:0;}
.task-create-grid,
  .myshows-form-grid,
  #createContactForm{width:100%;max-width:100%;min-width:0;}
.task-create-field,
  .myshows-field,
  #createContactForm .field-label{min-width:0;max-width:100%;}
.task-create-field input,
  .task-create-field select,
  .task-create-field textarea,
  .myshows-field input,
  .myshows-field select,
  #createContactForm input,
  #createContactForm select,
  #createContactForm textarea{max-width:100%;}
}
.tasks-artist-first{width:100%;margin:0;}
/* ---- Tasks v2 typography/color pass -- reuses the exact same five-role
   type system and color tokens as #myshows2Root/#dash2Root (see the
   comment above #myshows2Root) instead of Tasks' own older look: large
   decorative "Bebas Neue" section headers and the plain shared --text/
   --muted tokens from before that redesign pass. Scoped under
   #tasks2Root so it beats the older unscoped .tasks-af-* rules below on
   specificity alone (id+class), regardless of source order. */
#tasks2Root{
  --ms-surface:#1c1f25;--ms-surface-quiet:#181a1f;--ms-line:#2a2e35;--ms-line-soft:#23262c;
  --ms-text:#d0d0d0;--ms-text-dim:#9aa1ab;--ms-text-faint:#6b7280;--ms-accent:#7CCBF0;--ms-accent-dim:#4DB6E8;
  --ms-good:#5fd694;--ms-good-bg:rgba(95,214,148,0.14);--ms-warn:#f0c05a;--ms-warn-bg:rgba(240,192,90,0.16);--ms-crit:#f0678a;--ms-crit-bg:rgba(240,103,138,0.16);
}
html[data-theme="light"] #tasks2Root{
  --ms-surface:#ffffff;--ms-surface-quiet:#ffffff;--ms-line:#D9DCE0;--ms-line-soft:#E4E6E9;
  --ms-text:#2f343a;--ms-text-dim:#63676d;--ms-text-faint:#8b8f95;--ms-accent:#2A9AD3;--ms-accent-dim:#4DB6E8;
  --ms-good:#2f9e6b;--ms-good-bg:rgba(47,158,107,0.12);--ms-warn:#b8860b;--ms-warn-bg:rgba(184,134,11,0.12);--ms-crit:#d1477a;--ms-crit-bg:rgba(209,71,122,0.12);
}
#tasks2Root .tasks-af-control>span{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-text-faint);}
#tasks2Root .tasks-af-control select,
#tasks2Root .tasks-af-search-row input{background:var(--ms-surface-quiet);border-color:var(--ms-line-soft);color:var(--ms-text);font:600 15px "Google Sans Flex",Arial,sans-serif;}
#tasks2Root .tasks-af-focus-kicker{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-text-faint);}
#tasks2Root .tasks-af-focus h2{font-family:"Google Sans Flex",Arial,sans-serif;font-size:14px;font-weight:400;color:var(--ms-text-dim);}
#tasks2Root .tasks-af-group{background:var(--ms-surface);border-color:var(--ms-line);}
#tasks2Root .tasks-af-group-head{border-bottom-color:var(--ms-line-soft);}
#tasks2Root .tasks-af-group-title{font-family:"Google Sans Flex",Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-text-faint);}
#tasks2Root .tasks-af-group-def{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:500;color:var(--ms-text-faint);}
#tasks2Root .tasks-af-group-count{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:700;color:var(--ms-text-faint);}
#tasks2Root .tasks-af-row+.tasks-af-row{border-top-color:var(--ms-line-soft);}
#tasks2Root .tasks-af-task{font-family:"Google Sans Flex",Arial,sans-serif;font-size:15px;font-weight:700;color:var(--ms-text);}
#tasks2Root .tasks-af-meta{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:400;color:var(--ms-text-dim);}
#tasks2Root .tasks-af-due{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:700;}
#tasks2Root .tasks-af-tag{font-family:"Google Sans Flex",Arial,sans-serif;color:var(--ms-text-faint);}
#tasks2Root .tasks-af-empty{border-color:var(--ms-line);color:var(--ms-text-faint);}
.tasks-af-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px;}
.tasks-af-head .page-subtitle{max-width:720px;}
.tasks-af-head .glass-action{min-width:180px;}
.tasks-af-controls{display:grid;grid-template-columns:minmax(190px,230px) minmax(220px,300px) minmax(160px,220px) minmax(220px,1fr);gap:12px;margin-bottom:18px;}
.tasks-af-control{display:grid;gap:6px;position:relative;}
.tasks-af-control>span{color:var(--muted);font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.tasks-af-control select{height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:650 16px/1 "Google Sans Flex",sans-serif;}
.tasks-af-search-row input{height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:650 16px/1 "Google Sans Flex",sans-serif;}
.tasks-af-control select{appearance:none;width:100%;padding:0 46px 0 16px;}
.tasks-af-control>.select-chevron{position:absolute;right:14px;bottom:10px;pointer-events:none;color:var(--text);}
.tasks-af-search-row{align-self:end;}
.tasks-af-search-row input{padding:0 13px;width:100%;}
.tasks-af-focus{margin:0 0 14px;}
.tasks-af-focus-kicker{color:var(--muted);font-size:16px;font-weight:800;letter-spacing:.06em;}
.tasks-af-focus h2{margin:6px 0 0;color:var(--muted);font:400 16px/1.4 "Google Sans Flex",sans-serif;}
.tasks-af-groups{display:grid;gap:12px;}
.tasks-af-group{border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,transparent);overflow:hidden;}
.tasks-af-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px var(--af-card-pad);border-bottom:1px solid var(--line);}
.tasks-af-group-head>div{display:grid;grid-template-columns:var(--af-icon-col) minmax(0,1fr);gap:0 var(--af-gap);align-items:center;}
.tasks-af-group-label{display:contents;}
.tasks-af-group-icon{grid-column:1;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;}
.tasks-af-group[data-bucket="overdue"]{--bucket-color:var(--af-overdue);}
.tasks-af-group[data-bucket="now"]{--bucket-color:var(--af-now);}
.tasks-af-group[data-bucket="soon"]{--bucket-color:var(--af-soon);}
.tasks-af-group[data-bucket="later"]{--bucket-color:var(--af-later);}
.tasks-af-group[data-bucket="noDate"]{--bucket-color:var(--muted);}
.tasks-af-group-icon{color:var(--bucket-color);}
.tasks-af-group-title{grid-column:2;color:var(--text);font:400 26px/1.2 "Bebas Neue",sans-serif;letter-spacing:.035em;margin:0;}
.tasks-af-group-def{grid-column:2;margin:4px 0 0;color:var(--muted);font-size:16px;font-weight:500;line-height:1.2;}
.tasks-af-group-count{color:var(--muted);font-size:16px;font-weight:700;line-height:1.2;white-space:nowrap;}
.tasks-af-row{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(160px,210px);gap:12px;align-items:center;padding:12px 18px 12px calc(var(--af-text-anchor) - 3px);border-left:3px solid var(--bucket-color,transparent);}
.tasks-af-row+.tasks-af-row{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);}
.tasks-af-check{appearance:none;width:18px;height:18px;border:1.5px solid var(--muted);border-radius:5px;background:transparent;cursor:pointer;margin:0;justify-self:start;}
.tasks-af-check:checked{border-color:var(--af-later);background-image:var(--check-icon);background-size:100% 100%;background-repeat:no-repeat;}
.tasks-af-row{cursor:pointer;}
.tasks-af-row:focus-visible{outline:2px solid var(--app-link,#4DB6E8);outline-offset:3px;border-radius:10px;}
.tasks-af-row.complete .tasks-af-task{text-decoration:line-through;opacity:.65;}
.tasks-af-row.complete .tasks-af-meta{text-decoration:line-through;opacity:.65;}
.tasks-af-task{color:var(--text);font-size:16px;font-weight:700;line-height:1.35;}
.tasks-af-meta{display:block;margin-top:3px;color:var(--muted);font-size:16px;font-weight:500;line-height:1.35;}
html[data-theme="dark"] .tasks-af-meta{color:#B9BDC2;}
.tasks-af-tag{display:none;margin-left:6px;color:var(--muted);font-size:16px;font-weight:700;}
.tag-filter-active .tasks-af-tag{display:inline;}
.tasks-af-due{text-align:right;color:var(--text);font-size:16px;font-weight:700;line-height:1.3;}
.tasks-af-group[data-bucket="overdue"] .tasks-af-due{color:var(--bucket-color);}
.tasks-af-group[data-bucket="now"] .tasks-af-due{color:var(--bucket-color);}
.tasks-af-empty{padding:24px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center;}
@media  (max-width:900px){
.tasks-af-controls{grid-template-columns:1fr 1fr;}
}
@media  (max-width:760px){
.tasks-af-head{display:grid;gap:16px;}
}
@media  (max-width:760px){
.tasks-af-head .glass-action{width:100%;min-width:0;}
}
@media  (max-width:760px){
.tasks-af-controls{grid-template-columns:1fr 1fr;}
}
@media  (max-width:760px){
.tasks-af-search-row{grid-column:1/-1;}
}
@media  (max-width:560px){
.tasks-af-controls{grid-template-columns:1fr;}
}
@media  (max-width:560px){
.tasks-af-row{grid-template-columns:22px minmax(0,1fr);align-items:start;}
}
@media  (max-width:560px){
.tasks-af-due{grid-column:2;text-align:left;margin-top:4px;}
}
@media  (max-width:560px){
.tasks-af-group-head{align-items:flex-start;}
}
.task-create-backdrop{position:fixed;inset:0;z-index:440;background:rgba(10,9,13,.42);opacity:0;pointer-events:none;transition:opacity .18s ease;}
.task-create-backdrop.open{opacity:1;pointer-events:auto;}
.task-create-drawer{position:fixed;right:0;top:0;z-index:450;width:min(560px,100vw);height:100vh;height:100dvh;background:var(--page);color:var(--text);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;}
.task-create-drawer.open{transform:none;box-shadow:-22px 0 60px rgba(0,0,0,.24);}
.task-create-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:24px 26px 18px;border-bottom:1px solid var(--line);background:var(--surface);}
.task-create-head h2{margin:0;font-size:28px;font-weight:700;line-height:1.15;}
.task-create-head p{margin:7px 0 0;color:var(--muted);font-size:16px;line-height:1.45;}
.task-create-close{appearance:none;width:40px;height:40px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;flex:0 0 40px;}
.task-create-close:hover{background:color-mix(in srgb,var(--surface) 82%,var(--page));}
.task-create-close:focus-visible{outline:2px solid var(--app-link,#4DB6E8);outline-offset:2px;}
.task-create-close svg{width:20px;height:20px;stroke:currentColor;}
.task-create-body{padding:22px 25px 30px;overflow-y:auto;overflow-x:hidden;width:100%;touch-action:pan-y;overscroll-behavior-x:none;flex:1 1 auto;min-height:0;}
.task-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.task-create-field{display:grid;gap:7px;min-width:0;}
.task-create-field[hidden]{display:none!important;}
.task-create-field.full{grid-column:1/-1;}
.task-create-field label{font-size:16px;font-weight:650;color:var(--text);}
.task-create-field .optional{font-weight:500;color:var(--muted);}
.task-create-field input,.task-create-field select,.task-create-field textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);font:400 16px/1.3 "Google Sans Flex",Arial,sans-serif;}
.task-create-field input,.task-create-field select{min-height:46px;padding:0 14px;}
.task-create-field textarea{min-height:132px;padding:12px;resize:vertical;}
.task-create-field input:focus,.task-create-field select:focus,.task-create-field textarea:focus{outline:2px solid color-mix(in srgb,var(--app-link,#4DB6E8) 28%,transparent);outline-offset:1px;border-color:var(--app-link,#4DB6E8);}
.task-create-foot{margin-top:auto;padding:16px 26px;border-top:1px solid var(--line);background:var(--surface);display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.task-delete{appearance:none;min-height:44px;border:1px solid #D47C84;border-radius:11px;background:transparent;color:#D47C84;padding:0 16px;font:600 16px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;}
.contact-delete-btn{width:100%;margin-top:8px;}
.task-delete:hover{background:color-mix(in srgb,#D47C84 10%,transparent);}
.task-delete:focus-visible{outline:2px solid #D47C84;outline-offset:2px;}
.task-create-drawer .glass-action{min-height:44px;}
.task-create-foot .glass-action,.task-create-foot .task-delete{width:100%;margin:0;justify-content:center;}
.task-create-foot .task-delete[hidden]{display:none;}
.task-create-foot:has(.task-delete[hidden]){grid-template-columns:1fr;}
@media (max-width:700px){
.task-create-drawer{left:0;right:0;width:auto;max-width:none;border-left:0;box-shadow:none;}
.task-create-head{padding:20px 18px 16px;}
.task-create-body{padding:20px 18px 28px;}
.task-create-foot{padding:14px 18px calc(14px + env(safe-area-inset-bottom));}
.task-create-grid{grid-template-columns:1fr;}
.task-create-field.full{grid-column:auto;}
}
@media (max-width:420px){
.task-create-head h2{font-size:26px;}
.task-create-foot{display:grid;grid-template-columns:1fr 1fr;}
.task-create-foot .glass-action,.task-delete{width:100%;justify-content:center;}
}
.task-create-control-wrap{position:relative;width:100%;min-width:0;}
.task-create-control-wrap select{appearance:none;-webkit-appearance:none;padding-right:48px;}
.task-create-select-chevron{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;}
.task-create-date-wrap{position:relative;width:100%;min-width:0;}
.task-create-date-wrap input[type="date"]{padding-right:48px;}
.task-create-date-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;}
.task-create-date-wrap input[type="date"]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:12px;width:26px;height:26px;cursor:pointer;}
.task-template-field{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);}
.task-template-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;padding:0 2px;}
.task-template-label{font-size:16px;font-weight:650;color:var(--text);}
.task-coming-soon-badge{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8EA0AF;border:1px solid #8EA0AF;border-radius:999px;padding:2px 9px;line-height:1.4;flex:0 0 auto;}
.task-template-choice{display:inline-flex;align-items:center;gap:9px;font-size:16px;font-weight:600;color:var(--text);cursor:pointer;}
.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.field-label-full{grid-column:1 / -1;}
.company-display-check{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;flex:0 0 auto;white-space:nowrap;}
.company-display-check input{width:15px;height:15px;margin:0;accent-color:var(--app-link,#9C7FA7);cursor:pointer;}
.task-template-choice input{appearance:auto;-webkit-appearance:checkbox;width:19px;height:19px;min-height:0;margin:0;accent-color:var(--app-link,#4DB6E8);cursor:pointer;}
html[data-theme="dark"] .task-create-date-wrap input[type="date"]{color-scheme:dark;}
html[data-theme="light"] .task-create-date-wrap input[type="date"]{color-scheme:light;}
@media (max-width:700px){
.task-create-head{padding-left:18px;padding-right:18px;}
.task-create-body{padding-left:18px;padding-right:18px;}
.task-create-foot{padding-left:18px;padding-right:18px;}
}
@media (prefers-reduced-motion:reduce){
.task-create-drawer,.task-create-backdrop{transition:none;}
}
.task-template-picker{
  display:grid;
  gap:10px;
  padding:14px;
  margin-bottom:4px;
  border:1px solid var(--line);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 94%,var(--app-link,#4DB6E8));
}
.task-template-picker[hidden],.task-template-multiselect[hidden]{display:none!important;}
.task-template-multiselect{
  display:grid;
  gap:2px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
}
.task-template-multiselect>label{
  display:flex!important;
  align-items:center;
  gap:9px;
  min-height:28px;
  padding:2px 7px;
  border-radius:8px;
  cursor:pointer;
}
.task-template-multiselect>label:hover{background:color-mix(in srgb,var(--surface) 82%,var(--page));}
.task-create-field .task-template-multiselect input[type="checkbox"]{
  appearance:auto;
  -webkit-appearance:checkbox;
  width:18px!important;
  height:18px!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  flex:0 0 18px;
  accent-color:var(--app-link,#4DB6E8);
}
.task-template-selected{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}
.task-template-selected[hidden]{display:none!important;}
.task-template-selected-item{
  display:inline-flex;
  align-items:center;
  gap:7px;
  max-width:100%;
  padding:6px 9px 6px 11px;
  border:1px solid color-mix(in srgb,var(--app-link,#4DB6E8) 48%,var(--line));
  border-radius:999px;
  background:color-mix(in srgb,var(--app-link,#4DB6E8) 20%,var(--surface));
  color:var(--text);
  font:600 14px/1.2 "Google Sans Flex",Arial,sans-serif;
}
.task-template-selected-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.task-template-selected-remove{
  appearance:none;
  border:0;
  background:transparent;
  color:#D47C84;
  min-width:0;
  width:auto;
  height:auto;
  padding:0;
  margin:0;
  font:800 18px/1 Arial,sans-serif;
  cursor:pointer;
}
.task-template-selected-remove:hover{color:#C95F69;}
.task-template-selected-remove:focus-visible{outline:2px solid #D47C84;outline-offset:2px;border-radius:3px;}
.task-template-dropdown{position:relative;}
.task-template-summary{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
  color:var(--text);
  font:600 16px/1.2 "Google Sans Flex",Arial,sans-serif;
  cursor:pointer;
}
.task-template-summary:hover{background:color-mix(in srgb,var(--surface) 82%,var(--page));}
.task-template-summary:focus-visible{outline:2px solid var(--app-link,#4DB6E8);outline-offset:2px;}
.task-template-dropdown .task-template-multiselect{
  margin-top:8px;
  max-height:220px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
/* v3.36 Tasks page: variables, width, and title-weight rules scoped via
   [data-view="Tasks"] attribute selectors, missed by the first pass
   because they don't share a "tasks-af"/"task-create" class substring. */
.view[data-view="tasks"]{--af-overdue:#D47C84;--af-now:#D6A55C;--af-soon:#8EA0AF;--af-later:#87A98D;--af-card-pad:18px;--af-icon-col:24px;--af-gap:12px;--af-text-anchor:calc(var(--af-card-pad) + var(--af-icon-col) + var(--af-gap));}
.view[data-view="tasks"] .content-shell{max-width:none;width:100%;margin:0;}
.view[data-view="tasks"] .page-title{font-weight:700!important;}
@media (max-width:560px){.view[data-view="tasks"]{--af-card-pad:12px;--af-gap:10px;}}
html[data-theme="light"] .view[data-view="tasks"]{--af-overdue:#9A4E54;--af-now:#8A6A1E;--af-soon:#5C6D7B;--af-later:#526D61}
/* ---- from style block at offset 241 ---- */
.money-summary{width:min(760px,100%);margin:0 auto 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
.next-status{margin-bottom:6px;color:var(--muted);font-size:16px;}
.next-show-title{margin:0 0 10px;font-family:"Google Sans Flex",Arial,sans-serif;font-size:30px;line-height:1;font-weight:400;}
@media  (max-width:720px){
.money-summary{grid-template-columns:1fr;width:100%;}
}
.money-summary{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;}
.next-status{font-family:"Google Sans Flex",sans-serif!important;}
.dashboard-layout-126 .section-card{min-width:0;}
.dashboard-layout-126 .calm-section-title{margin-bottom:16px!important;}
.weekend-identity{display:grid;align-items:stretch;}
.event-now-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.event-title-layout-126{margin:0!important;font-family:"Google Sans Flex",Arial,sans-serif!important;text-transform:none!important;}
html[data-theme="light"] .dashboard-layout-126 .quiet-link{color:#6B4772!important;}
html[data-theme="light"] .dashboard-layout-126 .quiet-link:hover{color:#563C5C!important;}
html[data-theme="light"] .dashboard-layout-126 .quiet-link:focus-visible{color:#563C5C!important;}
html[data-theme="dark"] .dashboard-layout-126 .quiet-link{color:#9C7FA7!important;}
html[data-theme="dark"] .dashboard-layout-126 .quiet-link:hover{color:#B092BC!important;}
html[data-theme="dark"] .dashboard-layout-126 .quiet-link:focus-visible{color:#B092BC!important;}
@media  (max-width:720px){
.weekend-identity{gap:14px;}
}
.money-pulse{position:relative;overflow:hidden;display:grid!important;grid-template-columns:190px minmax(0,1fr)!important;align-items:stretch;gap:0!important;padding:0!important;border:1px solid var(--line);border-radius:18px;background:var(--surface);}
@media  (max-width:860px){
.money-pulse{grid-template-columns:1fr!important;}
}
.dashboard-layout-126 .weekend-card::before{display:none!important;}
.money-compact-card::before{display:none!important;}
.dashboard-layout-126 .weekend-card::after{display:none!important;}
.money-compact-card::after{display:none!important;}
.dashboard-layout-126 .weekend-card{border-bottom-color:var(--section-accent)!important;}
.money-compact-card{border-bottom-color:#75697A!important;}
.money-compact-card{position:relative;overflow:hidden;display:block!important;background:var(--surface);}
.money-compact-heading{display:flex;align-items:baseline;justify-content:flex-start;text-align:left;}
.money-compact-title{margin:0;font-family:"Google Sans Flex",Arial,sans-serif;line-height:1.2;color:var(--text);}
.money-compact-grid{gap:0;}
.money-compact-zone{text-align:left;}
.money-compact-zone:first-child{border-left:0;}
.money-compact-label{display:block;width:max-content;max-width:100%;text-decoration:none;text-align:left;}
.money-compact-value{display:block;width:max-content;max-width:100%;text-decoration:none;text-align:left;}
.money-compact-label{color:var(--muted);font-family:"Google Sans Flex",Arial,sans-serif;line-height:1.35;}
.money-compact-label:hover{text-decoration:underline;text-underline-offset:3px;outline:none;}
.money-compact-label:focus-visible{text-decoration:underline;text-underline-offset:3px;outline:none;}
.money-compact-value:hover{text-decoration:underline;text-underline-offset:3px;outline:none;}
.money-compact-value:focus-visible{text-decoration:underline;text-underline-offset:3px;outline:none;}
@media  (max-width:620px){
.money-compact-grid{grid-template-columns:1fr;gap:14px;}
}
@media  (max-width:620px){
.money-compact-zone{padding:0;border-left:0;}
}
@media  (max-width:620px){
.money-compact-zone:first-child{padding:0;border-left:0;}
}
@media  (max-width:620px){
.money-compact-zone:last-child{padding:0;border-left:0;}
}
@media  (max-width:620px){
.money-compact-heading{align-items:flex-start;flex-direction:column;gap:4px;}
}
.money-compact-value{font-family:"Google Sans Flex",Arial,sans-serif!important;line-height:1!important;letter-spacing:0!important;text-transform:none!important;color:var(--text)!important;}
html[data-theme="light"] .money-compact-value{font-family:"Google Sans Flex",Arial,sans-serif!important;line-height:1!important;letter-spacing:0!important;text-transform:none!important;color:var(--text)!important;}
html[data-theme="dark"] .money-compact-value{font-family:"Google Sans Flex",Arial,sans-serif!important;line-height:1!important;letter-spacing:0!important;text-transform:none!important;color:var(--text)!important;}
.money-compact-value:hover{color:var(--app-link-hover,#563C5C)!important;}
.money-compact-value:focus-visible{color:var(--app-link-hover,#563C5C)!important;}
html[data-theme="dark"] .money-compact-value:hover{color:#B092BC!important;}
html[data-theme="dark"] .money-compact-value:focus-visible{color:#B092BC!important;}
.dashboard-layout-126 .calm-section-title{font-family:"Google Sans Flex",Arial,sans-serif!important;font-size:24px!important;font-weight:700!important;line-height:1.2!important;letter-spacing:-.012em!important;text-transform:none!important;}
.dashboard-layout-126 .weekend-card{border:1px solid var(--line)!important;border-bottom-width:3px!important;box-shadow:0 8px 24px rgba(0,0,0,.065)!important;}
.money-compact-card{border:1px solid var(--line)!important;border-bottom-width:3px!important;box-shadow:0 8px 24px rgba(0,0,0,.065)!important;}
.dashboard-layout-126 .weekend-card .section-inner{padding:20px 22px 18px!important;}
.weekend-identity{grid-template-columns:minmax(150px,31%) minmax(0,1fr)!important;gap:16px!important;}
.event-now-copy{gap:6px!important;}
.event-title-layout-126{font-size:22px!important;font-weight:700!important;line-height:1.2!important;}
.money-compact-card{padding:18px 20px 17px!important;border-radius:16px!important;}
.money-compact-heading{margin-bottom:14px!important;gap:10px!important;}
.money-compact-title{font-size:22px!important;font-weight:700!important;letter-spacing:-.01em!important;}
.money-compact-zone{padding:0 14px!important;}
.money-compact-zone:first-child{padding-left:0!important;}
.money-compact-zone:last-child{padding-right:0!important;}
.money-compact-label{font-size:16px!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;}
.money-compact-value{font-size:26px!important;font-weight:700!important;margin-top:6px!important;}
html[data-theme="light"] .money-compact-value{font-size:26px!important;font-weight:700!important;margin-top:6px!important;}
html[data-theme="dark"] .money-compact-value{font-size:26px!important;font-weight:700!important;margin-top:6px!important;}
.dashboard-layout-126 .quiet-link{font-size:16px!important;font-weight:650!important;letter-spacing:0!important;text-transform:none!important;}
html[data-theme="light"] .dashboard-layout-126 .quiet-link{font-size:16px!important;font-weight:650!important;letter-spacing:0!important;text-transform:none!important;}
html[data-theme="dark"] .dashboard-layout-126 .quiet-link{font-size:16px!important;font-weight:650!important;letter-spacing:0!important;text-transform:none!important;}
@media  (max-width:720px){
.weekend-identity{grid-template-columns:1fr!important;}
}
.money-ytd-footer-layout-135{margin-top:16px;padding-top:10px;padding-bottom:2px;text-align:center;color:var(--muted);font:600 16px/1.2 "Google Sans Flex",Arial,sans-serif;letter-spacing:.02em;}
.money-compact-card .money-ytd-footer-layout-135{color:var(--muted)!important;font:600 16px/1.2 "Google Sans Flex",Arial,sans-serif!important;letter-spacing:.02em!important;}
.event-now-copy{padding-bottom:20px!important;}
.money-compact-card .money-ytd-footer-layout-135{display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;gap:18px!important;margin-top:18px!important;padding-top:8px!important;padding-bottom:2px!important;}
.money-compact-card .money-ytd-footer-layout-135::before{content:"";height:1px;background:var(--line);opacity:.95;}
.money-compact-card .money-ytd-footer-layout-135::after{content:"";height:1px;background:var(--line);opacity:.95;}
@media  (max-width:720px){
.event-now-copy{padding-bottom:12px!important;}
}
@media  (max-width:720px){
.money-compact-zone{width:100%!important;text-align:left!important;align-items:flex-start!important;justify-items:start!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(1){width:100%!important;justify-items:start!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2){width:100%!important;justify-items:start!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3){width:100%!important;justify-items:start!important;}
}
@media  (max-width:720px){
.money-compact-zone .money-compact-label{width:auto!important;text-align:left!important;margin-left:0!important;margin-right:0!important;}
}
@media  (max-width:720px){
.money-compact-zone .money-compact-value{width:auto!important;text-align:left!important;margin-left:0!important;margin-right:0!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2) .money-compact-label{width:auto!important;margin-left:0!important;margin-right:0!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2) .money-compact-value{width:auto!important;margin-left:0!important;margin-right:0!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3) .money-compact-label{width:auto!important;margin-left:0!important;margin-right:0!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3) .money-compact-value{width:auto!important;margin-left:0!important;margin-right:0!important;}
}
@media  (max-width:720px){
.money-compact-grid{display:grid!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(1){text-align:left!important;align-items:flex-start!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2){text-align:center!important;align-items:center!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3){text-align:right!important;align-items:flex-end!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(1) .money-compact-label{text-align:left!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(1) .money-compact-value{text-align:left!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2) .money-compact-label{text-align:center!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2) .money-compact-value{text-align:center!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3) .money-compact-label{text-align:right!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3) .money-compact-value{text-align:right!important;}
}
@media  (max-width:720px){
.money-compact-card .money-ytd-footer-layout-135{width:100%!important;text-align:center!important;}
}
.money-compact-zone:nth-child(1){justify-content:flex-start!important;width:auto!important;}
.money-compact-zone:nth-child(2){justify-content:center!important;width:auto!important;}
.money-compact-zone:nth-child(3){justify-content:flex-end!important;width:auto!important;}
.money-compact-zone::before{pointer-events:none!important;}
.money-compact-zone::after{pointer-events:none!important;}
@media  (max-width:720px){
.money-compact-grid{gap:10px!important;}
}
.money-compact-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;column-gap:44px!important;align-items:start!important;width:100%!important;position:relative!important;}
.money-compact-zone{position:relative!important;width:100%!important;min-width:0!important;border-left:0!important;border-right:0!important;padding-left:0!important;padding-right:0!important;}
.money-compact-zone:nth-child(1){justify-self:stretch!important;align-items:flex-start!important;text-align:left!important;}
.money-compact-zone:nth-child(1) .money-compact-label{width:100%!important;text-align:left!important;align-self:stretch!important;}
.money-compact-zone:nth-child(1) .money-compact-value{width:100%!important;text-align:left!important;align-self:stretch!important;}
.money-compact-zone:nth-child(2){justify-self:stretch!important;align-items:center!important;text-align:center!important;}
.money-compact-zone:nth-child(2) .money-compact-label{width:100%!important;text-align:center!important;align-self:stretch!important;}
.money-compact-zone:nth-child(2) .money-compact-value{width:100%!important;text-align:center!important;align-self:stretch!important;}
.money-compact-zone:nth-child(3){justify-self:stretch!important;align-items:flex-end!important;text-align:right!important;}
.money-compact-zone:nth-child(3) .money-compact-label{width:100%!important;text-align:right!important;align-self:stretch!important;}
.money-compact-zone:nth-child(3) .money-compact-value{width:100%!important;text-align:right!important;align-self:stretch!important;}
.money-compact-zone:nth-child(2)::before{content:""!important;position:absolute!important;left:-22px!important;top:4px!important;bottom:4px!important;width:1px!important;background:var(--line)!important;opacity:.9!important;pointer-events:none!important;}
.money-compact-zone:nth-child(3)::before{content:""!important;position:absolute!important;left:-22px!important;top:4px!important;bottom:4px!important;width:1px!important;background:var(--line)!important;opacity:.9!important;pointer-events:none!important;}
.money-compact-card .money-ytd-footer-layout-135{width:100%!important;text-align:center!important;}
@media  (max-width:720px){
.money-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;column-gap:24px!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(2)::before{left:-12px!important;}
}
@media  (max-width:720px){
.money-compact-zone:nth-child(3)::before{left:-12px!important;}
}
.myshows-urgency-dot{display:inline-block;width:1em;height:1em;flex:0 0 1em;border-radius:50%;}
.urgency-dot{display:inline-block;flex:0 0 1em;}
.myshows-urgency-group[data-urgency="critical"] .myshows-urgency-dot{background:#A8013D;}
.myshows-urgency-group[data-urgency="important"] .myshows-urgency-dot{background:var(--gold,#C59B3C);}
.myshows-peek-task-group[data-urgency="overdue"] .urgency-dot{background:#D56AA0;}
.myshows-peek-task-group[data-urgency="critical"] .urgency-dot{background:#A8013D;}
.myshows-peek-task-group[data-urgency="important"] .urgency-dot{background:var(--gold,#C59B3C);}
.myshows-peek-task-group[data-urgency="open"] .urgency-dot{background:var(--blue,#2E6FA3);}
@media  (max-width:820px){
.weekend-card{max-width:none!important;}
}
#myshowsOutstanding .myshows-urgency-group[data-urgency="critical"] .myshows-urgency-dot{background:var(--urgency-critical)!important;}
#myshowsOutstanding .myshows-urgency-group[data-urgency="important"] .myshows-urgency-dot{background:var(--urgency-important)!important;}
html[data-theme="light"] .action-feed-row:hover{text-decoration:none!important;}
html[data-theme="light"] .action-feed-row:focus-visible{text-decoration:none!important;}
html[data-theme="dark"] .action-feed-row:hover{text-decoration:none!important;}
html[data-theme="dark"] .action-feed-row:focus-visible{text-decoration:none!important;}
html[data-theme="light"] .money-compact-label:hover{text-decoration:none!important;}
html[data-theme="light"] .money-compact-label:focus-visible{text-decoration:none!important;}
html[data-theme="dark"] .money-compact-label:hover{text-decoration:none!important;}
html[data-theme="dark"] .money-compact-label:focus-visible{text-decoration:none!important;}
html[data-theme="light"] .money-compact-value:hover{text-decoration:none!important;}
html[data-theme="light"] .money-compact-value:focus-visible{text-decoration:none!important;}
html[data-theme="dark"] .money-compact-value:hover{text-decoration:none!important;}
html[data-theme="dark"] .money-compact-value:focus-visible{text-decoration:none!important;}
.briefing-section{margin-top:24px;min-width:0;}
.dashboard-triad-row,.dashboard-duo-row{display:grid;gap:18px;margin-top:36px;align-items:stretch}
.dashboard-triad-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-duo-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-triad-row .briefing-section,.dashboard-duo-row .briefing-section{margin-top:0;display:flex;flex-direction:column}
.dashboard-triad-row .briefing-card,.dashboard-duo-row .briefing-card{flex:1}
@media(max-width:980px){.dashboard-duo-row{grid-template-columns:1fr}}
/* The compact-row date/title/due 3-column layout was designed for the old
   half-dashboard-wide SOON panel. Now that SOON is a third of the row
   (even on wide desktop screens), it needs the same narrower treatment
   the codebase already had for small viewports, applied here regardless
   of viewport width since it's the column, not the screen, that's narrow. */
.dashboard-triad-row .compact-row{grid-template-columns:48px minmax(0,1fr)}
.dashboard-triad-row .compact-due{grid-column:2}
@media(max-width:980px){.dashboard-triad-row{grid-template-columns:1fr}}
.dashboard-duo-row--single{grid-template-columns:1fr}

/* =========================================================
   DASHBOARD V3 -- isolated from the shared stylesheet's one actual
   point of intrusion. The app has a global "v1.18 -- enforce governing
   app-wide link styling on ALL links" rule: a,a:visited{font-size:15px;
   font-weight:700;text-transform:uppercase;color:...} all !important,
   built for traditional nav-style text links. It matches every <a> in
   this document, including every clickable row here (soon-link,
   check-row, followup-row, later-chip). Nothing else in the shared
   stylesheet reaches non-anchor elements inside #dash2Root -- divs and
   spans were never in its blast radius -- so the fix is surgical: cut
   anchors loose from that one rule, ID-strength + !important so it
   actually wins instead of adding another layer beside it, and let
   every other rule below apply with completely normal CSS priority.
   Five type roles, each with exactly one size/weight/color, no
   per-element exceptions:
     HEADING  -- the one page heading (.hero-name)
     LABEL    -- small-caps structural text (section headers, eyebrows,
                 date tags) -- faint by default, accent only where a
                 date is *the* highlighted one (Load-in, next SOON date)
     BODY     -- the actual content of a row/card
     META     -- secondary/muted inline text
     CHIP     -- status pills/badges (.pill, .check-badge) -- carries
                 real semantic color (good/warn/crit), same pattern as
                 every other status chip in software, not an exception
                 to "one body color" any more than a stoplight is.
   Palette is the approved concept's own colors, not app tokens, for
   both themes. Nav sidebar, the theme switch, mobile collapse, Booth
   Humor, the sidebar arc, and the atmosphere background are all
   outside #dash2Root and untouched. */
#dash2Root a,#dash2Root a:visited{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;letter-spacing:inherit!important;text-transform:none!important;text-decoration:none!important;color:inherit!important;}
#dash2Root a:hover,#dash2Root a:focus-visible{text-decoration:none!important;outline:none!important;}

#dash2Root{--d2-bg:#14161a;--d2-surface:#1c1f25;--d2-surface-quiet:#181a1f;--d2-line:#2a2e35;--d2-line-soft:#23262c;--d2-divider:rgba(255,255,255,0.16);--d2-text:#d0d0d0;--d2-text-dim:#9aa1ab;--d2-text-faint:#6b7280;--d2-accent:#b9a3ff;--d2-accent-dim:#8f7ad1;--d2-good:#5fd694;--d2-good-bg:rgba(95,214,148,0.14);--d2-warn:#f0c05a;--d2-warn-bg:rgba(240,192,90,0.16);--d2-crit:#f0678a;--d2-crit-bg:rgba(240,103,138,0.16);}
html[data-theme="light"] #dash2Root{--d2-bg:#ffffff;--d2-surface:#ffffff;--d2-surface-quiet:#ffffff;--d2-line:#D9DCE0;--d2-line-soft:#E4E6E9;--d2-divider:rgba(0,0,0,0.14);--d2-text:#2f343a;--d2-text-dim:#63676d;--d2-text-faint:#8b8f95;--d2-accent:#7c5cff;--d2-accent-dim:#8f7ad1;--d2-good:#2f9e6b;--d2-good-bg:rgba(47,158,107,0.12);--d2-warn:#b8860b;--d2-warn-bg:rgba(184,134,11,0.12);--d2-crit:#d1477a;--d2-crit-bg:rgba(209,71,122,0.12);}
#dash2Root{display:block;font-family:"Inter","Google Sans Flex",Arial,sans-serif;color:var(--d2-text);}
#dash2Root a{cursor:pointer;}

/* Single real body/label font, matching the rest of the app -- "Inter"
   was never actually loaded via a <link>, it silently fell back to
   Google Sans Flex the whole time, which just meant an invisible,
   confusing font-family value sitting in every rule for no reason.
   Show/event names (hero-name, soon-name) were meant to use a second font,
   Manrope, but it was never loaded and rendered as Arial (Kelley caught it,
   2026-10-03), so they use the app font, Google Sans Flex. */
#dash2Root .hero-name{display:inline;margin:0;font-family:"Google Sans Flex",Arial,sans-serif;font-size:30px;font-weight:800;color:var(--d2-accent);letter-spacing:-0.01em;}
#dash2Root .hero-top:hover .hero-name{text-decoration:underline;text-underline-offset:4px;}

/* ROLE: label -- one size/weight/spacing for every structural label.
   Color is faint by default; accent is the only sanctioned override,
   used only where a date tag is the specifically-highlighted one. */
#dash2Root .section-label,
#dash2Root .hero-eyebrow,
#dash2Root .quiet-title,
#dash2Root .weather-day-name{
  display:block;font-family:"Google Sans Flex",Arial,sans-serif;font-size:14px;line-height:1.2;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--d2-text-faint);
}
#dash2Root .hero-eyebrow{display:inline-block;}
#dash2Root .soon-date{
  display:inline-block;font-family:"Google Sans Flex",Arial,sans-serif;font-size:16px;line-height:1.2;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--d2-accent);
}
#dash2Root .weather-day--loadin .weather-day-name{color:var(--d2-accent);}

/* ROLE: chip -- status pills. Same type scale as label, own background.
   .check-badge stays uppercase (Critical/Important/status states read
   as alerts); .pill does not -- the concept never uppercased plain
   status text like "Confirmed"/"Paid". */
#dash2Root .check-badge,#dash2Root .pill{
  display:inline-flex;align-items:center;gap:6px;font-family:"Google Sans Flex",Arial,sans-serif;
  font-size:12px;font-weight:700;letter-spacing:.04em;
  padding:4px 9px;border-radius:99px;
}
#dash2Root .check-badge{text-transform:uppercase;}
#dash2Root .check-badge.crit{background:var(--d2-crit-bg);color:var(--d2-crit);}
#dash2Root .check-badge.warn{background:var(--d2-warn-bg);color:var(--d2-warn);}
#dash2Root .pill.good{background:var(--d2-good-bg);color:var(--d2-good);}
#dash2Root .pill.warn{background:var(--d2-warn-bg);color:var(--d2-warn);}
#dash2Root .pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}

/* ROLE: body -- the actual content of a row or card. One size, one
   weight, one color, everywhere it appears (the app font, Google Sans Flex). */
#dash2Root .check-title,
#dash2Root .soon-name,
#dash2Root .money-line .v,
#dash2Root .weather-hilo,
#dash2Root .d2-body{
  display:block;font-family:"Google Sans Flex",Arial,sans-serif;font-size:15px;font-weight:300;color:var(--d2-text);font-variant-numeric:tabular-nums;
}
#dash2Root .money-line .v,#dash2Root .weather-hilo,#dash2Root .d2-body{display:inline;}
/* .money-line .v is itself the <a> (no wrapping child span), so it's
   caught by the anchor reset above like .soon-link was -- needs the
   same !important to actually show the body-role font/color instead
   of the reset's inherit (font-family was the one property missed
   here previously -- same class of bug as before, still worth
   auditing every property, not just the one visibly wrong). */
#dash2Root .money-line .v{font-family:"Google Sans Flex",Arial,sans-serif!important;font-size:15px!important;font-weight:300!important;color:var(--d2-text)!important;}
/* Income and Expenses carry a fixed semantic color always (money in is
   good, money out is a cost) -- only Net is dynamic on its own sign. */
#dash2Root .money-line .v[data-money="income"]{color:var(--d2-good)!important;}
#dash2Root .money-line .v[data-money="expenses"]{color:var(--d2-crit)!important;}
#dash2Root .money-line.net .v{color:var(--d2-good)!important;}
#dash2Root .money-line.net .v.is-negative{color:var(--d2-crit)!important;}

/* ROLE: meta -- secondary/muted inline text. One size, one weight,
   one color, everywhere it appears. */
#dash2Root .hero-meta,
#dash2Root .hero-open-hint,
#dash2Root .weather-location,
#dash2Root .weather-stat,
#dash2Root .check-due,
#dash2Root .soon-time,
#dash2Root .soon-place,
#dash2Root .money-line a:not(.v),
#dash2Root .morale-line,
#dash2Root .dash2-empty{
  display:inline;font-family:"Google Sans Flex",Arial,sans-serif;font-size:15px;font-weight:400;color:var(--d2-text-dim);font-variant-numeric:tabular-nums;
}
#dash2Root .hero-meta,#dash2Root .hero-open-hint,#dash2Root .soon-place,#dash2Root .morale-line,#dash2Root .dash2-empty{display:block;}
/* Same [hidden]-vs-display bug from earlier tonight, new spot: an
   unconditional display:block beats the browser's own [hidden]{display:
   none} UA rule regardless of specificity, so the random Booth Humor
   quip (meant to stay invisible until a real "earned" eligibility check
   exists) was showing through inside the Money card. */
#dash2Root .morale-line[hidden]{display:none;}
/* .money-line a:not(.v) is itself the <a> (Income/Expenses/Net), same
   direct-anchor case as .money-line .v above. */
#dash2Root .money-line a:not(.v){font-size:15px!important;font-weight:400!important;color:var(--d2-text-dim)!important;}

/* ROLE: accent link -- the one interactive text color, purple, both states. */
#dash2Root .soon-link{display:block;font-size:14px!important;font-weight:600!important;color:var(--d2-accent-dim)!important;text-decoration:underline!important;}
#dash2Root .soon-card:hover .soon-link{color:var(--d2-accent)!important;}
#dash2Root .hero-top:hover .hero-open-hint{color:var(--d2-accent-dim);}
#dash2Root .check-row.is-clickable:hover{color:var(--d2-accent-dim)!important;}
#dash2Root .followup-row:hover .d2-body{color:var(--d2-accent-dim);}
#dash2Root .money-line a:hover{color:var(--d2-accent-dim)!important;}

/* MOBILE: every role bumped up a step. Kelley's own devtools testing on
   a phone (no zoom/pinch available to check the numbers herself) found
   the desktop scale too small to read comfortably -- same five roles,
   same weights/colors, just larger everywhere below 600px. */
@media(max-width:600px){
  #dash2Root .hero-name{font-size:33px;}
  #dash2Root .section-label,
  #dash2Root .hero-eyebrow,
  #dash2Root .quiet-title,
  #dash2Root .weather-day-name{font-size:16px;}
  #dash2Root .soon-date{font-size:18px;}
  #dash2Root .check-badge,#dash2Root .pill{font-size:13px;}
  #dash2Root .check-title,
  #dash2Root .soon-name,
  #dash2Root .money-line .v,
  #dash2Root .weather-hilo,
  #dash2Root .d2-body{font-size:17px;}
  #dash2Root .money-line .v{font-size:17px!important;}
  #dash2Root .hero-meta,
  #dash2Root .hero-open-hint,
  #dash2Root .weather-location,
  #dash2Root .weather-stat,
  #dash2Root .check-due,
  #dash2Root .soon-time,
  #dash2Root .soon-place,
  #dash2Root .money-line a:not(.v),
  #dash2Root .morale-line,
  #dash2Root .dash2-empty{font-size:17px;}
  #dash2Root .money-line a:not(.v){font-size:17px!important;}
  #dash2Root .soon-link{font-size:16px!important;}
  #dash2Root .weather-day-weekday{font-size:18px;}
}

/* Structure: layout only, no type decisions -- those all live above. */
#dash2Root .hero{display:block;background:var(--d2-surface);border:1px solid var(--d2-line);border-radius:18px;overflow:hidden;box-shadow:0 24px 48px -28px rgba(0,0,0,0.5);}
#dash2Root .hero-top{display:grid;grid-template-columns:230px 1fr;cursor:pointer;}
/* Kelley's report 2026-09-30: a portrait source photo (a flyer, say) was
   ballooning this box to the image's own intrinsic proportions instead of
   a fixed size -- height:100% on the img resolved against a grid row that
   was itself sized by that intrinsic height, stretching everything else
   and leaving dead whitespace next to the short text column. Fixed 4:3 +
   align-self:start makes the frame a hard size no source photo can grow. */
#dash2Root .hero-photo{display:block;position:relative;margin:0;aspect-ratio:4/3;align-self:start;overflow:hidden;}
#dash2Root .hero-photo-img{display:block;width:100%;height:100%;object-fit:cover;}
#dash2Root .hero-photo-img[hidden]{display:none;}
#dash2Root .hero-photo-credit,#dash2Root .hero-photo-caption{display:block;position:absolute;left:10px;bottom:9px;padding:5px 9px;border-radius:999px;background:rgba(15,16,18,.72);color:#F2F3F5;font:650 12px/1 "Inter",sans-serif;}
#dash2Root .hero-photo-credit[hidden],#dash2Root .hero-photo-caption[hidden]{display:none;}
#dash2Root .hero-photo-disclaimer{display:block;position:absolute;left:0;right:0;bottom:10px;padding:0 6px;text-align:center;font-size:11px;color:rgba(255,255,255,0.55);letter-spacing:.04em;font-family:"Google Sans Flex",Arial,sans-serif;}
#dash2Root .hero-info{display:flex;padding:24px 28px 22px;flex-direction:column;justify-content:center;gap:10px;min-width:0;}
#dash2Root .hero-name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
#dash2Root .hero-body{display:flex;flex-direction:column;border-top:1px solid var(--d2-line);}
#dash2Root .hero-col{display:block;padding:22px 28px;}
#dash2Root .hero-tasks-logistics{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
#dash2Root .hero-tasks,#dash2Root .hero-logistics{display:block;min-width:0;}
#dash2Root .hero-col+.hero-col{border-top:1px solid var(--d2-line);}

#dash2Root .weather-strip-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;}
#dash2Root .weather-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,240px));justify-content:start;gap:12px;}
@media(max-width:820px){
  #dash2Root .weather-row{grid-template-columns:1fr;justify-content:stretch;}
}
#dash2Root .weather-day{display:block;background:var(--d2-surface-quiet);border:1px solid var(--d2-line-soft);border-radius:12px;padding:14px 12px;text-align:center;}
#dash2Root .weather-day.weather-day--loadin{border-color:rgba(185,163,255,0.4);background:rgba(185,163,255,0.08);}
#dash2Root .weather-day-divider{display:block;border:none;border-top:1px solid var(--d2-divider);width:36px;margin:9px auto;}
#dash2Root .weather-day-weekday{display:block;font-family:"Google Sans Flex",Arial,sans-serif;font-size:16px;font-weight:600;color:var(--d2-text);margin-bottom:10px;}
#dash2Root .weather-day-temp-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;}
#dash2Root .weather-day .weather-icon{display:block;font-size:22px;line-height:1;}
#dash2Root .weather-day-stats-row{display:flex;align-items:center;justify-content:center;}
#dash2Root .weather-day-stats-row .weather-stat{display:inline;white-space:nowrap;}

#dash2Root .check-list{display:flex;flex-direction:column;gap:2px;}
#dash2Root .check-row{display:flex;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--d2-line-soft);text-decoration:none;color:inherit;}
#dash2Root .check-row:last-child{border-bottom:none;}
#dash2Root .check-row.is-clickable{cursor:pointer;}
#dash2Root .check-box{display:block;width:19px;height:19px;border-radius:5px;border:1.5px solid var(--d2-text-faint);flex:none;cursor:pointer;}
#dash2Root .check-row.is-ref .check-box{border-radius:50%;border-color:var(--d2-accent-dim);background:rgba(185,163,255,0.15);cursor:default;}
#dash2Root .check-box.is-checked{border-color:var(--d2-accent);background:var(--d2-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1f25' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/70% no-repeat;}
#dash2Root .check-title.is-done{text-decoration:line-through;opacity:.6;}
#dash2Root .check-main{display:block;flex:1;min-width:0;}
#dash2Root .check-due{flex:none;white-space:nowrap;}
#dash2Root .check-badge{flex:none;margin-left:8px;}

/* SOON's heading now sits inside its own bordered container, same as
   LATER/MONEY/FOLLOW-UP each have their heading inside a .quiet-card --
   it was floating bare above the grid before, which is why no amount
   of spacing tuning made it read as "matching" those three: there was
   no visible box for the kicker to anchor against. */
#dash2Root .soon-section{display:block;margin-top:36px;background:var(--d2-surface-quiet);border:1px solid var(--d2-line-soft);border-radius:14px;padding:17px 19px 19px;}
/* The container fixed "no box to anchor to" -- but .quiet-head's
   justify-content:space-between still stretches title and kicker
   apart proportional to container width, which looks right in
   LATER/MONEY/FOLLOW-UP's narrow 1/3-width cards and wrong in this
   one, since .soon-section spans the full row. Keep them close
   together here specifically instead. */
#dash2Root .soon-section .quiet-head{justify-content:flex-start;gap:10px;}
#dash2Root .soon-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:16px;margin-top:12px;}
#dash2Root .soon-card{display:block;background:var(--d2-surface-quiet);border:1px solid var(--d2-line);border-radius:14px;padding:18px 20px 16px;}
#dash2Root .soon-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
#dash2Root .soon-name{margin-top:7px;}
#dash2Root .soon-place{margin-top:3px;}
#dash2Root .soon-pills{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap;}
#dash2Root .soon-link{margin-top:14px;padding-top:12px;border-top:1px solid var(--d2-line-soft);}
#dash2Root .dash2-empty{padding:16px 2px;}

#dash2Root .quiet-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px;}
#dash2Root .quiet-card{display:block;background:var(--d2-surface-quiet);border:1px solid var(--d2-line-soft);border-radius:14px;padding:17px 19px;}
#dash2Root .quiet-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;}
#dash2Root .money-line{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--d2-line-soft);}
#dash2Root .money-line:last-of-type{border-bottom:none;}
#dash2Root .morale-line{margin-top:10px;}
#dash2Root .followup-row{display:flex;align-items:center;gap:8px;padding:8px 0;text-decoration:none;color:inherit;}
#dash2Root .followup-row .dot{display:block;width:7px;height:7px;border-radius:50%;background:var(--d2-warn);flex:none;}
#dash2Root #followUpActionFeed{display:block;max-height:220px;overflow-y:auto;}
/* Same-day due-tasks notice: amber (not red -- red stays reserved for
   genuinely overdue items elsewhere on the dashboard), folded into the
   existing Follow-up card per Kelley's call after reviewing a mockup. */
#dash2Root .followup-due-today{background:var(--d2-warn-bg);border-radius:8px;padding:8px 10px;margin-bottom:4px;}
#dash2Root .followup-due-today .dot{background:var(--d2-warn);}
#dash2Root .followup-due-today .d2-body{color:var(--d2-warn);font-weight:600;}

@media (max-width:860px){
  #dash2Root .hero-top,#dash2Root .hero-body{grid-template-columns:1fr;}
  #dash2Root .soon-grid,#dash2Root .quiet-row,#dash2Root .hero-tasks-logistics{grid-template-columns:1fr;}
}

/* .urgency-dot is still used by the Contacts/My Shows peek urgency
   headers (Overdue/Critical/Important/Open) -- kept. Everything else
   that was here (.briefing-*, .now-card, .action-feed-row/.action-*,
   the old grid .soon-card/.soon-column/.compact-row, .later-track/
   .later-stop, .editorial-subhead, and all their responsive variants)
   belonged only to the pre-restructure Dashboard and had zero
   remaining references in index.html -- deleted rather than left as
   orphaned rules a same-named future class could collide with (this
   is exactly what happened to .soon-card and .pill tonight). */
.urgency-dot{width:10px;height:10px;border-radius:50%;background:#C66D75;box-shadow:0 0 0 4px color-mix(in srgb,#C66D75 12%,transparent);}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .weekend-identity{grid-template-columns:minmax(190px,40%) minmax(0,1fr)!important;align-items:start!important;}
}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .event-now-copy{min-width:0!important;}
}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .event-title-layout-126{position:static!important;transform:none!important;margin-left:0!important;margin-right:0!important;}
}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .event-date-location{position:static!important;transform:none!important;margin-left:0!important;margin-right:0!important;}
}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .event-fact-row{position:static!important;transform:none!important;margin-left:0!important;margin-right:0!important;}
}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .event-fact-secondary{position:static!important;transform:none!important;margin-left:0!important;margin-right:0!important;}
}
@media  (min-width:1281px) and (max-width:1500px){
.view[data-view="home"] .event-fact-row{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;}
}
/* The hero panel now stacks photo+info, then weather, then the checklist --
   it no longer fits the old 3-column photo|info|weather grid-template-areas
   layout above, which had no area for weather or the checklist to land in
   at these widths and squeezed/misplaced them. Reset to simple block
   stacking at 1200px+ and lay identity out with its own small grid instead. */
@media (min-width:1200px){
.view[data-view="home"] .weekend-card .section-inner{display:block!important;}
.view[data-view="home"] .weather-strip{border-left:0!important;padding-left:0!important;margin-top:20px!important;padding-top:16px!important;border-top:1px solid var(--line)!important;}
}
.briefing-label{font-family:"Bebas Neue",sans-serif;}
html[data-theme="light"] .money-summary.money-compact-card{
  background:#FFFFFF !important;
  border-color:#D6D9DD !important;
  border-bottom-color:#75697A !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.92),
    0 10px 28px rgba(47,52,58,.10) !important;
}
/* The stack-to-full-width rule above stretched the compact 3-column
   income/expenses/net grid itself, spreading its columns into big empty
   gaps instead of staying tight. Cap the card, not the row, at the same
   width the comp originally used before the single-column pass. */
.money-compact-card{max-width:760px;}
.editorial-subhead svg.hero{width:22px!important;height:22px!important;flex:0 0 22px!important;}
.myshows-peek-task-group .urgency-dot{width:1em!important;height:1em!important;border-radius:50%!important;flex:0 0 1em!important;}
.myshows-inline-edit{width:100%;margin:0;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font:inherit;font-size:16px;line-height:1.4;cursor:pointer;}
.myshows-dt-row{display:flex;gap:8px;}
.myshows-dt-row .myshows-inline-edit{width:auto;flex:1 1 0;min-width:0;}
textarea.myshows-inline-edit{cursor:text;resize:vertical;}
input.myshows-inline-edit{cursor:text;}
.myshows-inline-edit:focus{outline:none;border-color:var(--app-link,#9C7FA7);color:var(--text);}
/* Edit Record mode: every editable field on the Show Record already uses
   this one shared class regardless of type (text/select/date/textarea),
   so a single rule flips them all between a plain read-only look and the
   real interactive control, without touching any per-field save logic. */
.myshows-event-peek-body.is-view-mode .myshows-inline-edit{
  pointer-events:none;background:transparent;border-color:transparent;
  color:var(--text);padding-left:0;padding-right:0;resize:none;
}
.myshows-event-peek-body.is-view-mode select.myshows-inline-edit{appearance:none;-webkit-appearance:none;}
.myshows-event-peek-body.is-view-mode .myshows-review-body{pointer-events:none;opacity:.85}
.myshows-edit-record-btn{
  appearance:none;padding:8px 14px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);color:var(--text);font:600 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;
}
.myshows-edit-record-btn:hover{border-color:#8EA0AF}
.myshows-edit-record-btn.is-active{background:#7659A8;border-color:#7659A8;color:#fff}
.myshows-event-peek-head-actions{display:flex;align-items:flex-start;gap:10px;flex:0 0 auto}
.myshows-field-saved{border-color:#7E9F8B!important;transition:border-color .2s ease;}
.myshows-field-error{border-color:#9A4E54!important;transition:border-color .2s ease;}
/* The red border flash alone was gone before you could read it and never
   said *why* the save failed. This sits under the field with the server's
   actual error message and stays for 5s (or until you try again). */
.myshows-field-note{margin-top:4px;font-size:13px;line-height:1.35;color:#C0656B;}
.nav-accordion-caret{display:inline-flex;margin-left:auto;width:16px;height:16px;flex:0 0 16px;color:inherit;transition:transform .15s ease}
.nav-accordion-caret svg{width:16px;height:16px;display:block}
.nav-item:has(+ .nav-actions.active) .nav-accordion-caret{transform:rotate(180deg)}
.link-sparkle{position:fixed;z-index:9999;width:7px;height:7px;pointer-events:none;color:#C8B6D7;opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0deg);}
.link-sparkle::before{content:"";position:absolute;inset:0;margin:auto;background:currentColor;border-radius:999px;}
.link-sparkle::after{content:"";position:absolute;inset:0;margin:auto;background:currentColor;border-radius:999px;}
.link-sparkle::before{width:2px;height:100%;}
.link-sparkle::after{width:100%;height:2px;}
.link-sparkle.is-active{animation:linkSparklePop 440ms cubic-bezier(.2,.78,.3,1) forwards;}
@keyframes linkSparklePop{0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(0deg)}38%{opacity:.9;transform:translate(-50%,-50%) scale(1) rotate(24deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(52deg)}}
@media (prefers-reduced-motion:reduce){.link-sparkle{display:none!important;}}
.gallery-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.gallery-toolbar-button{
  display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);color:var(--text);
  font:600 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;
  transition:border-color .15s ease,transform .15s ease
}
.gallery-toolbar-button:hover,.gallery-toolbar-button:focus-visible{border-color:#8EA0AF;transform:translateY(-1px)}
.gallery-toolbar-button .hero{width:20px;height:20px;flex-shrink:0;color:#8EA0AF;fill:none;stroke:currentColor;stroke-width:1.8}
.gallery-beta-tag{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8EA0AF;border:1px solid #8EA0AF;border-radius:999px;padding:2px 7px;line-height:1.4}
/* Kelley's report, with screenshot -- "Missing the rose red here" /
   "Didn't I already flag this????": the first pass only recolored the
   icon + hover border and left the button itself white/outline. These
   are actual primary actions (same role as the page's Share… button,
   which is already a solid rose pill) -- filled solid now, not just
   accented. */
.view[data-view="gallery"] .gallery-toolbar-button{background:#D6336C;border-color:#D6336C;color:#fff}
.view[data-view="gallery"] .gallery-toolbar-button:hover,
.view[data-view="gallery"] .gallery-toolbar-button:focus-visible{background:color-mix(in srgb,#D6336C 85%,#000 15%);border-color:color-mix(in srgb,#D6336C 85%,#000 15%)}
.view[data-view="gallery"] .gallery-toolbar-button .hero{color:#fff}
.view[data-view="gallery"] .gallery-beta-tag{color:#fff;border-color:rgba(255,255,255,.6)}
/* "Take a Photo" opens the device camera, which only makes sense on a
   phone/tablet -- hidden on desktop, and made the most prominent action
   on mobile since it's the behavior we're trying to get people to adopt. */
@media(min-width:601px){#galleryTakePhotoButton{display:none}}
@media(max-width:600px){
  .gallery-toolbar{flex-direction:column}
  .gallery-toolbar-button{width:100%;justify-content:center;order:2}
  #galleryTakePhotoButton{
    order:1;background:#D6336C;border-color:#D6336C;color:#F2F3F5;
  }
  #galleryTakePhotoButton .hero{color:#F2F3F5}
  #galleryTakePhotoButton .gallery-beta-tag{color:#F2F3F5;border-color:rgba(242,243,245,.6)}
}

.gallery-upload-progress{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:15px;margin:-4px 0 20px}
.gallery-upload-progress[hidden]{display:none}
#shareAlbumEmailButton[hidden]{display:none}
.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:#8EA0AF;animation:gallery-spin .7s linear infinite;flex-shrink:0}
@keyframes gallery-spin{to{transform:rotate(360deg)}}

.gallery-divider{height:1px;background:var(--line);margin:32px 0}

.gallery-date-heading{font-weight:700;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:22px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
.gallery-date-heading:first-child{border-top:none;padding-top:0;margin-top:0}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
/* A drag starting in the gap between photos (rather than on an image
   itself) wasn't fully caught by the JS mousedown preventDefault --
   the browser's native text/content selection highlight (that pink/blue
   wash) still kicked in there. user-select:none blocks it categorically,
   everywhere in the grid, regardless of where the drag starts. */
#galleryPhotosByDate{-webkit-user-select:none;user-select:none}
.gallery-photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1;background:var(--surface);border:1px solid var(--line);cursor:pointer;transition:transform .15s ease}
.gallery-photo[draggable="true"]{cursor:grab}
.gallery-photo.is-dragging{opacity:.4}
.gallery-groupby-toggle{display:flex;border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:3px}
.gallery-groupby-toggle button{appearance:none;border:0;border-radius:9px;background:transparent;color:var(--muted);padding:0 14px;height:38px;font:600 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.gallery-groupby-toggle button.is-active{background:color-mix(in srgb,var(--text) 9%,transparent);color:var(--text)}
.gallery-photo:hover{transform:translateY(-2px)}
.gallery-photo img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-photo-caption{position:absolute;left:0;right:0;bottom:0;padding:8px 10px;background:linear-gradient(to top,rgba(0,0,0,.72),transparent);color:#F2F3F5;font-size:14px;line-height:1.3}
#galleryAlbumsList{display:block}
.gallery-album-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.gallery-album-open{cursor:pointer}
.gallery-album-open:hover .gallery-album-name{color:#8EA0AF}
.gallery-album-name{font-weight:700;color:var(--text)}
.gallery-album-meta{color:var(--muted);font-size:15px;margin-top:2px}
.gallery-share-row{display:flex;gap:8px;flex-wrap:wrap}
.gallery-share-link-row{margin:-8px 0 2px}
.gallery-lightbox-img{width:100%;border-radius:14px;display:block;margin-bottom:4px}
.gallery-lightbox-caption{color:var(--muted);font-size:15px;margin:-10px 0 2px}
.gallery-lightbox-album-picker{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--page)}
.gallery-lightbox-album-picker[hidden]{display:none}
.gallery-lightbox-album-picker button{text-align:left;padding:8px 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;font:600 14px/1.3 "Google Sans Flex",Arial,sans-serif}
.gallery-lightbox-album-picker button:hover{border-color:var(--line);background:var(--surface)}
.gallery-show-list{max-height:340px;overflow-y:auto}
@media(max-width:600px){.side-peek{width:100vw}}

.gallery-anchor-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 14px}
.gallery-anchor-tab{padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font:600 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.gallery-anchor-tab:hover{border-color:#8EA0AF}
.gallery-anchor-tab.is-active{background:#D6336C;border-color:#D6336C;color:#F2F3F5}

.gallery-album-mode-tabs{display:flex;gap:8px;margin-bottom:4px}
.gallery-album-mode-tab{flex:1;padding:10px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font:700 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;text-align:center}
.gallery-album-mode-tab.is-active{background:#D6336C;border-color:#D6336C;color:#F2F3F5}
#createAlbumShowMode[hidden]{display:none}

.gallery-album-card-highlight{width:100%;height:120px;object-fit:cover;border-radius:10px;margin-bottom:10px;display:block}
.gallery-album-card-category{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8EA0AF;margin-bottom:2px}

/* Multi-select: click a photo to select (or shift/cmd-click to extend),
   right-click for the Set Show/Add Tags/Add to Album/Share/Delete menu.
   Select mode toggles a checkbox onto every tile; selection itself works
   with or without it (a plain click while off turns it on automatically). */
.gallery-photo.is-select-mode{cursor:pointer}
.gallery-photo-check{
  position:absolute;top:8px;left:8px;z-index:2;
  width:24px;height:24px;border-radius:999px;
  background:rgba(20,15,30,.55);border:1.5px solid rgba(255,255,255,.8);
  display:none;align-items:center;justify-content:center;
}
.gallery-photo.is-select-mode .gallery-photo-check{display:flex}
.gallery-photo-check svg{width:14px;height:14px;opacity:0;stroke:#fff;stroke-width:3}
.gallery-photo.is-selected .gallery-photo-check{background:#D6336C;border-color:#D6336C}
.gallery-photo.is-selected .gallery-photo-check svg{opacity:1}
.gallery-photo.is-selected{outline:3px solid #D6336C;outline-offset:-3px}
.gallery-photo-tags{position:absolute;left:8px;bottom:8px;right:8px;display:flex;flex-wrap:wrap;gap:4px;z-index:1}
.gallery-photo-tag-pill{background:rgba(20,15,30,.62);color:#F2F3F5;font-size:11px;font-weight:650;padding:3px 9px;border-radius:999px}

.gallery-bulkbar{
  position:fixed;left:50%;bottom:22px;transform:translateX(-50%);
  display:flex;align-items:center;gap:14px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:12px 12px 12px 18px;box-shadow:0 16px 34px rgba(0,0,0,.28);z-index:60;
}
.gallery-bulkbar[hidden]{display:none}
.gallery-drag-select-box{position:fixed;z-index:55;border:1.5px solid #D6336C;background:rgba(214,51,108,.16);pointer-events:none}
.gallery-drag-select-box[hidden]{display:none}
.gallery-bulkbar-count{font-weight:700;color:var(--text)}
.gallery-bulkbar-actions{display:flex;gap:8px}
.gallery-bulkbar-cancel{background:none;border:0;color:var(--muted);font:inherit;font-size:14px;font-weight:650;padding:9px 8px;cursor:pointer}
.gallery-bulkbar-cancel.is-danger{color:#C0656B}
.gallery-bulkbar-organize{background:#D6336C;border:0;color:#fff;font:inherit;font-size:14px;font-weight:700;padding:10px 18px;border-radius:10px;cursor:pointer}
.gallery-bulkbar-organize:hover{filter:brightness(1.06)}

.gallery-context-menu{
  position:fixed;z-index:70;min-width:190px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 16px 34px rgba(0,0,0,.3);padding:6px;display:flex;flex-direction:column;gap:2px;
}
.gallery-context-menu[hidden]{display:none}
.gallery-context-menu button{
  text-align:left;padding:9px 12px;border-radius:8px;border:0;background:transparent;
  color:var(--text);font:600 14px/1.3 "Google Sans Flex",Arial,sans-serif;cursor:pointer;
}
.gallery-context-menu button:hover{background:var(--page)}
.gallery-context-menu button.is-danger{color:#C0656B}

.gallery-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.gallery-chip{
  padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);
  font:inherit;font-size:13px;font-weight:650;color:var(--text);
  background:transparent;cursor:pointer;
}
.gallery-chip.is-selected{background:#D6336C;border-color:#D6336C;color:#fff}
.gallery-set-highlight-btn{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);color:#F2F3F5;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer}
.gallery-set-highlight-btn.is-highlight{background:#D6336C;border-color:#D6336C}
.gallery-highlight-badge{position:absolute;top:8px;left:8px;background:#D6336C;color:#F2F3F5;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;pointer-events:none}
.gallery-move-photo-btn{position:absolute;bottom:8px;left:8px;right:8px;background:rgba(0,0,0,.55);color:#F2F3F5;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;cursor:pointer}
.gallery-move-photo-picker{position:absolute;left:8px;right:8px;bottom:40px;z-index:2;max-height:160px;overflow-y:auto}
.gallery-move-photo-picker[hidden]{display:none}

/* .gallery-tag-show-list previously carried no button styling at all --
   every show picker using it (upload wizard, Organize panel, Create
   Album's Choose Show mode, lightbox Show picker) rendered as unstyled
   default HTML buttons: white background, centered black text, no
   selected state. Caught live via screenshot. */
.gallery-tag-show-list{max-height:340px;overflow-y:auto;display:grid;gap:8px}
.gallery-tag-show-list button{
  display:flex;flex-direction:column;gap:2px;text-align:left;
  padding:10px 12px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);color:var(--text);cursor:pointer;font:inherit;
}
.gallery-tag-show-list button:hover{border-color:#8EA0AF}
.gallery-tag-show-list button.is-selected{background:#D6336C;border-color:#D6336C}
.gallery-tag-show-list button.is-selected .gallery-show-line2{color:rgba(255,255,255,.8)}
.gallery-show-line1{font-weight:700;font-size:15px;color:inherit}
.gallery-show-line2{font-size:13px;color:var(--muted)}

.myshows-showreel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.myshows-showreel-card{display:block;text-align:left;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;overflow:hidden}
.myshows-showreel-card:hover{border-color:#8EA0AF}
.myshows-showreel-card img{width:100%;height:110px;object-fit:cover;display:block}
.myshows-showreel-noimg{width:100%;height:110px;background:var(--page)}
.myshows-showreel-card-copy{padding:10px 12px}
.myshows-showreel-card-copy strong{display:block;font-size:15px;color:var(--text)}
.myshows-showreel-card-copy span{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.gallery-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(20px);background:#321F3F;color:#F2F3F5;padding:11px 18px;border-radius:999px;font-weight:700;font-size:15px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:999}
.gallery-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* The Dashboard's own wrapper (not .content-shell -- Dashboard doesn't use
   that class) was set to max-width:none/width:100% in an old "Dashboard
   V1.06" pass, so on a wide monitor the whole page stretches edge-to-edge:
   the hero photo balloons to fill its column and the weather/quiet rows
   leave dead empty space instead of staying proportioned like the approved
   concept (which was a contained ~1180px page and never had to handle
   this). Cap it to a generous but bounded width instead. */
.dashboard-wrap{max-width:1440px!important;margin:0 auto!important;}


/* The old editorial 2-column .dashboard-layout-126 split (main column +
   side column) is gone -- Up Next, SOON, and the LATER/MONEY/FOLLOW-UP
   row are a single vertical stack of full-width sections instead. */
.view[data-view="home"] .dashboard-layout-126{display:block!important;grid-template-columns:none!important;}
.view[data-view="home"] .dashboard-layout-126 > *{width:100%!important;}

/* Kelley's call: retire "Most Interesting Man" as the default photo
   everywhere a show/booth photo hasn't been uploaded yet -- one
   reusable diagonal-stripe pattern, global (not scoped to the
   Dashboard) so every placeholder-photo spot in the app can use it. */
.stripe-placeholder{
  background:
    linear-gradient(135deg, rgba(185,163,255,0.35), rgba(95,214,148,0.15)),
    repeating-linear-gradient(45deg, #2a2e38 0 14px, #262a33 14px 28px);
}

/* ===================================================================
   MY SHOWS -- visual rebuild, STAYS/GOES/DIFFERENTLY per Kelley's call:
   STAYS = page heading, sub-page heading, iconography, Add Show ability
   (none of those are touched below -- .myshows-head, .myshows-list-intro,
   every existing svg icon, #myshowsAddButton/drawer are all untouched).
   GOES = toolbar, card grid, table view, empty state -- full redesign.
   DIFFERENTLY = sortable/filterable table view (added directly in the
   My Shows script block, not here).
   Scoped under #myshows2Root -- same five-role type system and color
   tokens as the Dashboard's #dash2Root, reused rather than reinvented,
   so the app reads as one design instead of two. Every rule here beats
   the old unscoped .myshows-* rules on specificity alone (id+class vs
   plain class), regardless of source order or media query, the same
   way #dash2Root neutralized the legacy Dashboard CSS. */
#myshows2Root{
  --ms-surface:#1c1f25;--ms-surface-quiet:#181a1f;--ms-line:#2a2e35;--ms-line-soft:#23262c;
  --ms-text:#d0d0d0;--ms-text-dim:#9aa1ab;--ms-text-faint:#6b7280;--ms-accent:#b9a3ff;--ms-accent-dim:#8f7ad1;
  --ms-good:#5fd694;--ms-good-bg:rgba(95,214,148,0.14);--ms-warn:#f0c05a;--ms-warn-bg:rgba(240,192,90,0.16);--ms-crit:#f0678a;--ms-crit-bg:rgba(240,103,138,0.16);
}
html[data-theme="light"] #myshows2Root{
  --ms-surface:#ffffff;--ms-surface-quiet:#ffffff;--ms-line:#D9DCE0;--ms-line-soft:#E4E6E9;
  --ms-text:#2f343a;--ms-text-dim:#63676d;--ms-text-faint:#8b8f95;--ms-accent:#7c5cff;--ms-accent-dim:#8f7ad1;
  --ms-good:#2f9e6b;--ms-good-bg:rgba(47,158,107,0.12);--ms-warn:#b8860b;--ms-warn-bg:rgba(184,134,11,0.12);--ms-crit:#d1477a;--ms-crit-bg:rgba(209,71,122,0.12);
}

/* ROLE: label */
#myshows2Root .myshows-count{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-text-faint);margin:0 0 14px;}
/* Kelley's call 2026-09-28: was --ms-text-faint (the same dim tone used
   for the tiny "X shows" count line above it), which read as "too soft,
   nearly conspicuous" for what's actually a section heading, not a label.
   Full --ms-text contrast, bumped up a size. */
#myshows2Root .myshows-month-head h2{font-family:"Google Sans Flex",Arial,sans-serif;font-size:16px!important;font-weight:700!important;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-text)!important;display:flex;align-items:center!important;gap:8px;}
#myshows2Root .myshows-month-head .myshows-month-count{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--ms-text-faint);text-transform:none;}
#myshows2Root .myshows-month-icon{width:16px;height:16px;flex:0 0 16px;}

/* Toolbar */
#myshows2Root .myshows-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;align-items:center;}
#myshows2Root .myshows-search{flex:1;min-width:220px;min-height:0;background:var(--ms-surface-quiet);border:1px solid var(--ms-line-soft);border-radius:12px;padding:12px 16px;gap:10px;}
#myshows2Root .myshows-search svg{stroke:var(--ms-text-faint);width:18px;height:18px;flex:0 0 18px;}
#myshows2Root .myshows-search input{font:15px "Google Sans Flex",Arial,sans-serif;color:var(--ms-text);}
#myshows2Root .myshows-search input::placeholder{color:var(--ms-text-faint);}
#myshows2Root .myshows-tool{min-height:0;background:var(--ms-surface-quiet);border:1px solid var(--ms-line-soft);border-radius:12px;padding:12px 18px;color:var(--ms-text);font:600 15px "Google Sans Flex",Arial,sans-serif;}
#myshows2Root .myshows-tool:hover,#myshows2Root .myshows-tool[aria-expanded="true"]{border-color:var(--ms-accent-dim);background:var(--ms-surface-quiet);}
#myshows2Root .myshows-tool svg{stroke:var(--ms-text-faint);width:17px;height:17px;}
#myshows2Root .myshows-sort{min-height:0;background:var(--ms-surface-quiet);border:1px solid var(--ms-line-soft);border-radius:12px;padding:12px 34px 12px 14px;color:var(--ms-text);font:600 15px "Google Sans Flex",Arial,sans-serif;}
#myshows2Root .myshows-view-toggle{border:1px solid var(--ms-line-soft);background:var(--ms-surface-quiet);border-radius:12px;padding:0;overflow:hidden;}
#myshows2Root .myshows-view-btn{width:auto;height:auto;padding:11px 16px;border-radius:0;display:inline-flex;align-items:center;gap:7px;color:var(--ms-text-dim);font:600 14px "Google Sans Flex",Arial,sans-serif;}
#myshows2Root .myshows-view-btn svg{width:16px;height:16px;stroke:currentColor;}
#myshows2Root .myshows-view-btn.active{background:var(--ms-accent-dim);color:#F2F3F5;}

#myshows2Root .myshows-filter-panel{background:var(--ms-surface);border:1px solid var(--ms-line);border-radius:14px;box-shadow:0 20px 44px -20px rgba(0,0,0,.5);}
#myshows2Root .myshows-filter-title{font-family:"Google Sans Flex",Arial,sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-text-faint);}
#myshows2Root .myshows-filter-option{color:var(--ms-text);font:15px "Google Sans Flex",Arial,sans-serif;}
#myshows2Root .myshows-filter-option input{accent-color:var(--ms-accent-dim);}
#myshows2Root .myshows-filter-clear{color:var(--ms-text-dim);}
#myshows2Root .myshows-filter-clear:hover{color:var(--ms-text);}

/* Table view -- colors only; structural rules already added alongside
   .myshows-table-wrap when the feature was first built. */
#myshows2Root .myshows-table-wrap{background:var(--ms-surface);border-color:var(--ms-line);}
#myshows2Root .myshows-table thead th{color:var(--ms-text-faint);border-bottom-color:var(--ms-line);}
#myshows2Root .myshows-table thead th:hover,#myshows2Root .myshows-table thead th.is-sorted{color:var(--ms-text);}
#myshows2Root .myshows-table-arrow{color:var(--ms-accent);}
#myshows2Root .myshows-table tbody td{border-bottom-color:var(--ms-line-soft);color:var(--ms-text);}
#myshows2Root .myshows-table tbody td.myshows-table-meta{color:var(--ms-text-dim);}
#myshows2Root .myshows-table tbody td b{color:var(--text);}
#myshows2Root .myshows-table tbody td.is-paid{color:var(--ms-good);}
#myshows2Root .myshows-table tbody td.is-warn{color:var(--ms-warn);}
#myshows2Root .myshows-table tbody td.is-crit{color:var(--ms-crit);}
#myshows2Root .myshows-table tbody td.is-muted{color:var(--ms-text-faint);}

/* Card grid */
/* Kelley's call 2026-09-28: month-to-month separation "needs stronger
   visibility; better, bigger spacing separation from one month to
   another" -- gap widened, and each month after the first gets a rule
   above it so the break reads even before the heading's own contrast fix
   registers. */
#myshows2Root .myshows-card-groups{display:grid;gap:56px;}
#myshows2Root .myshows-month-group{display:grid;gap:14px;}
#myshows2Root .myshows-month-group:not(:first-child){padding-top:32px;border-top:1px solid var(--ms-line);}
/* minmax(...,1fr) stretches a lone card to the full row width (the
   1fr eats all remaining space when there's only one track) -- cap
   the max and left-align instead, same fix as the weather day cards. */
#myshows2Root .myshows-month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,340px));justify-content:start;gap:16px;}
/* A legacy rule makes a lone card span grid-column:1/-1 -- stretching
   it across every generated track regardless of the width cap above.
   That's real content, not a loading bug (see chat) -- just needed
   the card itself to stop spanning the full row when it's the only
   result in its month group. */
#myshows2Root .myshows-month-grid>.myshows-card:only-child{grid-column:auto;}
#myshows2Root .myshows-card{display:flex;flex-direction:column;background:var(--ms-surface);border:1px solid var(--ms-line);border-radius:16px;padding:0;min-height:0;box-shadow:none;grid-template-columns:none;}
#myshows2Root .myshows-card::after{display:none;}
/* Several legacy responsive breakpoints force this element's height
   via !important (154px/184px/198px/220px/260px depending on viewport
   width) -- same bug class as the Dashboard rebuild: importance beats
   specificity regardless of the #id scope, so this needs !important
   too to actually win at every breakpoint. */
#myshows2Root .myshows-card-image{order:-1;position:relative;height:auto!important;min-height:110px!important;border:0;background:transparent;display:flex;align-items:flex-end;padding:9px 12px;}
#myshows2Root .myshows-card-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
#myshows2Root .myshows-card-image span{position:relative;z-index:1;}
/* #myshows2Root .myshows-card-image span has HIGHER specificity than a
   plain .myshows-highlight-tag rule (id+2classes+type beats id+class),
   so every property it also touches needs !important here to actually
   win -- same root cause as the bottom:10px leftover above, just one
   level deeper in the specificity stack. */
#myshows2Root .myshows-highlight-tag{position:absolute!important;top:14px!important;left:14px!important;bottom:auto!important;right:auto!important;max-width:none!important;padding:3px 8px!important;border-radius:99px!important;background:rgba(20,20,24,.72)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;color:#fff!important;font-size:10px!important;font-weight:700!important;white-space:nowrap!important;}
/* .myshows-card-image span{display:none!important} at one legacy
   breakpoint would otherwise hide the location caption entirely. */
#myshows2Root .myshows-card-image span{display:block!important;position:static;background:none;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none;color:rgba(255,255,255,.6);font:12px "Google Sans Flex",Arial,sans-serif;font-weight:400;max-width:none;}
/* The rule above strips the location caption down to bare low-opacity
   text with no backdrop -- fine over the plain placeholder box, but it
   gets lost against a real booth photo whenever the photo itself is
   light there. Give just the caption (always the last span in the image
   header -- the highlight tag and status badge both come before it in
   the markup) its own solid pill again so it reads over any photo. */
#myshows2Root .myshows-card-image>span:last-child{display:inline-block!important;width:auto!important;background:rgba(20,20,24,.72)!important;padding:4px 9px!important;border-radius:999px!important;backdrop-filter:blur(9px)!important;-webkit-backdrop-filter:blur(9px)!important;color:#F2F3F5!important;}
/* This whole legacy card component is a stack of ~5 responsive
   breakpoints, each setting layout/spacing/color via !important on
   these elements -- discovered by auditing every matched rule live
   rather than guessing. Every property below is !important so it
   wins regardless of which legacy breakpoint happens to be active,
   the same fix pattern as .myshows-card-image above. */
/* flex:1 makes card-body actually consume the card's full stretched
   height (the grid stretches .myshows-card to match its tallest row-mate,
   but without this, card-body stays shrink-to-fit and leaves dead space
   below itself, invisible to .myshows-card-next's margin-top:auto). */
#myshows2Root .myshows-card-body{flex:1 1 auto!important;align-self:stretch!important;width:100%!important;padding:15px 16px 16px!important;gap:6px!important;justify-content:flex-start!important;}
#myshows2Root .myshows-card-top{display:flex!important;grid-template-columns:none!important;justify-content:space-between!important;align-items:flex-start!important;gap:10px!important;}
#myshows2Root .myshows-card-name{font-family:"Google Sans Flex",Arial,sans-serif;font-size:18px!important;font-weight:800!important;color:var(--ms-accent);line-height:1.25!important;}
/* .clickable-title-cue carries a global color:!important that would
   otherwise beat the card-name color above regardless of specificity --
   same bug class hit repeatedly on the Dashboard rebuild. */
#myshows2Root .clickable-title-cue{color:var(--text)!important;}
#myshows2Root .myshows-card:hover .clickable-title-cue{text-decoration:underline!important;}
#myshows2Root .myshows-card-meta{font-family:"Google Sans Flex",Arial,sans-serif;font-size:14px!important;font-weight:400;color:var(--ms-text-dim)!important;margin-top:0!important;}
#myshows2Root .myshows-card-snapshot{display:flex!important;flex-wrap:wrap!important;grid-template-columns:none!important;row-gap:14px!important;column-gap:14px!important;margin-top:8px!important;padding-top:12px!important;border-top:1px solid var(--ms-line-soft);}
#myshows2Root .myshows-card-fact{display:flex!important;flex-direction:column!important;row-gap:2px!important;column-gap:2px!important;align-content:normal!important;}
#myshows2Root .myshows-card-fact>b,#myshows2Root .myshows-card-next>b{font-family:"Google Sans Flex",Arial,sans-serif;font-size:12px!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ms-text-faint)!important;}
#myshows2Root .myshows-card-fact>span,#myshows2Root .myshows-card-next>span{font-family:"Google Sans Flex",Arial,sans-serif;font-size:14px!important;font-weight:300;color:var(--ms-text)!important;line-height:1.4!important;}
#myshows2Root .myshows-card-payment{display:inline!important;align-items:normal!important;row-gap:0!important;column-gap:0!important;}
#myshows2Root .myshows-card-payment.is-paid{color:var(--ms-good)!important;font-weight:600;}
#myshows2Root .myshows-card-payment.is-warn{color:var(--ms-warn)!important;font-weight:600;}
#myshows2Root .myshows-card-payment.is-crit{color:var(--ms-crit)!important;font-weight:600;}
#myshows2Root .myshows-card-payment.is-muted{color:var(--ms-text-faint)!important;font-weight:600;}
#myshows2Root .myshows-card-payment.is-paid::before{background:var(--ms-good);}
#myshows2Root .myshows-card-payment.is-warn::before{background:var(--ms-warn);}
#myshows2Root .myshows-card-payment.is-crit::before{background:var(--ms-crit);}
#myshows2Root .myshows-card-payment.is-muted::before{background:var(--ms-text-faint);}
/* margin-top:auto (not a fixed 10px) pins Next Step to the bottom of the
   card regardless of how many lines the title above it wraps to -- cards
   in the same grid row are already stretched to equal height, so without
   this a longer title just pushes its own Next Step lower than its
   neighbors instead of everything lining up along the bottom edge. */
#myshows2Root .myshows-card-next{grid-column-start:auto!important;grid-column-end:auto!important;display:flex!important;grid-template-columns:none!important;row-gap:8px!important;column-gap:8px!important;align-items:center!important;margin-top:auto!important;padding:8px 12px!important;border:0!important;border-radius:10px!important;background-image:none!important;background-color:var(--ms-warn-bg)!important;font:600 13px "Google Sans Flex",Arial,sans-serif;color:var(--ms-warn);}
#myshows2Root html[data-theme="dark"] .myshows-card-next>b,
/* Kelley's call 2026-09-30: "that exclamation icon bg? Heinous. It
   should be red to show importance." Was --ms-warn (amber/gold);
   switched to --ms-crit, the same real-urgency red already used
   elsewhere (payment forfeited, etc.), since this now only shows for
   genuinely time-sensitive shows (see shouldShowNextStep above). */
#myshows2Root .myshows-action-attention-icon{display:inline-flex;width:14px;height:14px;border-radius:50%;background:var(--ms-crit);color:#fff!important;align-items:center;justify-content:center;font-size:10px;font-weight:800;}
/* .myshows-card .myshows-status{display:none!important} at one legacy
   breakpoint would otherwise hide the status chip entirely. */
#myshows2Root .myshows-card .myshows-status{display:inline-flex!important;justify-self:auto;font-size:11px;min-height:0;padding:4px 10px;font-weight:700;letter-spacing:.02em;border-radius:99px;}
/* Moved out of .myshows-card-top (beside the title) and into the image/
   placeholder header instead -- with a long two-line title, the status
   chip used to sit pinned at the top of that row while the title wrapped
   underneath it, leaving an awkward gap. Sitting above the location
   caption instead means the title always gets the card's full width to
   wrap into, at any length. */
#myshows2Root .myshows-card-image .myshows-status{position:absolute!important;top:9px!important;right:9px!important;left:auto!important;bottom:auto!important;z-index:2;}
/* Kelley's report 2026-09-30: the frosted-glass treatment (light tint +
   blur, meant for a flat table row) washed out to near-invisible against
   a busy/bright photo -- easy to miss entirely. Solid, saturated,
   status-colored pills instead, same colors the table already uses per
   status, just opaque so it reads on any photo. */
#myshows2Root .myshows-card-image .myshows-status{backdrop-filter:none;-webkit-backdrop-filter:none;border:none;color:#fff;background:rgba(34,36,42,.9);}
#myshows2Root .myshows-card-image .myshows-status[data-status="Confirmed"],
#myshows2Root .myshows-card-image .myshows-status[data-status="Accepted"],
#myshows2Root .myshows-card-image .myshows-status[data-status="Attending"]{background:#1F8A5C;}
#myshows2Root .myshows-card-image .myshows-status[data-status="Interested"]{background:#2E6E8E;}
#myshows2Root .myshows-card-image .myshows-status[data-status="Applied"]{background:#B33E77;}
#myshows2Root .myshows-card-image .myshows-status[data-status="Waiting for Jury"]{background:#C59B3C;color:#17181B;}
#myshows2Root .myshows-card-image .myshows-status[data-status^="Denied"]{background:#8C0F35;}
#myshows2Root .myshows-card-image .myshows-status[data-status="Withdrawn"]{background:rgba(34,36,42,.9);}
#myshows2Root .myshows-card-top{justify-content:flex-start!important;}
#myshows2Root .myshows-card-top .myshows-card-name{width:100%!important;}

#myshows2Root .myshows-empty{background:var(--ms-surface-quiet);border-color:var(--ms-line-soft);}
#myshows2Root .myshows-empty strong{color:var(--ms-text);}
#myshows2Root .myshows-empty span{color:var(--ms-text-dim);}

/* MY SHOWS -- Calendar view. Third view alongside Card/Table, same
   #myshows2Root token set (--ms-*) so it reads as one page, not a bolted-on
   widget. A month grid of 6 rows x 7 cols, padded with the trailing days
   of the previous/next month (dimmed) so every week row is always full. */
#myshows2Root .myshows-calendar-wrap[hidden]{display:none;}
#myshows2Root .myshows-calendar-wrap{background:var(--ms-surface);border:1px solid var(--ms-line);border-radius:14px;padding:18px;}
#myshows2Root .myshows-calendar-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
#myshows2Root .myshows-calendar-title{flex:1 1 auto;margin:0;font-family:"Google Sans Flex",Arial,sans-serif;font-size:19px;font-weight:700;color:var(--ms-text);}
#myshows2Root .myshows-calendar-nav{appearance:none;border:1px solid var(--ms-line);background:var(--ms-surface-quiet);color:var(--ms-text);width:32px;height:32px;border-radius:9px;font-size:18px;line-height:1;cursor:pointer;}
#myshows2Root .myshows-calendar-nav:hover{background:var(--ms-line-soft);}
#myshows2Root .myshows-calendar-today{appearance:none;border:1px solid var(--ms-line);background:var(--ms-surface-quiet);color:var(--ms-text-dim);height:32px;padding:0 14px;border-radius:9px;font:600 13px "Google Sans Flex",Arial,sans-serif;cursor:pointer;}
#myshows2Root .myshows-calendar-today:hover{color:var(--ms-text);background:var(--ms-line-soft);}
#myshows2Root .myshows-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;}
#myshows2Root .myshows-calendar-weekdays span{text-align:center;font:700 11px "Google Sans Flex",Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--ms-text-faint);padding-bottom:4px;}
#myshows2Root .myshows-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
#myshows2Root .myshows-calendar-cell{min-height:96px;padding:6px;border-radius:10px;background:var(--ms-surface-quiet);border:1px solid var(--ms-line-soft);display:flex;flex-direction:column;gap:4px;}
#myshows2Root .myshows-calendar-cell.is-other-month{opacity:.4;}
#myshows2Root .myshows-calendar-cell.is-today{border-color:var(--ms-accent);box-shadow:inset 0 0 0 1px var(--ms-accent);}
#myshows2Root .myshows-calendar-daynum{font:700 12px "Google Sans Flex",Arial,sans-serif;color:var(--ms-text-dim);}
#myshows2Root .myshows-calendar-cell.is-today .myshows-calendar-daynum{color:var(--ms-accent);}
#myshows2Root .myshows-calendar-chips{display:flex;flex-direction:column;gap:3px;min-width:0;}
#myshows2Root .myshows-calendar-chip{appearance:none;border:0;display:flex;align-items:center;gap:5px;width:100%;padding:2px 5px;border-radius:6px;background:var(--ms-line-soft);color:var(--ms-text);font:600 11px "Google Sans Flex",Arial,sans-serif;text-align:left;cursor:pointer;min-width:0;}
#myshows2Root .myshows-calendar-chip:hover{background:var(--ms-accent-dim);color:#F2F3F5;}
#myshows2Root .myshows-calendar-chip-dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:var(--ms-accent);}
#myshows2Root .myshows-calendar-chip-dot[data-status="Interested"]{background:#32799B;}
#myshows2Root .myshows-calendar-chip-dot[data-status="Applied"]{background:#D14C8A;}
#myshows2Root .myshows-calendar-chip-dot[data-status="Accepted"],
#myshows2Root .myshows-calendar-chip-dot[data-status="Attending"]{background:#0E6943;}
#myshows2Root .myshows-calendar-chip-dot[data-status="Confirmed"]{background:var(--ms-good);}
#myshows2Root .myshows-calendar-chip-dot[data-status="Denied"],
#myshows2Root .myshows-calendar-chip-dot[data-status="Cancelled"],
#myshows2Root .myshows-calendar-chip-dot[data-status="Withdrawn"]{background:var(--ms-crit);}
#myshows2Root .myshows-calendar-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#myshows2Root .myshows-calendar-more{font:600 11px "Google Sans Flex",Arial,sans-serif;color:var(--ms-text-faint);padding:2px 5px;}

@media(max-width:700px){
  #myshows2Root .myshows-month-grid{grid-template-columns:1fr;}
  #myshows2Root .myshows-toolbar{gap:10px;}
  /* Three view buttons (Card/Table/Calendar) is one more than this row was
     built for -- icon-only below 700px keeps all three from clipping. */
  #myshows2Root .myshows-view-btn span{display:none;}
  #myshows2Root .myshows-view-btn{padding:11px 13px;}
  #myshows2Root .myshows-calendar-cell{min-height:64px;}
  #myshows2Root .myshows-calendar-daynum{font-size:11px;}
  #myshows2Root .myshows-calendar-chip-label{display:none;}
  #myshows2Root .myshows-calendar-chip{justify-content:center;padding:3px;}
}

.booth-layout-root .page-header{margin-bottom:22px;}
.booth-layout-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:22px;}
.booth-layout-control:not([hidden]){display:grid;gap:6px;min-width:240px;}
.booth-layout-control>span{color:var(--muted);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.booth-layout-control select{height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:650 16px/1 "Google Sans Flex",sans-serif;}
.booth-layout-dims{color:var(--muted);font-size:14px;font-weight:600;padding-bottom:11px;}
.booth-layout-stage-wrap:not([hidden]){display:flex;justify-content:center;padding:28px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,transparent);overflow:auto;}
.booth-layout-stage{position:relative;border:2px solid var(--text);border-radius:6px;background-color:var(--surface);background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);flex:0 0 auto;}
.booth-layout-empty{padding:48px 24px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center;font-size:15px;}
.booth-layout-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px;margin-top:75px;margin-bottom:14px;padding:18px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);}
.booth-layout-steps{display:flex;flex-wrap:wrap;align-items:flex-start;gap:50px;flex:1 1 auto;}
.booth-layout-step{min-width:180px;}
.booth-layout-step summary{list-style:none;cursor:pointer;color:var(--muted);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 0 8px;border-bottom:2px solid var(--line);margin-bottom:12px;display:flex;align-items:center;gap:6px;}
.booth-layout-step summary::-webkit-details-marker{display:none;}
.booth-layout-step summary::before{content:"\25B8";font-size:11px;color:var(--muted);transition:transform .15s ease;}
.booth-layout-step[open] summary::before{transform:rotate(90deg);}
.booth-layout-step[open] summary{color:var(--text);border-bottom-color:var(--app-link,#9C7FA7);}
.booth-layout-step-body{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.booth-layout-step select{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:650 15px/1 "Google Sans Flex",sans-serif;}
.booth-layout-dim-group{display:flex;align-items:center;gap:8px;}
.booth-layout-add-to-stage-btn{align-self:flex-end;flex:0 0 auto;}
.booth-layout-save-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px;}
.booth-layout-item-count{color:var(--muted);font-size:13px;font-weight:600;margin-right:auto;}
.booth-layout-save-color-btn{height:30px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:600 12px "Google Sans Flex",sans-serif;padding:0 10px;cursor:pointer;white-space:nowrap;}
.booth-layout-save-status{color:var(--muted);font-size:13px;font-weight:600;}
.booth-layout-save-status.is-error{color:#D47C84;}
/* Kelley's call 2026-09-30: match People's subtitle typography exactly
   (this used to be bolted-up to 18px/650/dark to separate it from the
   hint line below -- now that gap comes from margin instead, on both
   paragraphs, same as People's own two stacked .page-subtitle lines). */
.booth-layout-hint{color:var(--muted);font-size:15px;line-height:1.48;margin:9px 0 1.5em;}
.booth-layout-item{--item-color:#9C7FA7;position:absolute;box-sizing:border-box;border:2px solid var(--item-color);background:color-mix(in srgb,var(--item-color) 22%,var(--surface));border-radius:4px;cursor:grab;touch-action:none;display:flex;align-items:center;justify-content:center;padding:2px;overflow:hidden;user-select:none;}
.booth-layout-item.is-circle{border-radius:50%;}
.booth-layout-item.is-selected{box-shadow:0 0 0 2px var(--app-link,#9C7FA7);}
.booth-layout-item:active{cursor:grabbing;}
.booth-layout-item-label{font-size:11px;font-weight:700;color:var(--text);text-align:center;line-height:1.15;pointer-events:none;}
.booth-layout-item-actions{position:absolute;transform:translateX(-50%);display:flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:5px 6px;box-shadow:0 4px 14px rgba(0,0,0,.18);white-space:nowrap;z-index:3;}
.booth-layout-item-actions button{appearance:none;border:1px solid var(--line);border-radius:7px;background:var(--surface-quiet,transparent);color:var(--text);font-size:15px;line-height:1;width:26px;height:26px;cursor:pointer;}
.booth-layout-color-swatch{display:inline-flex;width:22px;height:22px;border-radius:6px;overflow:hidden;border:1px solid var(--line);cursor:pointer;}
.booth-layout-color-swatch input[type="color"]{width:30px;height:30px;margin:-4px;border:0;padding:0;cursor:pointer;background:transparent;}
.booth-layout-hex-input{width:76px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:600 12px/1 "Google Sans Flex",monospace;padding:0 6px;text-transform:uppercase;}
.booth-layout-item-dims{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;padding:0 2px;}
.booth-layout-dim-field:not([hidden]){display:inline-flex;align-items:center;gap:4px;}
.booth-layout-dim-field input{width:52px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:600 12px "Google Sans Flex",sans-serif;padding:0 6px;text-align:center;}
.booth-layout-dim-field span{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;}
.booth-layout-resize-handle{position:absolute;right:0;bottom:0;width:14px;height:14px;background:var(--item-color);border:2px solid var(--surface);border-radius:3px 0 4px 0;cursor:nwse-resize;touch-action:none;}
.booth-layout-item.is-circle .booth-layout-resize-handle{border-radius:50%;right:2px;bottom:2px;}
.booth-layout-item:not(.is-selected) .booth-layout-resize-handle{display:none;}
.booth-layout-rotate-handle{position:absolute;left:0;top:0;width:14px;height:14px;background:var(--item-color);border:2px solid var(--surface);border-radius:0 4px 0 3px;cursor:grab;touch-action:none;}
.booth-layout-item:not(.is-selected) .booth-layout-rotate-handle{display:none;}
.booth-layout-item.cat-chair .booth-layout-item-label{position:absolute;bottom:2px;left:0;right:0;font-size:9px;z-index:1;}
.booth-layout-item.cat-chair::after{content:"";position:absolute;inset:12% 12% 26% 12%;background-color:var(--item-color);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='11' width='16' height='3' fill='black'/%3E%3Crect x='4' y='2' width='3' height='11' fill='black'/%3E%3Crect x='17' y='14' width='2' height='7' fill='black'/%3E%3Crect x='5' y='14' width='2' height='7' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='11' width='16' height='3' fill='black'/%3E%3Crect x='4' y='2' width='3' height='11' fill='black'/%3E%3Crect x='17' y='14' width='2' height='7' fill='black'/%3E%3Crect x='5' y='14' width='2' height='7' fill='black'/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;}
.booth-layout-item.cat-cart .booth-layout-item-label{position:absolute;bottom:2px;left:0;right:0;font-size:9px;z-index:1;}
.booth-layout-item.cat-cart::after{content:"";position:absolute;inset:14% 10% 22% 10%;background-color:var(--item-color);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='6' width='15' height='9' rx='1' fill='black'/%3E%3Crect x='16' y='1' width='2.2' height='7' fill='black'/%3E%3Ccircle cx='7' cy='17.5' r='2.3' fill='black'/%3E%3Ccircle cx='15' cy='17.5' r='2.3' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='6' width='15' height='9' rx='1' fill='black'/%3E%3Crect x='16' y='1' width='2.2' height='7' fill='black'/%3E%3Ccircle cx='7' cy='17.5' r='2.3' fill='black'/%3E%3Ccircle cx='15' cy='17.5' r='2.3' fill='black'/%3E%3C/svg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;}
.booth-layout-item.cat-curtains{background-image:repeating-linear-gradient(90deg,color-mix(in srgb,var(--item-color) 30%,var(--surface)) 0 4px,color-mix(in srgb,var(--item-color) 14%,var(--surface)) 4px 8px);}
.booth-layout-item.cat-grid-wall{background-image:linear-gradient(color-mix(in srgb,var(--item-color) 45%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--item-color) 45%,transparent) 1px,transparent 1px);background-size:8px 8px;}
.booth-layout-item.cat-banner{border-style:dashed;}
.booth-layout-item.cat-tablecloth{border-style:dotted;}
.booth-layout-item.cat-rack::before,.booth-layout-item.cat-rack::after{content:"";position:absolute;inset:10%;border:1px solid var(--item-color);border-radius:50%;pointer-events:none;}
.booth-layout-item.cat-rack::after{inset:28%;}


/* Applications view (new 2026-09-28): "Applications" alone, unlike "My
   Shows", has no space to wrap on at narrow widths, so it can run under
   the compact header button that My Shows' own mobile rules produce (see
   the #myshowsAddButton/#applicationsAddButton rules earlier in this
   file). Stacking the button below the title on mobile sidesteps that
   race entirely instead of depending on the title text wrapping just
   right -- appended here, after those rules, so it reliably wins. */
@media(max-width:520px){
.view[data-view="applications"] .myshows-head{display:block!important}
.view[data-view="applications"] .myshows-head #applicationsAddButton{display:inline-flex!important;width:100%!important;justify-content:center!important;margin-top:14px!important}
}

/* Applications progress bar (2026-09-28) -- same --ms-* themed token
   pattern already used by #myshows2Root/#tasks2Root, scoped to the
   Applications view instead of an id since that view has no such root
   wrapper of its own. */
.view[data-view="applications"]{
  --ms-line-soft:#23262c;--ms-text:#d0d0d0;--ms-text-faint:#6b7280;
  --ms-accent:#5FD3DC;--ms-accent-dim:#2FB8C4;--ms-good:#5fd694;
}
html[data-theme="light"] .view[data-view="applications"]{
  --ms-line-soft:#E4E6E9;--ms-text:#2f343a;--ms-text-faint:#8b8f95;
  --ms-accent:#1F9AA6;--ms-accent-dim:#2FB8C4;--ms-good:#2f9e6b;
}
/* 2026-09-29: Kelley's call -- "status bar looks paltry, very
   forgettable." A 10px bare strip with 12px text was easy to miss
   entirely on a panel whose whole job is to show where an application
   stands. Now housed in its own card (matches the Status field card
   below it), thicker track, and each label gets a real step-marker dot
   so it reads as a stepper, not a thin progress sliver. */
.app-progress{margin:16px 26px 0;padding:18px 20px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.app-progress-track{height:16px;border-radius:999px;background:var(--ms-line-soft);overflow:hidden;box-shadow:inset 0 0 0 1px var(--ms-line-soft)}
.app-progress-fill{height:100%;border-radius:999px;width:0%;background:linear-gradient(90deg,var(--ms-accent-dim),var(--ms-accent));transition:width 480ms cubic-bezier(.4,0,.2,1),background 240ms ease}
.app-progress-fill.is-ended{background:linear-gradient(90deg,var(--ms-text-faint),var(--ms-text-faint))}
.app-progress-fill.is-complete{background:linear-gradient(90deg,var(--ms-good),var(--ms-accent));box-shadow:0 0 14px rgba(95,214,148,.45)}
.app-progress-labels{display:flex;justify-content:space-between;margin-top:14px;font:700 13px/1.3 "Google Sans Flex",Arial,sans-serif;letter-spacing:.02em;color:var(--ms-text-faint)}
.app-progress-labels span{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px}
.app-progress-labels span::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--ms-line-soft);border:2px solid var(--ms-line-soft);box-sizing:border-box;transition:background 240ms ease,border-color 240ms ease,box-shadow 240ms ease}
.app-progress-labels span:first-child{align-items:flex-start;text-align:left}
.app-progress-labels span:last-child{align-items:flex-end;text-align:right}
.app-progress-labels span:not(:first-child):not(:last-child){text-align:center}
.app-progress-labels span.is-passed{color:var(--ms-text)}
.app-progress-labels span.is-passed::before{background:var(--ms-accent);border-color:var(--ms-accent)}
.app-progress-labels span.is-active{color:var(--ms-accent);font-weight:800;font-size:14px}
.app-progress-labels span.is-active::before{background:var(--ms-accent);border-color:var(--ms-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--ms-accent) 28%,transparent)}
.app-progress-ended-note{margin:10px 0 0;font-size:13px;color:var(--ms-text-faint)}


/* Application peek field groups: 40px between groups, per Kelley's mockup
   (explicitly annotated "40px of space between fields" on the sibling Add
   Show mockup; the Application Side Peek tab conveys the same via blank
   rows between each pair). Each group is its own <dl>, not one continuous
   grid, specifically so groups can carry their own spacing.
   2026-09-29: the 40px margin alone didn't read as real separation --
   every field row also carried its own border-bottom (a leftover from
   the read-only My Shows peek list), so every pair looked identical to
   its neighbors regardless of the group gap. Each group is now its own
   card (background + border), and the field-row border-bottom is
   dropped inside groups since the input's own border already does that
   job -- Kelley's call: "not the spacing I asked for... looks sloppy." */
.app-peek-group{
  margin-bottom:20px;padding:18px 20px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.app-peek-group>div{border-bottom:none!important;padding-bottom:0!important;}
.app-peek-group#applicationsPeekStatusGroup{
  background:color-mix(in srgb,var(--ms-accent) 10%,var(--surface));
  border-color:var(--ms-accent-dim);
}
.app-peek-status-field dt{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-accent);}
.app-peek-status-select{font-size:19px!important;font-weight:700!important;padding:10px 12px!important;border-color:var(--ms-accent-dim)!important;}

/* Dashboard restructure 2026-09-28: "Shows" and "Tasks" as two clean
   top-level sections (Money removed entirely -- belongs on the future My
   Money page, not the Dashboard). */
#dash2Root .dash-section-head{margin:28px 0 10px}
#dash2Root .dash-section-head:first-child{margin-top:0}
#dash2Root .followup-row.is-overdue{background:var(--d2-crit-bg);border-radius:8px;padding:8px 10px;margin-bottom:4px}
#dash2Root .followup-row.is-overdue .dot{background:var(--d2-crit)}

/* Preferences (2026-10-01): first real build, Notifications + Defaults
   only -- Billing is a later phase once the Helcim work lands. Preferences'
   own nav color (#9C7FA7) carries through the toggle/section accents. */
.prefs-page{max-width:640px}
.prefs-section{padding:22px 0;border-bottom:1px solid var(--line)}
.prefs-section:first-child{padding-top:0}
.prefs-section:last-child{border-bottom:0}
.prefs-section-title{font-family:"Google Sans Flex",Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.prefs-row{display:flex;align-items:center;justify-content:space-between;gap:24px}
.prefs-row+.prefs-row{margin-top:22px}
.prefs-row-copy{min-width:0}
.prefs-row-label{font-family:"Google Sans Flex",Arial,sans-serif;font-size:17px;font-weight:650;color:var(--text)}
.prefs-row-note{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.5;max-width:420px}
.prefs-section--soon .prefs-row-note{max-width:none;margin:0}
.prefs-toggle{appearance:none;position:relative;flex:0 0 auto;width:48px;height:28px;border-radius:999px;border:1px solid var(--line);background:var(--line);cursor:pointer;transition:background .15s ease,border-color .15s ease}
.prefs-toggle-knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s ease}
.prefs-toggle[aria-checked="true"]{background:#9C7FA7;border-color:#9C7FA7}
.prefs-toggle[aria-checked="true"] .prefs-toggle-knob{transform:translateX(20px)}
.prefs-toggle:disabled{opacity:.5;cursor:default}
.prefs-save-status{margin-bottom:16px;padding:10px 14px;border-radius:10px;background:color-mix(in srgb,#9C7FA7 14%,var(--surface));color:var(--text);font-size:14px;font-weight:600}
.prefs-save-status.is-error{background:color-mix(in srgb,#D47C84 16%,var(--surface));color:#D47C84}
/* Kelley's report: the Card/Table toggle borrowed from My Shows looked
   fine there because #myshows2Root gives it its own auto-width/padded/
   horizontal layout -- reused bare here, it fell back to the BASE
   .myshows-view-btn rule (a 40x38px icon-only box), cramming icon+label
   together. Same override, scoped to this page instead. */
#prefsDefaultShowsView .myshows-view-btn{width:auto;height:auto;padding:11px 16px;display:inline-flex;align-items:center;gap:7px;font:600 14px "Google Sans Flex",Arial,sans-serif;color:var(--muted)}
#prefsDefaultShowsView .myshows-view-btn svg{width:16px;height:16px}
#prefsDefaultShowsView .myshows-view-btn.active{background:#9C7FA7;color:#F2F3F5}
.prefs-select{flex:0 0 auto;min-width:180px}
@media(max-width:600px){
  .prefs-row{flex-direction:column;align-items:flex-start;gap:12px}
  .prefs-select{width:100%}
}
#dash2Root .followup-row.is-overdue .d2-body{color:var(--d2-crit);font-weight:600}

/* People page accent (2026-10-02): each page keeps its own designated nav
   color throughout -- People is pink #EC6BA5. The monogram, type pill,
   phone/email links, right-edge bar and hover/focus borders had stayed on
   the generic purple. Placed last, with !important only where an older
   !important rule (.quiet-link, .contact-type) has to be beaten. */
.contact-card::after{background:#EC6BA5}
.contact-card:hover,.contact-card:focus-visible{border-color:color-mix(in srgb,var(--line) 45%,#EC6BA5)}
.contact-card.rolodex-near{border-color:color-mix(in srgb,var(--line) 62%,#EC6BA5)}
.contact-monogram,html[data-theme="dark"] .contact-monogram{background:color-mix(in srgb,#EC6BA5 14%,var(--page));color:#EC6BA5}
.contacts-screen .contact-type,html[data-theme="dark"] .contacts-screen .contact-type{background:color-mix(in srgb,#EC6BA5 14%,transparent)!important;color:#EC6BA5!important}
.view[data-view="contacts"] .quiet-link,.view[data-view="contacts"] .quiet-link:hover,.view[data-view="contacts"] .quiet-link:focus-visible,.side-peek .contact-method-row .quiet-link{color:var(--text)!important}

/* Page-accent consistency pass (2026-10-02): Applications filter checkboxes
   use teal; the People side peek's actions use People pink. */
.view[data-view="applications"] .myshows-filter-option input{accent-color:#2FB8C4}
.peek-actions .share-contact{background:#EC6BA5;border-color:#EC6BA5;color:#fff;box-shadow:none}
.peek-actions .share-contact:hover,.peek-actions .share-contact:focus-visible{background:color-mix(in srgb,#EC6BA5 85%,#000 15%);border-color:color-mix(in srgb,#EC6BA5 85%,#000 15%);color:#fff}
.peek-actions button:hover,.peek-actions button:focus-visible{border-color:#EC6BA5}

/* Page-title icons are 36x36 on every page (Kelley, 2026-10-02): the
   placeholder pages were 28px and My Shows' tent icon was forced to 20px
   by its nav-sizing !important rule. Scoped to the title row, so sidebar
   icons keep their own size. Preferences also gets its own mauve now that
   it's a real page instead of a .placeholder. */
.myshows-title-row svg{width:36px!important;height:36px!important;flex:0 0 36px!important}
.view[data-view="preferences"] .myshows-title-row svg{color:#9C7FA7}
.view[data-view="profile"] .myshows-title-row svg{color:#9C7FA7}

/* ===== Beta ribbon: hide while ANY peek/drawer/modal is open, at every
   width (it was mobile-only; desktop side peeks had it over their close X). */
body:has([class*="-peek"][aria-hidden="false"],[class*="-drawer"][aria-hidden="false"],[class*="-modal"][aria-hidden="false"]) .beta-ribbon{display:none}

/* ===== Companies always read in capitals (Kelley, 2026-10-02) ===== */
.contact-company,.peek-company,#peekEditCompany{text-transform:uppercase}

/* ===== One shared link treatment: the PAGE's own color + underline =====
   (+ sparkle at the start of the link, see the sparkle script). Page color
   instead of yet another accent so links match the page they sit on;
   underline is what says "link". Light mode uses a deeper shade where the
   page color is too pale to read as small text on white. Dashboard's own
   color is the theme text color. Links inside a table/row (contact
   phone/email) stay plain text. */
.view{--link:var(--text)}
.view[data-view="shows"]{--link:#8f7ad1}
.view[data-view="applications"]{--link:#2FB8C4}
.view[data-view="contacts"]{--link:#EC6BA5}
.view[data-view="tasks"]{--link:#4DB6E8}
.view[data-view="gallery"]{--link:#D6336C}
.view[data-view="b.a.d.™"]{--link:#4A8FE0}
.view[data-view="calendar"]{--link:#8B93E8}
.view[data-view="documents"]{--link:#3E8E8A}
.view[data-view="my-money"]{--link:#4FBF95}
.view[data-view="reports"]{--link:#A8A6B3}
.view[data-view="preferences"],.view[data-view="profile"]{--link:#9C7FA7}
html[data-theme="light"] .view[data-view="applications"]{--link:#1F8F99}
html[data-theme="light"] .view[data-view="contacts"]{--link:#D6447F}
html[data-theme="light"] .view[data-view="tasks"]{--link:#2790C7}
html[data-theme="light"] .view[data-view="calendar"]{--link:#6F78D6}
html[data-theme="light"] .view[data-view="my-money"]{--link:#2E9E75}
html[data-theme="light"] .view[data-view="reports"]{--link:#7C7A8A}
html[data-theme="light"] .view[data-view="preferences"],html[data-theme="light"] .view[data-view="profile"]{--link:#86698F}
html[data-theme] .view .quiet-link:not(.contact-method-row .quiet-link),
html[data-theme] .view .soon-link,
html[data-theme] .view .marker-label-link,
html[data-theme] .view .myshows-card-link,
html[data-theme] .view .related-person-actions a,
html[data-theme] .view .task-column-footer .quiet-link,
html[data-theme] #dash2Root .soon-link,
html[data-theme] #dash2Root .soon-card:hover .soon-link{
  color:var(--link)!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}
html[data-theme] .view .quiet-link:not(.contact-method-row .quiet-link):hover,
html[data-theme] .view .soon-link:hover,
html[data-theme] .view .task-column-footer .quiet-link:hover{
  color:color-mix(in srgb,var(--link) 80%,var(--text))!important;
}

/* Add Show question: four tiles that route to the right form */
.add-show-ask-tiles{display:grid;gap:10px;padding:18px 22px 22px}
.add-show-ask-tile{display:grid;gap:3px;text-align:left;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--page);color:var(--text);cursor:pointer;font:inherit}
.add-show-ask-tile strong{font:700 16px/1.25 "Google Sans Flex",Arial,sans-serif}
.add-show-ask-tile span{font-size:13px;color:var(--muted)}
.add-show-ask-tile:hover,.add-show-ask-tile:focus-visible{border-color:#8EA0AF;background:var(--hover-row);outline:none}
[data-future][hidden]{display:none !important}

/* My Shows: stage groups with date-first cards */
.ms-group{margin:0 0 6px}
.ms-group-head{display:flex;align-items:center;gap:10px;width:100%;margin:22px 0 12px;padding:0;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;user-select:none}
.ms-group-head h2{margin:0;font:700 19px/1.2 "Google Sans Flex",Arial,sans-serif}
.ms-group-count{font-size:14px;color:var(--muted)}
.ms-group-chevron{width:16px;height:16px;flex:0 0 auto;color:var(--muted);transition:transform .15s ease}
.ms-group-head[aria-expanded="false"] .ms-group-chevron{transform:rotate(-90deg)}
.ms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.ms-card{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}
.ms-card:hover,.ms-card:focus-visible{border-color:#8EA0AF;outline:none}
.ms-date{display:grid;place-content:center;width:54px;min-width:54px;height:60px;border-radius:10px;background:var(--hover-row);text-align:center;line-height:1.1}
.ms-date small{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted)}
.ms-date b{font:700 24px/1.1 "Google Sans Flex",Arial,sans-serif}
.ms-card-body{display:grid;gap:3px;min-width:0}
.ms-card-name{font:700 16px/1.3 "Google Sans Flex",Arial,sans-serif;overflow-wrap:anywhere}
.ms-card-line{font-size:13px;color:var(--muted)}
.ms-card .myshows-status{justify-self:start;min-height:24px;padding:0 10px;font-size:12px;margin-top:6px}
.myshows-status[data-status="Future"]{border-style:dashed;border-color:var(--line);background:var(--surface);color:var(--muted)}

/* My Shows cards follow the app's per-page color coding: My Shows purple for
   shows you're attending, Applications teal for the application stages.
   Status tags are solid so they stand out from the page atmosphere. */
.ms-card--attending .ms-date{background:#8f7ad1;color:#F2F3F5}
.ms-card--applying .ms-date,.ms-card--future .ms-date{background:#2FB8C4;color:#F2F3F5}
/* Past matches the "Completed" badge slate so it never reads as an active show while scrolling */
.ms-card--past .ms-date{background:#66737F;color:#F2F3F5}
.ms-date small{color:inherit;opacity:.92}
.ms-card .myshows-status{min-height:26px;padding:0 12px;font-size:12.5px;font-weight:700;letter-spacing:.02em;color:#fff;border-color:transparent}
.ms-card .myshows-status[data-status="Confirmed"]{background:#7659A8}
.ms-card .myshows-status[data-status="Accepted"],.ms-card .myshows-status[data-status="Attending"]{background:#0E6943}
.ms-card .myshows-status[data-status="Interested"]{background:#32799B}
.ms-card .myshows-status[data-status="Applied"]{background:#D14C8A}
.ms-card .myshows-status[data-status="Waiting for Jury"]{background:#C59B3C;color:#17181B}
.ms-card .myshows-status[data-status="Future"]{background:#6D7E8D;border-style:solid}
.ms-card .myshows-status[data-status="Completed"]{background:#66737F}
.ms-card .myshows-status[data-status="Rescheduled"]{background:#2E6FA3}
.ms-card .myshows-status[data-status^="Denied"]{background:#A8013D;color:#fff}
.ms-card .myshows-status[data-status="Withdrawn"],.ms-card .myshows-status[data-status="Cancelled"]{background:#6B7280;color:#fff}

/* The Add Application drawer and application peek now sit on <body> (so they
   can open over My Shows); carry over the Applications page's teal theme. */
.app-overlays{--ms-line-soft:#23262c;--ms-text:#d0d0d0;--ms-text-faint:#6b7280;--ms-accent:#5FD3DC;--ms-accent-dim:#2FB8C4;--ms-good:#5fd694;--link:#2FB8C4}
html[data-theme="light"] .app-overlays{--ms-line-soft:#E4E6E9;--ms-text:#2f343a;--ms-text-faint:#8b8f95;--ms-accent:#1F9AA6;--ms-accent-dim:#2FB8C4;--ms-good:#2f9e6b;--link:#1F8F99}
.app-overlays .glass-action:not(.glass-action--soon){background:#2FB8C4;border-color:#2FB8C4}
.app-overlays .glass-action:not(.glass-action--soon):hover{background:color-mix(in srgb,#2FB8C4 85%,#000 15%);border-color:color-mix(in srgb,#2FB8C4 85%,#000 15%)}

/* Closed shows (cancelled, withdrawn, denied): muted */
.ms-card--closed .ms-date{background:#66737F;color:#F2F3F5;opacity:.7}

/* Show Type: card tag and the plain-language key shown beside every picker */
.ms-card-type{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted)}
.show-type-help{margin-top:8px;display:grid;gap:4px}
.show-type-help p{margin:0;font-size:13px;line-height:1.4;color:var(--muted)}
.show-type-help b{color:var(--text,inherit);font-weight:600}
.myshows-filter-section .show-type-help{margin:0 0 10px}

/* Show Types: pick-several tiles, each with its own plain-language meaning */
.st-hint{font-weight:400;color:var(--muted)}
.st-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px}
.st-tile{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);font:inherit;cursor:pointer}
.st-tile b{font-size:14px;font-weight:600}
.st-tile span{font-size:12px;line-height:1.35;color:var(--muted)}
.st-tile:hover{background:var(--hover-row)}
.st-tile[aria-pressed="true"]{border-color:#8f7ad1;background:rgba(143,122,209,.16);box-shadow:inset 0 0 0 1px #8f7ad1}
.st-filter-opt{align-items:flex-start}
.st-filter-opt small{display:block;font-size:12px;color:var(--muted);line-height:1.3}
@media (max-width:520px){.st-picker{grid-template-columns:1fr}}

/* Dashboard "+ Add" menu: one quiet button that opens a short list. Each item
   carries its page color in a dot. */
.dashboard-greet-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:8px}
.dashboard-greet-row .dashboard-heading-note{margin:0}
.dashboard-title-row{display:block}
.dashboard-add-wrap{position:relative;z-index:20;display:block;width:max-content;max-width:100%;margin:2px 0 0 14px}
.dashboard-add-trigger{display:inline-flex;align-items:center;gap:8px;padding:8px 6px 8px 0;background:none;border:0;color:var(--text-primary);font:500 17px/1.2 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.dashboard-add-trigger > span{border-bottom:1.5px dotted var(--border-stronger);padding-bottom:2px}
.dashboard-add-trigger .qa-chev{color:#8f7ad1;transition:transform .15s ease}
.dashboard-add-trigger:hover > span,.dashboard-add-trigger[aria-expanded="true"] > span{color:#6b57b8;border-bottom-color:#8f7ad1}
.dashboard-add-trigger[aria-expanded="true"] .qa-chev{transform:rotate(180deg)}
.dashboard-add-menu{position:absolute;left:0;top:calc(100% + 6px);z-index:60;min-width:236px;display:flex;flex-direction:column;gap:2px;padding:6px;margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.22);flex-wrap:nowrap;overflow:visible}
.dashboard-add-menu[hidden]{display:none}
.dashboard-add-menu .glass-action{--dot:#8EA0AF;width:100%;min-width:0 !important;min-height:40px !important;height:40px;justify-content:flex-start;gap:12px;padding:0 12px;border-radius:9px;background:transparent !important;border:0 !important;color:var(--text) !important;font-weight:600;box-shadow:none;transform:none}
.dashboard-add-menu .glass-action .qa-plus{display:none}
.dashboard-add-menu .glass-action::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--dot);flex:none}
.dashboard-add-menu .glass-action:hover,.dashboard-add-menu .glass-action:focus-visible{background:var(--hover-row) !important;transform:none}
.dashboard-add-menu .glass-action--soon{color:var(--muted) !important}
.dashboard-add-menu .glass-action--soon::before{opacity:.5}
.dashboard-add-menu .qa-soon{margin-left:auto;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.dashboard-add-menu #dashboardAddShowBtn{--dot:#8f7ad1}
.dashboard-add-menu #dashboardAddTaskBtn{--dot:#87CEEB}
.dashboard-add-menu #dashboardAddPhotoBtn{--dot:#D6336C}
.dashboard-add-menu #dashboardAddPeopleBtn{--dot:#EC6BA5}
.dashboard-add-menu #dashboardAddDocBtn{--dot:#3E8E8A}
.dashboard-add-menu #dashboardAddReceiptBtn{--dot:#4FBF95}

/* Dashboard type hierarchy (Kelley, 2026-10-03: every heading was the same
   size as body copy). Three clear levels instead of one flat caps label:
     1. Section heading (Shows, Soon, Tasks): big, confident, with a short accent bar.
     2. Card heading (Show forecast..., Tasks, Logistics): mid-size, sentence case.
     3. Eyebrow (Next up, Load-in, Show Day 1): tiny tracked caps, stays quiet. */
#dash2Root .quiet-title{
  font-size:28px;line-height:1.15;font-weight:800;letter-spacing:-.015em;text-transform:none;color:var(--d2-text);margin:0 0 16px;
}
#dash2Root .quiet-title::after{content:"";display:block;width:38px;height:3px;border-radius:3px;background:var(--d2-accent);margin-top:10px}
#dash2Root .section-label{
  font-size:19px;line-height:1.25;font-weight:700;letter-spacing:-.005em;text-transform:none;color:var(--d2-text);
}
#dash2Root .hero-eyebrow,
#dash2Root .weather-day-name{
  font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
@media(max-width:600px){
  #dash2Root .quiet-title{font-size:30px}
  #dash2Root .section-label{font-size:20px}
  #dash2Root .hero-eyebrow,
  #dash2Root .weather-day-name{font-size:12.5px}
}

/* =========================================================
   ATMOSPHERE -- a night light, not a feature (Kelley, 2026-10-03).
   Three soft blobs of color drift like a lava lamp: very slowly, behind
   everything, never above content. Each page tints and places the light
   differently, and the change fades in. Warm comes from rose, violet and
   custard yellow -- never orange or brown. Replaces the old fixed
   three-radial wash on .main.
   ========================================================= */
@property --ca{syntax:'<color>';inherits:true;initial-value:#8f7ad1}
@property --cb{syntax:'<color>';inherits:true;initial-value:#e07aa8}
@property --cc{syntax:'<color>';inherits:true;initial-value:#f1de9a}
@property --ax{syntax:'<percentage>';inherits:true;initial-value:16%}
@property --ay{syntax:'<percentage>';inherits:true;initial-value:28%}
@property --bx{syntax:'<percentage>';inherits:true;initial-value:84%}
@property --by{syntax:'<percentage>';inherits:true;initial-value:20%}
@property --cx{syntax:'<percentage>';inherits:true;initial-value:64%}
@property --cy{syntax:'<percentage>';inherits:true;initial-value:86%}

html[data-theme="light"] .main,
html[data-theme="dark"] .main{background:var(--surface);background-attachment:scroll}

.atmosphere{
  --k:15;
  position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  transition:--ca 1.6s ease,--cb 1.6s ease,--cc 1.6s ease,--ax 1.6s ease,--ay 1.6s ease,--bx 1.6s ease,--by 1.6s ease,--cx 1.6s ease,--cy 1.6s ease;
}
html[data-theme="dark"] .atmosphere{--k:26}
.atmosphere i{
  position:absolute;display:block;width:64vmax;height:64vmax;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--c) calc(var(--k) * 1%),transparent) 0%,transparent 64%);
  left:calc(var(--x) - 32vmax);top:calc(var(--y) - 32vmax);
  will-change:transform;
}
.atmo-a{--x:var(--ax);--y:var(--ay);--c:var(--ca);animation:atmo-a 97s ease-in-out infinite alternate}
.atmo-b{--x:var(--bx);--y:var(--by);--c:var(--cb);animation:atmo-b 123s ease-in-out infinite alternate}
.atmo-c{--x:var(--cx);--y:var(--cy);--c:var(--cc);animation:atmo-c 109s ease-in-out infinite alternate}
@keyframes atmo-a{0%{transform:translate3d(-4vw,-3vh,0) scale(1)}50%{transform:translate3d(9vw,7vh,0) scale(1.14)}100%{transform:translate3d(2vw,13vh,0) scale(.96)}}
@keyframes atmo-b{0%{transform:translate3d(5vw,4vh,0) scale(1.08)}50%{transform:translate3d(-8vw,10vh,0) scale(.94)}100%{transform:translate3d(-2vw,-5vh,0) scale(1.12)}}
@keyframes atmo-c{0%{transform:translate3d(-6vw,5vh,0) scale(.98)}50%{transform:translate3d(7vw,-8vh,0) scale(1.15)}100%{transform:translate3d(10vw,3vh,0) scale(1.02)}}
@media (prefers-reduced-motion:reduce){.atmosphere i{animation:none}}
@media (max-width:760px){.atmosphere{--k:12}html[data-theme="dark"] .atmosphere{--k:21}.atmosphere i{width:90vmax;height:90vmax;left:calc(var(--x) - 45vmax);top:calc(var(--y) - 45vmax)}}

/* Per-page light: the page's own color leads; violet and custard keep it warm. */
.main:has(.view.is-active[data-view="shows"]) .atmosphere{--ca:#8f7ad1;--cb:#d98ad0;--ax:24%;--ay:20%;--bx:78%;--by:34%;--cx:38%;--cy:90%}
.main:has(.view.is-active[data-view="applications"]) .atmosphere{--ca:#2FB8C4;--cb:#8f7ad1;--ax:78%;--ay:22%;--bx:20%;--by:38%;--cx:60%;--cy:88%}
.main:has(.view.is-active[data-view="tasks"]) .atmosphere{--ca:#87CEEB;--cb:#8f7ad1;--ax:82%;--ay:26%;--bx:14%;--by:44%;--cx:54%;--cy:84%}
.main:has(.view.is-active[data-view="contacts"]) .atmosphere{--ca:#EC6BA5;--cb:#8f7ad1;--ax:20%;--ay:34%;--bx:74%;--by:16%;--cx:48%;--cy:92%}
.main:has(.view.is-active[data-view="gallery"]) .atmosphere{--ca:#e0568a;--cb:#8f7ad1;--ax:70%;--ay:18%;--bx:18%;--by:30%;--cx:72%;--cy:82%}
.main:has(.view.is-active[data-view="b.a.d.™"]) .atmosphere{--ca:#4A8FE0;--cb:#8f7ad1;--ax:14%;--ay:18%;--bx:80%;--by:40%;--cx:44%;--cy:94%}
.main:has(.view.is-active[data-view="calendar"]) .atmosphere{--ca:#8B93E8;--cb:#EC6BA5;--ax:50%;--ay:12%;--bx:12%;--by:56%;--cx:86%;--cy:70%}
.main:has(.view.is-active[data-view="documents"]) .atmosphere{--ca:#3E8E8A;--cb:#8f7ad1;--ax:84%;--ay:36%;--bx:22%;--by:22%;--cx:58%;--cy:90%}
.main:has(.view.is-active[data-view="my-money"]) .atmosphere{--ca:#4FBF95;--cb:#8f7ad1;--ax:16%;--ay:44%;--bx:80%;--by:18%;--cx:50%;--cy:88%}
.main:has(.view.is-active[data-view="reports"]) .atmosphere{--ca:#A8A6B3;--cb:#8f7ad1;--ax:66%;--ay:14%;--bx:20%;--by:50%;--cx:76%;--cy:90%}
.main:has(.view.is-active[data-view="preferences"]) .atmosphere{--ca:#9C7FA7;--cb:#EC6BA5;--ax:30%;--ay:16%;--bx:86%;--by:46%;--cx:40%;--cy:92%}

/* Dashboard header: greeting + one purple prompt line, flush left. */
.dashboard-add-wrap{margin:4px 0 0 0}
.dashboard-add-trigger{color:#6b57b8;font:500 21px/1.2 "Google Sans Flex",Arial,sans-serif;padding:6px 6px 8px 0}
html[data-theme="dark"] .dashboard-add-trigger{color:#B9A3FF}
.dashboard-add-trigger > span{border-bottom:1.5px dotted rgba(143,122,209,.7);padding-bottom:3px}
.dashboard-add-trigger:hover > span,.dashboard-add-trigger[aria-expanded="true"] > span{border-bottom-style:solid;border-bottom-color:#8f7ad1}
.dashboard-add-trigger .qa-chev{width:18px;height:18px}

/* Dark mode: a lighter, quieter custard so the yellow glow never reads as olive or khaki. */
html[data-theme="dark"] .atmosphere{--cc:#f6dfae}
html[data-theme="dark"] .atmosphere .atmo-c{--k:11}

/* Light mode glow: the first pass was too faint to see on white. About three times
   the strength, still soft enough that it never becomes the feature of a page. */
html[data-theme="light"] .atmosphere{--k:44}
@media (max-width:760px){html[data-theme="light"] .atmosphere{--k:36}}

/* Dashboard prompt line: as big and bold as the greeting, violet to rose, no underline. */
.dashboard-add-trigger{font:700 36px/1.05 "Google Sans Flex",Arial,sans-serif;letter-spacing:-.5px;padding:4px 4px 6px 0;gap:10px;color:#8f7ad1}
@media (min-width:1100px){.dashboard-add-trigger{font-size:44px}}
.dashboard-add-trigger > span{
  border-bottom:0;padding-bottom:0;
  background:linear-gradient(90deg,#8f7ad1 0%,#c786d8 55%,#e8789f 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
html[data-theme="dark"] .dashboard-add-trigger > span{background-image:linear-gradient(90deg,#b9a3ff 0%,#dca0ea 55%,#ff9cc0 100%)}
.dashboard-add-trigger .qa-chev{width:26px;height:26px;color:#a68cf0;filter:drop-shadow(0 0 7px rgba(167,139,250,.55));margin-top:4px}
html[data-theme="dark"] .dashboard-add-trigger .qa-chev{color:#c4b2ff}
.dashboard-add-trigger:hover > span,.dashboard-add-trigger[aria-expanded="true"] > span{border-bottom:0;filter:brightness(1.08)}
.dashboard-add-trigger:hover .qa-chev{filter:drop-shadow(0 0 10px rgba(167,139,250,.8))}

/* Prompt line sizing: one line beside the greeting on desktop, wraps gently on phones. */
.dashboard-add-trigger{font-size:34px}
.dashboard-add-trigger > span{white-space:nowrap}
.dashboard-add-trigger .qa-chev{width:24px;height:24px}
@media (min-width:1100px){.dashboard-add-trigger{font-size:34px}}
@media (min-width:1500px){.dashboard-add-trigger{font-size:40px}}
@media (max-width:700px){
  .dashboard-add-trigger{font-size:26px}
  .dashboard-add-trigger > span{white-space:normal;text-wrap:balance}
  .dashboard-add-trigger .qa-chev{width:20px;height:20px;margin-top:2px}
}

/* Prompt line: left-aligned, chevron hugging the text, even when it wraps. */
.dashboard-add-trigger{text-align:left;justify-content:flex-start;width:auto;max-width:100%}
.dashboard-add-trigger > span{flex:0 1 auto;text-align:left}
.dashboard-add-trigger .qa-chev{flex:none}

/* Phones: one line that scales with the screen, so the chevron stays beside the text. */
@media (max-width:700px){
  .dashboard-add-trigger{font-size:clamp(19px,6.1vw,26px)}
  .dashboard-add-trigger > span{white-space:nowrap;text-wrap:nowrap}
}

/* Light mode, "softer, richer" (Kelley's pick, 2026-10-04): deeper jewel tones, but a long, smooth
   fade so the glow has depth without ever showing a flat, hot center. Dark mode is untouched. */
html[data-theme="light"] .atmosphere{--k:42;--ca:#8a6fd6;--cb:#d77fae;--cc:#f4dc98}
html[data-theme="light"] .atmosphere i{
  background:radial-gradient(circle,
    color-mix(in srgb,var(--c) calc(var(--k) * 1%),transparent) 0%,
    color-mix(in srgb,var(--c) calc(var(--k) * .58%),transparent) 25%,
    color-mix(in srgb,var(--c) calc(var(--k) * .22%),transparent) 49%,
    transparent 76%);
}
@media (max-width:760px){html[data-theme="light"] .atmosphere{--k:34}}

/* =========================================================
   Glow, calmer and livelier (Kelley, 2026-10-04).
   Light mode: one shared opal palette (dusty violet, mauve-rose, pearly custard);
   a page's own color only adds a faint tint, and the strength is about a third lower.
   Movement: the blobs travel two to three times as far, on roughly one-minute cycles,
   so the drift is visible on pages full of cards. Cards let a sliver of glow through.
   ========================================================= */
html[data-theme="light"] .atmosphere{--k:28}
@media (max-width:760px){html[data-theme="light"] .atmosphere{--k:22}}
html[data-theme="light"] .atmo-a{--c:color-mix(in srgb,var(--ca) 26%,#a592dc)}
html[data-theme="light"] .atmo-b{--c:color-mix(in srgb,var(--cb) 26%,#d8a3bf)}
html[data-theme="light"] .atmo-c{--c:#f0e3b8}

.atmo-a{animation:atmo-a2 58s ease-in-out infinite alternate}
.atmo-b{animation:atmo-b2 71s ease-in-out infinite alternate}
.atmo-c{animation:atmo-c2 64s ease-in-out infinite alternate}
@keyframes atmo-a2{0%{transform:translate3d(-10vw,-6vh,0) scale(1)}50%{transform:translate3d(22vw,14vh,0) scale(1.18)}100%{transform:translate3d(6vw,28vh,0) scale(.94)}}
@keyframes atmo-b2{0%{transform:translate3d(14vw,8vh,0) scale(1.1)}50%{transform:translate3d(-20vw,20vh,0) scale(.92)}100%{transform:translate3d(-6vw,-10vh,0) scale(1.16)}}
@keyframes atmo-c2{0%{transform:translate3d(-14vw,10vh,0) scale(.96)}50%{transform:translate3d(16vw,-18vh,0) scale(1.2)}100%{transform:translate3d(24vw,6vh,0) scale(1.04)}}
@media (prefers-reduced-motion:reduce){.atmo-a,.atmo-b,.atmo-c{animation:none}}

/* A sliver of glow through the cards: about 6% see-through, no blur. */
#dash2Root .hero{background:color-mix(in srgb,var(--d2-surface) 94%,transparent)}
#dash2Root .soon-section,#dash2Root .soon-card,#dash2Root .quiet-card{background:color-mix(in srgb,var(--d2-surface-quiet) 94%,transparent)}
.ms-card,.contact-card:not(.is-selected){background:color-mix(in srgb,var(--surface) 94%,transparent)}

/* Page margins: every page except the Dashboard sits inset by one extra gutter inside the
   content shell. The Dashboard now matches, so jumping between pages no longer shifts the layout. */
.dashboard-wrap{padding-left:36px;padding-right:36px}
@media(max-width:760px){.dashboard-wrap{padding-left:18px;padding-right:18px}}

/* Show Types on phones: a compact toggle that shows the picks; the tiles open beneath it. */
.st-toggle{display:none}
@media (max-width:700px){
  .st-picker{grid-template-columns:1fr}
  .st-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;grid-column:1/-1;width:100%;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:600 15px/1.2 "Google Sans Flex",Arial,sans-serif;text-align:left;cursor:pointer}
  .st-picker.st-open .st-toggle svg{transform:rotate(180deg)}
  .st-picker:not(.st-open) .st-tile{display:none}
}

/* Show section: Setting | Booth Size | Booth Number share one row. */
.myshows-row3{grid-column:1/-1}
.myshows-peek-grid--3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
@media (max-width:700px){.myshows-peek-grid--3{grid-template-columns:1fr}}

/* Edit Record lock: Show Type tiles are read-only until Edit Record is on. Only the picks show. */
.myshows-event-peek-body.is-view-mode .st-picker{pointer-events:none}
.myshows-event-peek-body.is-view-mode .st-picker .st-toggle{display:none}
.myshows-event-peek-body.is-view-mode .st-picker .st-tile[aria-pressed="false"]{display:none}
.myshows-event-peek-body.is-view-mode .st-picker .st-tile[aria-pressed="true"]{display:flex}
.myshows-event-peek-body.is-view-mode .st-picker:not(:has(.st-tile[aria-pressed="true"]))::after{content:"\2014";color:var(--muted)}

/* Review: short helper lines under the questions. */
.myshows-review-help{margin:6px 0 0;font-size:13px;line-height:1.4;color:var(--muted)}
.myshows-review-note{color:#6b57b8;font-weight:600}
html[data-theme="dark"] .myshows-review-note{color:#B9A3FF}

/* Dashboard: Tasks and Shows to review sit side by side, stacked on phones. */
#dash2Root .dash-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;align-items:start}
#dash2Root .dash-split-col{min-width:0}
@media (max-width:760px){#dash2Root .dash-split{grid-template-columns:1fr}}
#dash2Root .review-when{color:var(--d2-text-dim);font-weight:400}

/* Card headings inside the next-show card (Show forecast for..., Tasks, Logistics): lighter, so they don't shout. */
#dash2Root .section-label{font-weight:300}

/* Room between "What would you like to do?" and Up Next. */
#dash2Root .dash-section-head.dash-up-next{margin-top:40px}

/* Prompt line caret: sits inside a soft ring so it never gets lost. */
.dashboard-add-trigger .qa-chev{box-sizing:border-box;width:38px;height:38px;padding:9px;margin-top:0;border:2px solid #a68cf0;border-radius:50%;background:rgba(167,139,250,.14);filter:none}
html[data-theme="dark"] .dashboard-add-trigger .qa-chev{border-color:#c4b2ff;background:rgba(196,178,255,.16)}
.dashboard-add-trigger:hover .qa-chev,.dashboard-add-trigger[aria-expanded="true"] .qa-chev{background:rgba(167,139,250,.26);filter:drop-shadow(0 0 8px rgba(167,139,250,.55))}
@media (max-width:700px){.dashboard-add-trigger .qa-chev{width:28px;height:28px;padding:6px;border-width:1.5px}}

/* Tasks and Shows Awaiting Review use the same box as Soon: outer rounded section,
   heading inside, inner card for the list. Same spacing above, even heights, aligned edges. */
#dash2Root .dash-split{margin-top:36px;gap:20px;align-items:stretch}
#dash2Root .dash-split .soon-section{margin-top:0;height:100%;box-sizing:border-box}
#dash2Root .dash-split .soon-card{margin-top:12px}

/* Each task / review item is its own faint card, like the cards inside Soon. */
#dash2Root .dash-card-list{margin-top:12px}
#dash2Root .dash-card-list > div{display:grid;gap:12px}
#dash2Root .dash-card-list .followup-row,
#dash2Root .dash-card-list .dash2-empty{
  display:flex;align-items:center;gap:12px;box-sizing:border-box;
  border:1px solid var(--d2-line);border-radius:14px;padding:14px 18px;margin:0;
  background:color-mix(in srgb,var(--d2-surface-quiet) 94%,transparent);
}
#dash2Root .dash-card-list .followup-row.is-overdue{background:var(--d2-crit-bg);border-color:var(--d2-crit)}
#dash2Root .dash-card-list .dash2-empty{color:var(--d2-text-dim)}

/* Next-show name: still bold, but no longer shouting. */
#dash2Root .hero-name{font-size:24px;font-weight:700;letter-spacing:0}
@media(max-width:600px){#dash2Root .hero-name{font-size:22px}}

/* Show record photo: half the previous height (4:3 became 8:3). Drag-to-reposition still works on the image. */
.myshows-event-peek-photo{aspect-ratio:8/3}
.myshows-event-peek-photo,.myshows-event-peek-photo img{min-height:120px}

/* =========================================================
   Booth Builder: designs list, editor bar and the New Booth Design wizard.
   ========================================================= */
.booth-actions{margin-top:16px}
.booth-section-title{margin:28px 0 4px;font:700 24px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.booth-section-note{margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.45}
.booth-notice{margin:0 0 14px;padding:10px 14px;border-radius:12px;background:rgba(74,143,224,.14);color:var(--text);font-size:14px}
.booth-design-list{display:grid;gap:14px}
.booth-design-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,transparent)}
.booth-design-main{display:grid;gap:3px;min-width:0}
.booth-design-main strong{font:700 17px/1.25 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.booth-design-main span{font-size:14px;color:var(--muted)}
.booth-design-actions{display:flex;gap:8px;flex:none}
.booth-design-actions button{padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);font:600 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.booth-design-actions button:hover{background:var(--hover-row)}
.booth-design-actions button[data-act="open"]{background:#4A8FE0;border-color:#4A8FE0;color:#fff}
.booth-design-actions button[data-act="delete"]{color:var(--muted)}
.booth-empty-card{display:grid;gap:4px;padding:22px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:15px}
.booth-empty-card strong{color:var(--text);font-size:16px}
@media (max-width:700px){.booth-design-card{flex-direction:column;align-items:flex-start}.booth-design-actions{width:100%}.booth-design-actions button{flex:1}}
.booth-editor-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:8px 0 16px}
.booth-back-btn{background:none;border:0;color:var(--text);font:600 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;padding:8px 0}
.booth-design-name{flex:1 1 220px;max-width:340px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:700 20px/1.2 "Google Sans Flex",Arial,sans-serif}
.booth-editor-meta{flex:1 1 100%;color:var(--muted);font-size:14px}
#boothNewModal .add-contact-modal-surface{width:min(560px,100%)}
.booth-wizard{display:grid;gap:14px;padding:18px 22px 22px}
.booth-wizard-help{margin:0;color:var(--muted);font-size:15px;line-height:1.45}
.booth-pick-list{display:grid;gap:12px}
.booth-pick{display:grid;gap:3px;text-align:left;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--page);color:var(--text);cursor:pointer;font:inherit}
.booth-pick strong{font:700 16px/1.25 "Google Sans Flex",Arial,sans-serif}
.booth-pick span{font-size:13px;color:var(--muted)}
.booth-pick:hover:not([disabled]){border-color:#4A8FE0}
.booth-pick[disabled]{opacity:.55;cursor:not-allowed}
.booth-pick.is-selected{border-color:#4A8FE0;box-shadow:inset 0 0 0 1px #4A8FE0;background:rgba(74,143,224,.12)}
.booth-warn{margin:0;padding:10px 12px;border-radius:10px;background:rgba(197,155,60,.16);color:var(--text);font-size:14px;line-height:1.4}
.booth-wizard-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.booth-link-btn{background:none;border:0;color:var(--muted);font:600 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer;padding:8px 0}
.booth-wizard-go{background:#4A8FE0;border-color:#4A8FE0;color:#fff}
.booth-wizard-go[disabled]{opacity:.5;cursor:default}

/* The New Booth Design button hides while a design is open (glass-action would otherwise override [hidden]). */
#boothNewDesignBtn[hidden]{display:none}

/* Multi-day shows: how many days, then a Date / Start / End row for each. */
.myshows-days{display:grid;gap:14px}
.myshows-days-count{display:grid;gap:6px;max-width:260px}
.myshows-days-count label{font-size:13px;color:var(--muted)}
.myshows-days-list{display:grid;gap:10px}
.myshows-day-row{display:grid;grid-template-columns:64px repeat(3,minmax(0,1fr));gap:10px;align-items:end;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.myshows-day-label{align-self:center;font-weight:700}
.myshows-day-field{display:grid;gap:4px;font-size:12px;color:var(--muted)}
@media (max-width:700px){.myshows-day-row{grid-template-columns:repeat(3,minmax(0,1fr))}.myshows-day-label{grid-column:1/-1}}

/* Booth Builder header: title on the left, New Booth Design on the right, like Add Show. */
.booth-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.booth-header-row .myshows-title-row{flex:1 1 auto}
.booth-section-title{margin:24px 0 14px;font-size:22px}

/* Booth Builder editor: name field that does not shout; Close Design; two plain panels. */
.booth-design-name{font:500 22px/1.2 "Google Sans Flex",Arial,sans-serif;letter-spacing:0}
#boothCloseDesignBtn[hidden]{display:none}
.booth-close-bottom{margin-left:auto}
.booth-layout-save-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.booth-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:900px){.booth-panels{grid-template-columns:1fr}}
.booth-panel{display:grid;gap:12px;align-content:start;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,transparent)}
.booth-panel-title{margin:0;font:700 17px/1.25 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.booth-panel-hint{margin:-6px 0 0;font-size:14px;line-height:1.4;color:var(--muted)}
.booth-panel-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.booth-panel-row select{flex:1 1 180px;min-width:0}
.booth-color-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px}
.booth-color-field{display:grid;gap:5px;font-size:13px;color:var(--muted)}
.booth-color-new{display:flex;align-items:center;gap:8px}

/* Add a piece: the piece picker gets its own line so the size boxes are never squeezed or clipped. */
.booth-panel-row select{flex:1 1 100%}
.booth-panel-row .booth-layout-dim-group{flex:none}

/* Rename on a design card: the name becomes a field in place. */
.booth-design-rename{width:min(320px,100%);padding:6px 10px;border:1px solid #4A8FE0;border-radius:10px;background:var(--surface);color:var(--text);font:700 17px/1.25 "Google Sans Flex",Arial,sans-serif}

/* Piece and saved-color pickers match the size boxes beside them. */
.booth-panel-row select,.booth-color-field select{appearance:none;-webkit-appearance:none;height:26px;border:1px solid var(--line);border-radius:7px;background-color:var(--surface);color:var(--text);font:600 12px "Google Sans Flex",sans-serif;padding:0 26px 0 8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%238b8b96' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:12px}

.gallery-show-line1{display:block;line-height:1.3}

/* What's New page, version badge, unseen dot, and the heads-up banner. */
.whatsnew-list{display:grid;gap:22px;max-width:760px}
.whatsnew-release{border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 94%,transparent);padding:22px 24px}
.whatsnew-release-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px}
.whatsnew-release-head h2{margin:0;font:700 22px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.whatsnew-badge{font:700 11px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:#7C5CFF;color:#fff}
.whatsnew-date{margin-left:auto;font-size:15px;color:var(--muted)}
.whatsnew-title{margin:8px 0 4px;font-size:17px;color:var(--text)}
.whatsnew-section h3{margin:20px 0 8px;font:700 13px/1.2 "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.whatsnew-section ul{margin:0;padding-left:20px;display:grid;gap:8px}
.whatsnew-section li{font-size:16px;line-height:1.5;color:var(--text)}
.whatsnew-empty{color:var(--muted);font-size:16px}
.whatsnew-dot{display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:#B59BFF;vertical-align:middle}
.whatsnew-dot[hidden]{display:none}
.user-menu-version{padding:8px 12px 4px;font-size:12px;color:var(--muted)}
#userChevron{position:relative}
#userChevron.has-news::after{content:"";position:absolute;top:1px;right:1px;width:9px;height:9px;border-radius:50%;background:#B59BFF;box-shadow:0 0 0 2px var(--surface,#17181B)}
.system-notice{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 16px;border:1px solid color-mix(in srgb,#7C5CFF 40%,var(--line));border-radius:12px;background:color-mix(in srgb,#7C5CFF 12%,var(--surface));color:var(--text);font-size:16px;line-height:1.4}
.system-notice[hidden]{display:none}
.system-notice-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#B59BFF}
.system-notice.is-update{border-color:#7C5CFF;background:color-mix(in srgb,#7C5CFF 24%,var(--surface))}
.system-notice.is-update .system-notice-dot{animation:noticePulse 1.6s ease-in-out infinite}
@keyframes noticePulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.system-notice.is-update .system-notice-dot{animation:none}}
.system-notice-text{flex:1 1 auto;min-width:0}
.system-notice-close{flex:none;border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:0 4px}

.system-notice{padding-right:96px}
@media (max-width:700px){.system-notice{padding-right:64px}}

/* What's New: version and date, big and together. */
.whatsnew-release-head h2{font-size:30px}
.whatsnew-date{margin-left:0;font-size:20px;font-weight:600;color:var(--text)}
.whatsnew-title{font-size:19px}
.whatsnew-section li{font-size:18px}
.whatsnew-section h3{font-size:14px}
.page-subtitle #whatsNewCurrent{font-weight:700}

/* User menu: lighter weight, with an icon on each row like the sidebar. */
.user-popover .user-menu-link{display:flex;align-items:center;gap:11px;font-weight:300;font-size:15px}
.user-popover .user-menu-link svg.hero{width:20px;height:20px;flex:0 0 20px}
.user-popover .user-menu-link .whatsnew-dot{margin-left:auto}
.user-menu-version{font-weight:300}

/* User menu: room above the heading and the same divider as the sidebar. */
.user-popover b{margin-top:6px}
.user-popover .user-menu-divider{margin:10px 0 6px}

/* Dashboard Up Next: the photo sits inside the card in its own bordered frame, and the
   "Image Placeholder" label only shows when there really is no photo. */
#dash2Root .hero-photo-disclaimer[hidden]{display:none}
#dash2Root .hero-top{padding:20px 24px;gap:24px;align-items:center}
#dash2Root .hero-photo{border:1px solid var(--d2-line);border-radius:12px}
#dash2Root .hero-info{padding:4px 0}
@media (max-width:860px){#dash2Root .hero-top{padding:16px;gap:16px}}

/* ---- Calendar page ---- */
.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;margin-bottom:16px}
.cal-nav{display:flex;align-items:center;gap:8px}
.cal-nav-btn{min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:600 18px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.cal-nav-btn:hover{background:color-mix(in srgb,var(--text) 8%,var(--surface))}
.cal-today{font-size:15px}
.cal-month{margin:0 0 0 10px;font:300 26px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.cal-filters{display:flex;flex-wrap:wrap;gap:8px}
.cal-filter{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);font:600 13px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.cal-filter.is-off{opacity:.45}
.cal-dot{width:9px;height:9px;border-radius:50%;background:var(--cal-c)}
.cal-t-show{--cal-c:#8052d5}
.cal-t-deadline{--cal-c:#D6336C}
.cal-t-opens{--cal-c:#2BA7A0}
.cal-t-payment{--cal-c:#2F8F5B}
.cal-t-task{--cal-c:#4AA8D8}
.cal-t-reminder{--cal-c:#8EA0AF}
.cal-month-view{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:color-mix(in srgb,var(--surface) 94%,transparent)}
.cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
.cal-dow span{padding:10px 8px;text-align:center;font:700 12px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-cell{min-height:118px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;min-width:0}
.cal-cell:nth-child(7n){border-right:0}
.cal-cell.is-out{opacity:.45}
.cal-cell.is-today{background:color-mix(in srgb,#8052d5 10%,transparent)}
.cal-daynum{font:600 13px/1 "Google Sans Flex",Arial,sans-serif;color:var(--muted);padding:2px 4px}
.cal-cell.is-today .cal-daynum{color:#fff;background:#8052d5;border-radius:999px;align-self:flex-start;padding:4px 8px}
.cal-chip{display:flex;align-items:center;gap:5px;width:100%;min-width:0;padding:4px 8px;border:0;border-left:3px solid var(--cal-c);border-radius:6px;background:color-mix(in srgb,var(--cal-c) 18%,transparent);color:var(--text);font:600 12px/1.25 "Google Sans Flex",Arial,sans-serif;text-align:left;cursor:pointer}
.cal-chip:hover{background:color-mix(in srgb,var(--cal-c) 30%,transparent)}
.cal-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cal-chip-time{flex:none;font-weight:700;color:var(--muted)}
.cal-more{border:0;background:transparent;color:var(--muted);font:600 12px/1 "Google Sans Flex",Arial,sans-serif;text-align:left;padding:3px 6px;cursor:pointer}
.cal-agenda{display:none}
.cal-agenda-day{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,transparent);display:grid;gap:8px}
.cal-agenda-day.is-today{border-color:#8052d5}
.cal-agenda-day h3{margin:0 0 2px;font:300 18px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.cal-agenda .cal-chip,.cal-day-list .cal-chip{font-size:15px;padding:10px 12px}
.cal-agenda .cal-chip-text,.cal-day-list .cal-chip-text{white-space:normal}
.cal-empty{margin:18px 4px;color:var(--muted);font-size:16px;line-height:1.5}
.cal-day-list{display:grid;gap:8px;padding:18px 22px 22px}
.cal-modal-surface{width:min(520px,100%)}
.cal-sub-body{padding:18px 22px 22px;display:grid;gap:16px}
.cal-sub-lead{margin:0;font-size:16px;line-height:1.5;color:var(--text)}
.cal-sub-link{display:flex;gap:10px;align-items:center}
.cal-sub-link input{flex:1 1 auto;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:500 14px "Google Sans Flex",Arial,sans-serif}
.cal-sub-buttons{display:flex;flex-wrap:wrap;gap:10px}
.cal-sub-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:600 15px/1 "Google Sans Flex",Arial,sans-serif;text-decoration:none}
.cal-sub-btn:hover{background:color-mix(in srgb,var(--text) 8%,var(--surface))}
.cal-sub-help{font-size:15px;line-height:1.5;color:var(--muted)}
.cal-sub-help summary{cursor:pointer;color:var(--text)}
.cal-sub-fine{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
.cal-linklike{border:0;background:transparent;padding:0;color:#8052d5;text-decoration:underline;font:inherit;cursor:pointer}
@media (max-width:760px){
  .cal-month-view{display:none}
  .cal-agenda{display:block}
  .cal-month{font-size:22px;flex:1 1 100%;margin:8px 0 0}
  .cal-nav{flex-wrap:wrap}
  .cal-sub-link{flex-direction:column;align-items:stretch}
}

/* Calendar: Agenda (default) and Month views. */
.cal-view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cal-view-btn{height:40px;padding:0 16px;border:0;background:transparent;color:var(--text);font:600 15px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.cal-view-btn.is-on{background:#8052d5;color:#fff}
.cal-mode-agenda .cal-nav,.cal-mode-agenda .cal-month-view,.cal-mode-agenda .cal-agenda{display:none}
.cal-mode-month .cal-upcoming{display:none}
.cal-up-bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 8px}
.cal-up-count{font:700 13px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cal-up-month{margin:26px 2px 10px;font:300 24px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.cal-up-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.cal-up-row.is-today{background:color-mix(in srgb,#8052d5 8%,transparent);border-radius:12px;padding:12px 8px;border-top-color:transparent}
.cal-up-date{display:grid;justify-items:center;align-content:start;gap:2px;padding-top:2px}
.cal-up-date b{font:700 28px/1 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.cal-up-date small{font:700 12px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cal-up-date em{font:600 11px/1 "Google Sans Flex",Arial,sans-serif;font-style:normal;color:#8052d5;margin-top:3px}
.cal-up-items{display:grid;gap:8px;min-width:0}
.cal-up-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;border:0;border-left:4px solid var(--cal-c);border-radius:8px;background:color-mix(in srgb,var(--cal-c) 14%,transparent);color:var(--text);text-align:left;cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif}
.cal-up-item:hover{background:color-mix(in srgb,var(--cal-c) 26%,transparent)}
.cal-up-dot{display:none}
.cal-up-main{display:grid;gap:3px;min-width:0}
.cal-up-title{font-weight:600;font-size:16px;line-height:1.3}
.cal-up-sub{font-size:14px;line-height:1.4;color:var(--muted)}
@media (max-width:760px){
  .cal-mode-month .cal-month-view{display:none}
  .cal-mode-month .cal-agenda{display:block}
  .cal-up-row{grid-template-columns:56px minmax(0,1fr);gap:10px}
  .cal-up-date b{font-size:24px}
  .cal-view-toggle{width:100%}
  .cal-view-btn{flex:1}
}

/* Reminders connect card (Preferences, only for artists with it switched on). */
.rem-card{display:grid;gap:12px;margin-top:12px;max-width:560px}
.rem-lead{margin:0;font-size:16px;line-height:1.55;color:var(--text)}
.rem-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:10px;align-items:center}
.rem-label{font:600 14px/1 "Google Sans Flex",Arial,sans-serif;color:var(--muted)}
.rem-input{min-width:0;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:500 15px "Google Sans Flex",Arial,sans-serif}
.rem-copy{height:42px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:600 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.rem-fine{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
@media (max-width:520px){.rem-row{grid-template-columns:1fr auto}.rem-label{grid-column:1/-1}}

/* People details: Edit Record lock, more room between fields, and Notes padding. */
#sidePeek .peek-head-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
#sidePeek .peek-edit-grid{gap:26px 18px}
#sidePeek .peek-edit-grid .field-label{display:grid;gap:9px;align-content:start}
#sidePeek .peek-section-framed{padding:24px 22px;margin-bottom:24px}
#sidePeek .peek-section-framed .peek-label{margin-bottom:16px}
#sidePeek .people-notes textarea.form-input{padding:14px 16px;min-height:104px;line-height:1.5}
#sidePeek.is-view-mode .peek-edit-grid .form-input,#sidePeek.is-view-mode .people-notes textarea.form-input{pointer-events:none;background:transparent;border-color:transparent;padding-left:0;padding-right:0;resize:none}
#sidePeek.is-view-mode select.form-input{appearance:none;-webkit-appearance:none;background-image:none}
#sidePeek.is-view-mode .form-input::placeholder{color:transparent}
#sidePeek.is-view-mode .company-display-check{display:none}

/* People record header, matching the show record: small label, large name, one meta line, links, Edit Record. */
#sidePeek .peek-head--record{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 26px 20px;border-bottom:1px solid var(--line)}
#sidePeek .peek-head-main{min-width:0;display:grid;gap:0}
#sidePeek .peek-record-kicker{font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9C7FA7;margin-bottom:6px}
#sidePeek .peek-head--record .peek-name{margin:0;font-size:28px;line-height:1.1;font-weight:700;overflow-wrap:anywhere}
#sidePeek .peek-record-meta{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px;font-size:16px;color:var(--muted)}
#sidePeek .peek-record-meta:empty{display:none}
#sidePeek .peek-record-meta:has(#peekCompany:empty) .peek-record-dot{display:none}
#sidePeek .peek-head-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:10px}
#sidePeek .peek-delete-btn{appearance:none;display:none;padding:6px 14px;border-radius:999px;border:1px solid #C27B84;background:transparent;color:#D8949B;font:650 14px/1.2 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
#sidePeek .peek-delete-btn:hover{background:color-mix(in srgb,#C27B84 16%,transparent)}
#sidePeek.is-edit-mode .peek-delete-btn{display:inline-block}

#sidePeek .peek-head--record{flex:0 0 auto;height:auto;overflow:visible}
#sidePeek .peek-head-links .quiet-link{appearance:none;background:none;border:0;padding:0;font:650 14px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--app-link,#9C7FA7);cursor:pointer}
#sidePeek .peek-head-links .quiet-link:hover{text-decoration:underline}

/* Contact lines on people cards: label column on the left, value beside it. A long email wraps inside its own column instead of dropping below its label. */
.contact-method-row{flex-wrap:nowrap;align-items:baseline;gap:14px}
.contact-method-row .contact-method-label{flex:0 0 78px}
.contact-method-row a.quiet-link:first-of-type{flex:1 1 0;min-width:0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.contact-method-row a.quiet-link:not(:first-of-type){flex:0 0 auto}

/* People record is as wide as the show record, so long emails and phone notes fit. */
#sidePeek{width:min(720px,100vw)}
@media (max-width:600px){#sidePeek{width:100vw}}

/* People record header: just the category. The related shows are listed lower in the record. */
#sidePeek #peekCompany,#sidePeek .peek-record-dot{display:none}

/* People record: Share sits beside Edit Record as a button (always available); the links row only holds Delete, shown while editing. */
#sidePeek .peek-head-actions{flex-wrap:wrap;justify-content:flex-end}
#sidePeek .peek-head-links{display:none}
#sidePeek.is-edit-mode .peek-head-links{display:flex}

/* Checkmark dropdown (Category on people): click to open, tick as many as you like. */
.multi-pick{position:relative}
.multi-pick-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;cursor:pointer;min-height:44px}
.multi-pick-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-pick-chevron{width:16px;height:16px;flex:0 0 16px;color:var(--muted)}
.multi-pick-menu{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);display:grid;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.multi-pick-menu[hidden]{display:none}
.multi-pick-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;cursor:pointer;font:500 16px/1.2 "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.multi-pick-row:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}
.multi-pick-row input{width:20px;height:20px;accent-color:#8052d5;margin:0;cursor:pointer}
#sidePeek.is-view-mode .multi-pick-btn{pointer-events:none;background:transparent;border-color:transparent;padding-left:0;padding-right:0}
#sidePeek.is-view-mode .multi-pick-chevron{display:none}

/* People at the same company. */
#peekColleagues{display:grid;gap:8px}
.colleague-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:600 16px/1.3 "Google Sans Flex",Arial,sans-serif}
.colleague-row:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}
.colleague-row span{font-weight:500;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}

/* People record header on narrow screens: the buttons drop below the name instead of squeezing it. */
#sidePeek .peek-head--record{flex-wrap:wrap}
#sidePeek .peek-head-main{flex:1 1 240px}
#sidePeek .peek-head-actions{flex:0 0 auto}

/* Each category is its own colored pill. */
.cat-pill{display:inline-block;padding:4px 11px;border-radius:999px;font:700 13px/1.2 "Google Sans Flex",Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb,var(--cat) 18%,transparent);color:var(--cat)}
.cat-organizer{--cat:#EC6BA5}
.cat-vendor{--cat:#9B7BFF}
.cat-supplier{--cat:#2BA7A0}
.cat-customer{--cat:#4CAF7A}
.cat-venue-staff{--cat:#4AA8D8}
.cat-other{--cat:#8EA0AF}
.contacts-screen .contact-type,html[data-theme="dark"] .contacts-screen .contact-type,.contact-card .contact-type{display:flex!important;flex-wrap:wrap;gap:6px;background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:inherit!important}
#sidePeek #peekType{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.multi-pick-label{display:flex;flex-wrap:wrap;gap:6px;white-space:normal}
.multi-pick-row .cat-pill{pointer-events:none}

/* People cards: the contact column starts further left and gets more room, so email addresses fit on one line. */
@media (min-width:901px){
  .contacts-screen .contact-card{grid-template-columns:40px minmax(250px,1.1fr) minmax(390px,1fr) auto}
  .contacts-screen .contact-channel{width:100%;max-width:none;justify-self:stretch}
}

/* Company record: the people at one business. */
#companyPeek{width:min(720px,100vw)}
@media (max-width:600px){#companyPeek{width:100vw}}
#companyPeek .peek-head--record{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 26px 20px;border-bottom:1px solid var(--line);flex:0 0 auto;flex-wrap:wrap}
#companyPeek .peek-head-main{flex:1 1 240px;min-width:0;display:grid}
#companyPeek .peek-record-kicker{font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9C7FA7;margin-bottom:6px}
#companyPeek .peek-head--record .peek-name{margin:0;font-size:28px;line-height:1.1;font-weight:700;overflow-wrap:anywhere}
#companyPeek .peek-record-meta{margin:8px 0 0;font-size:16px;color:var(--muted)}
#companyPeek .peek-head-actions{display:flex;align-items:center;gap:10px}
#companyPeek .peek-section-framed{padding:24px 22px;margin-bottom:24px}
#companyPeek .peek-label{margin-bottom:16px}
#companyPeekPeople{display:grid;gap:10px}
.company-person{display:grid;gap:6px;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif}
.company-person:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}
.company-person .cp-main{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.company-person b{font-size:18px;font-weight:700}
.company-person .cp-pills{display:flex;flex-wrap:wrap;gap:6px}
.company-person .cp-sub{font-size:15px;color:var(--muted);overflow-wrap:anywhere}

.cat-group-leader{--cat:#6C8CFF}

#companyPeek .peek-hint{margin:0 0 16px;font-size:var(--peek-value-size);line-height:1.4;color:var(--muted)}

/* =====================================================================
   SIDE PANEL LOOK: one shared style for every record panel (show record, application
   details, People, company, Add Person, photo panels) and every panel built later.
   Section titles: sage, bold, capitals.  Field labels: bold, full-strength text.
   Values: regular, full-strength text.  Generous space between fields.
   Change the look here, once, through these tokens. New panels should use the same
   classes (.side-peek / .myshows-event-peek, .peek-label, .field-label, .form-input)
   so they pick it up with no extra styling.
   ===================================================================== */
:root{
  --peek-section-color:#5E8470;
  --peek-label-size:16px;
  --peek-label-weight:700;
  --peek-label-color:var(--text);
  --peek-value-size:16px;
  --peek-value-weight:400;
  --peek-value-color:var(--text);
  --peek-field-gap:20px;
  --peek-label-gap:8px;
  --peek-section-pad:22px 20px;
}
html[data-theme="dark"]{--peek-section-color:#8DAE9A}

/* panels that use the People-style markup */
.side-peek .peek-label,
.side-peek .peek-section>.peek-label{color:var(--peek-section-color);font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.side-peek .peek-section-framed{padding:var(--peek-section-pad)}
.side-peek .field-label{font-size:var(--peek-label-size);font-weight:var(--peek-label-weight);color:var(--peek-label-color);gap:var(--peek-label-gap)}
.side-peek .field-label .form-input,.side-peek .form-input,.side-peek .multi-pick-btn{font-size:var(--peek-value-size);font-weight:var(--peek-value-weight)}
.side-peek .peek-edit-grid{gap:var(--peek-field-gap) 18px}
.side-peek .related-row b,.side-peek .colleague-row,.side-peek .company-person b{font-size:var(--peek-value-size)}

/* panels that use the show-record markup */
.myshows-event-peek .myshows-peek-section>h3,.myshows-event-peek .myshows-peek-tasks>h3,.myshows-event-peek .myshows-operational-panel .myshows-detail-group>h3,.myshows-event-peek .myshows-operation-title{color:var(--peek-section-color)!important}
.myshows-event-peek .myshows-peek-section{padding:calc(var(--peek-field-gap) * .8) 0 var(--peek-field-gap)}
.myshows-event-peek .myshows-peek-grid{gap:var(--peek-field-gap) 20px}
.myshows-event-peek .myshows-peek-grid>div{gap:var(--peek-label-gap);padding-bottom:14px}
.myshows-event-peek .myshows-peek-grid dt{font-size:var(--peek-label-size);font-weight:var(--peek-label-weight);color:var(--peek-label-color)}
.myshows-event-peek .myshows-peek-grid dd{font-size:var(--peek-value-size);font-weight:var(--peek-value-weight);color:var(--peek-value-color)}

/* People and company panels read the same tokens as every other panel (their older one-off values are replaced). */
#sidePeek .peek-edit-grid,#companyPeek .peek-edit-grid{gap:var(--peek-field-gap) 18px}
#sidePeek .peek-edit-grid .field-label{gap:var(--peek-label-gap)}
#sidePeek .peek-section-framed,#companyPeek .peek-section-framed{padding:var(--peek-section-pad);margin-bottom:var(--peek-field-gap)}
.side-peek .peek-label,.side-peek .peek-section>.peek-label,#sidePeek .peek-section-framed .peek-label,#companyPeek .peek-section-framed .peek-label{color:var(--peek-section-color)!important}

/* The Add Show and Add Application drawers read the same side-panel tokens. */
.myshows-drawer .myshows-form-grid{gap:var(--peek-field-gap) 18px}
.myshows-drawer .myshows-field{gap:var(--peek-label-gap)}
.myshows-drawer .myshows-field label{font-size:var(--peek-label-size);font-weight:var(--peek-label-weight);color:var(--peek-label-color)}
.myshows-drawer .myshows-field input,.myshows-drawer .myshows-field select,.myshows-drawer .myshows-field textarea{font-size:var(--peek-value-size);font-weight:var(--peek-value-weight)}
.myshows-drawer .myshows-form-subheading{margin:0;color:var(--peek-section-color)!important;font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.myshows-drawer .myshows-form-subheading .optional{letter-spacing:normal;text-transform:none;font-weight:400;color:var(--muted)}

/* Review hints: italic sage so the directions stand out from the questions */
.myshows-review-help{color:var(--peek-section-color);font-style:italic}
.myshows-review-body{gap:36px!important}
/* Logging an interaction is not editing the show, so the Log Interaction form and the entries' Edit forms stay usable while the show record is locked. */
.myshows-event-peek-body.is-view-mode .myshows-organizer-activity .myshows-inline-edit{pointer-events:auto;background:var(--surface);border-color:var(--line);padding:5px 7px;resize:vertical}
.myshows-event-peek-body.is-view-mode .myshows-organizer-activity select.myshows-inline-edit{appearance:auto;-webkit-appearance:menulist}
/* The log box and the logged-entry edit form are always usable, so keep the dropdown arrow even while the person record is locked. */
#sidePeek.is-view-mode .myshows-organizer-log-form select.form-input,#sidePeek.is-view-mode .log-item select.form-input{appearance:auto;-webkit-appearance:menulist}
/* Add Person header: the directions line is a quiet hint, and the label gets room above the name. */
#createContactPeek .peek-kicker{margin:0 0 10px}
#createContactPeek .peek-company{font-size:13px;font-weight:300;line-height:1.4;margin-top:8px}
.cal-sub-block{display:grid;gap:12px;padding:16px 16px 14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 70%,transparent)}
.cal-sub-title{margin:0;font-size:17px;font-weight:700;color:var(--text)}
.cal-sub-title small{font-size:14px;font-weight:300;color:var(--muted);margin-left:6px}
/* "A fresh version is ready" notice */
.gyst-update-toast{position:fixed;left:20px;bottom:20px;z-index:9999;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:min(92vw,460px);padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 12px 34px rgba(0,0,0,.28);font:500 15px/1.35 "Google Sans Flex",Arial,sans-serif}
.gyst-update-btn{min-height:36px;padding:0 16px;border:0;border-radius:999px;background:#7659A8;color:#fff;font:700 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.gyst-update-later{min-height:36px;padding:0 8px;border:0;background:transparent;color:var(--muted);font:500 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer}
@media (max-width:620px){.gyst-update-toast{left:12px;right:12px;bottom:12px;max-width:none}}

/* Show Reel: the album list in the Calendar list's look, the Add Photos overlay, and the album view. */
.reel-usage{margin:-4px 2px 6px;font:600 13px/1.4 "Google Sans Flex",Arial,sans-serif;color:var(--muted)}
.reel-usage[hidden]{display:none}
.reel-card{--cal-c:#8052d5;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-left:4px solid var(--cal-c);border-radius:8px;background:color-mix(in srgb,var(--cal-c) 14%,transparent);color:var(--text);text-align:left;cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif}
.reel-card:hover{background:color-mix(in srgb,var(--cal-c) 26%,transparent)}
.reel-card:focus-visible{outline:2px solid var(--cal-c);outline-offset:2px}
.reel-card-products,.reel-folders .reel-card{--cal-c:#8EA0AF}
.reel-cover{width:64px;height:64px;border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--cal-c) 18%,var(--surface));flex:0 0 auto;display:block}
.reel-cover img{width:100%;height:100%;object-fit:cover;display:block}
.reel-share{height:36px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:600 14px/1 "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.reel-share:hover{border-color:#8EA0AF}
.reel-chevron{font-size:28px;line-height:1;color:var(--muted);transition:transform .15s}
.reel-chevron.is-open{transform:rotate(90deg)}
.reel-products-icon{align-content:start;justify-items:center;color:#8EA0AF;padding-top:6px}
.reel-products-icon svg{width:34px;height:34px}
.reel-folders{display:grid;gap:8px;margin-top:8px;padding-left:14px}
.reel-newfolder-row{padding:12px;border:1.5px dashed color-mix(in srgb,#8EA0AF 70%,transparent);border-radius:8px;background:transparent;color:var(--muted);font:600 15px "Google Sans Flex",Arial,sans-serif;cursor:pointer;text-align:left}
.reel-newfolder-row:hover{color:var(--text);border-color:#8EA0AF}
#galleryAlbumsList .cal-up-row.reel-products{border-top:0}
@media (max-width:520px){
  .reel-card{grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .reel-card .reel-cover{grid-row:1/3;grid-column:2;width:52px;height:52px}
  .reel-card .reel-share{grid-column:1;justify-self:start}
  .reel-card .reel-chevron{display:none}
}

.reel-step-help{margin:0 0 2px;color:var(--muted);font-size:15px;line-height:1.5}
.reel-group-label{margin:20px 0 8px;font:700 12px/1 "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.reel-dest-list{display:grid;gap:8px}
.reel-dest{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer;font:inherit}
.reel-dest:hover{border-color:#8EA0AF}
.reel-dest.is-full{opacity:.55;cursor:not-allowed}
.reel-dest small{color:var(--muted);font-size:13px;white-space:nowrap}
.reel-dest-main b{font-weight:700}
.reel-none{color:var(--muted);font-size:15px;line-height:1.5}
.reel-back{display:block;background:none;border:0;padding:0;margin:0 0 10px;color:var(--text);font:600 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}
.reel-count{margin:0 0 12px;color:var(--muted);font-size:15px}
.reel-drop{display:grid;place-content:center;justify-items:center;gap:10px;min-height:210px;padding:24px;border:1.5px dashed color-mix(in srgb,#8EA0AF 75%,transparent);border-radius:10px;background:color-mix(in srgb,#8EA0AF 22%,var(--surface));color:var(--text);text-align:center;cursor:pointer}
.reel-drop svg{width:58px;height:58px;color:#8EA0AF}
.reel-drop p{margin:0;font-size:17px}
.reel-drop small{color:var(--muted);font-size:14px}
.reel-drop.is-over{border-style:solid;border-color:#D6336C;background:color-mix(in srgb,#D6336C 10%,var(--surface))}
.reel-drop.is-full{opacity:.55;cursor:not-allowed}
.reel-camera{width:100%;justify-content:center;margin-top:10px}
.reel-progress{display:flex;align-items:center;gap:10px;margin-top:12px;color:var(--muted);font-size:15px}
.reel-progress[hidden],.reel-error[hidden],.reel-cover-hint[hidden]{display:none}
.reel-error{margin:10px 0 0;color:#C0656B;font-size:14px;line-height:1.5}
.reel-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-top:14px}
.reel-thumb{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;background:var(--surface);cursor:pointer}
.reel-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.reel-thumb.is-cover{border-color:#D6336C}
.reel-thumb span{position:absolute;left:6px;bottom:6px;padding:3px 8px;border-radius:999px;background:#D6336C;color:#fff;font:700 11px "Google Sans Flex",Arial,sans-serif}
.reel-cover-hint{margin:10px 0 0;color:var(--muted);font-size:14px}
.reel-cover-hint.is-needed{color:#D6336C;font-weight:600}
.reel-done{margin-top:18px}
.reel-done:disabled{opacity:.45;cursor:not-allowed}
.reel-newfolder{display:flex;gap:8px;align-items:center}
.reel-newfolder input{flex:1 1 auto;min-width:0}

.reel-detail-meta{margin:0 0 12px;color:var(--muted);font-size:15px}
.reel-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.reel-tile .gallery-move-photo-btn{right:46px}
.reel-tile-delete{position:absolute;right:8px;bottom:8px;width:30px;height:30px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.55);color:#F2F3F5;font-size:18px;line-height:1;cursor:pointer}

.reel-peek-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.reel-peek-thumb{flex:0 0 auto;width:84px;height:84px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);cursor:pointer}
.reel-peek-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.reel-peek-thumb:hover{border-color:#8EA0AF}
.reel-peek-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.reel-peek-btn{height:38px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:600 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer}
.reel-peek-btn:hover:not(:disabled){border-color:#8EA0AF}
.reel-peek-btn:disabled{opacity:.5;cursor:not-allowed}
.reel-peek-empty{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:15px}
#myshowsPeekShowReelList{display:block}
.reel-detail-actions [hidden],#albumDetailDeleteButton[hidden]{display:none!important}
.reel-tile .gallery-move-photo-picker{max-height:230px;bottom:44px}
.reel-picker-label{padding:6px 10px 2px;font:700 11px "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.reel-picker-new{font-weight:700}
.reel-add-name{height:44px;padding:0 18px;justify-content:center;flex:0 0 auto}
.reel-create-all{width:100%;justify-content:center;margin-top:14px}
.reel-create-all:disabled{opacity:.45;cursor:not-allowed}
.reel-create-all span{display:block;width:100%;text-align:center}
.reel-staged{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.reel-staged:empty{display:none}
.reel-staged-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font:600 14px "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.reel-staged-chip button{width:22px;height:22px;border:0;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--text);font-size:15px;line-height:1;cursor:pointer}

/* Share menu and Select mode */
.reel-share-options{display:grid;gap:10px;margin-top:6px}
.reel-share-option{display:grid;gap:4px;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif}
.reel-share-option b{font-size:16px}
.reel-share-option span{font-size:14px;line-height:1.45;color:var(--muted)}
.reel-share-option:hover:not(:disabled){border-color:#8EA0AF}
.reel-share-option:disabled{opacity:.55;cursor:not-allowed}
.reel-share-link{display:grid;gap:6px;margin-top:16px}
.reel-share-link[hidden],.reel-selectbar[hidden]{display:none}
.reel-share-link label{font:700 12px "Google Sans Flex",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.reel-selectbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:600 15px "Google Sans Flex",Arial,sans-serif;color:var(--text)}
.reel-selectbar-actions{display:flex;align-items:center;gap:10px}
.reel-selectbar-cancel{background:none;border:0;color:var(--muted);font:600 14px "Google Sans Flex",Arial,sans-serif;cursor:pointer;padding:8px}
.reel-selectbar .glass-action:disabled{opacity:.45;cursor:not-allowed}
.reel-tile.is-select-mode{cursor:pointer}
.reel-tile.is-select-mode .gallery-set-highlight-btn,.reel-tile.is-select-mode .gallery-highlight-badge,.reel-tile.is-select-mode .gallery-move-photo-btn,.reel-tile.is-select-mode .reel-tile-delete{display:none}

/* Show Reel photo viewer (full screen, above the album panel) */
.reel-viewer{position:fixed;inset:0;z-index:900;background:rgba(10,10,12,.96);display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.reel-viewer[hidden]{display:none}
.reel-viewer img{max-width:100vw;max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);object-fit:contain;display:block;user-select:none;-webkit-user-drag:none}
.reel-viewer button{border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#F4F2EE;cursor:pointer;font-family:"Google Sans Flex",Arial,sans-serif}
.reel-viewer button:hover{background:rgba(255,255,255,.26)}
.reel-viewer-close{position:absolute;top:16px;right:16px;width:46px;height:46px;font-size:26px;line-height:1}
.reel-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;font-size:30px;line-height:1}
.reel-viewer-prev{left:14px}
.reel-viewer-next{right:14px}
.reel-viewer.is-single .reel-viewer-nav{display:none}
.reel-viewer-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px 18px;color:rgba(244,242,238,.7);font:600 14px "Google Sans Flex",Arial,sans-serif}
.reel-viewer-actions{display:flex;gap:10px}
.reel-viewer-actions button{height:40px;padding:0 18px;font-size:15px;font-weight:600}
.reel-viewer-actions .is-danger{color:#F0A0A6}
@media (max-width:600px){.reel-viewer-nav{display:none}}

.reel-tile-view{position:absolute;top:8px;left:8px;width:30px;height:30px;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.55);color:#F2F3F5;display:none;place-items:center;cursor:pointer}
.reel-tile-view svg{width:17px;height:17px}
.reel-tile.is-select-mode .reel-tile-view{display:grid;top:auto;bottom:8px;left:auto;right:8px}
.reel-tile.is-select-mode .gallery-photo-check{z-index:2}
