:root {
  --accent: #2463b0;
  --dark: #0d2554;
  --soft: #4a80c4;
  --tint: rgba(36, 99, 176, 0.1);
  --blue-fade: #ffeebd;
  --text: rgba(0, 0, 0, 0.95);
  --pale: rgba(51, 51, 51, 0.7);
  --xpale: rgba(51, 51, 51, 0.5);
  --line: rgba(51, 51, 51, 0.08);
  --fill: rgba(51, 51, 51, 0.05);
  --fill2: rgba(51, 51, 51, 0.1);
  --bg: #ffffff;
  --gold: #e3b341;
  --sw-orange: #ec4616;
  --sw-orange-dark: #c9380f;
  --sw-orange-soft: #fdece5;
  --sw-teal: #145058;
  --side: 264px;
  --gutter: 32px;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font: 400 16px/1.4 Inter, -apple-system, system-ui, "Segoe UI", Roboto, sans-serif; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, p { margin: 0; }
.i { width: 20px; height: 20px; flex: none; }
.i.sm { width: 16px; height: 16px; }
.pale { color: var(--pale); font-size: 14px; }
.small { font-size: 12px; }
.wrap { padding: 0 var(--gutter); }

.side { position: fixed; inset: 0 auto 0 0; width: var(--side); z-index: 40; display: flex; flex-direction: column; background: linear-gradient(180deg, #155d62 0%, #114c50 55%, #0c3b3e 100%); color: #fff; overflow-y: auto; }
.side-brand { display: grid; justify-items: center; gap: 2px; padding: 28px 20px 22px; text-align: center; }
.side-brand img { width: 104px; height: auto; margin-bottom: 8px; filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.3)); }
.side-brand b { font-size: 34px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; }
.side-brand small { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); }
.side-nav { display: grid; gap: 2px; padding: 8px 14px 16px; }
.btn.side-action { margin: 0 14px 6px; height: 40px; background: #fff; color: var(--accent); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18); }
.btn.side-action:hover { filter: brightness(0.96); }
.side-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; font-size: 15px; font-weight: 500; color: rgba(255, 255, 255, 0.82); }
.side-item .i { color: var(--st-dot, rgba(255, 255, 255, 0.6)); }
.side-item.sub { padding-left: 28px; }
.side-item.sub2 { padding-left: 44px; }
.side-item.side-empty { color: rgba(255, 255, 255, 0.4); }
.side-item.side-empty .i { color: rgba(255, 255, 255, 0.3); }
.side-item.side-empty .side-count { background: rgba(255, 255, 255, 0.06); color: rgba(255, 255, 255, 0.4); }
.side-item:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }
.side-item.on { background: rgba(255, 255, 255, 0.13); color: #fff; font-weight: 600; }
.side-item.on .i { color: var(--gold); }
.side-count { margin-left: auto; font-style: normal; font-size: 12px; font-weight: 600; min-width: 24px; padding: 1px 7px; border-radius: 999px; text-align: center; background: rgba(255, 255, 255, 0.14); }
.side-item.on .side-count { background: var(--gold); color: var(--dark); }
.side-head { padding: 18px 12px 6px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); }
.side-foot { margin-top: auto; display: flex; gap: 16px; padding: 16px 26px 22px; font-size: 12px; color: rgba(255, 255, 255, 0.55); }
.side-foot a:hover { color: #fff; }
.side-backdrop { display: none; }
.shell-main { margin-left: var(--side); min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 30; height: 64px; display: flex; align-items: center; gap: 16px; padding: 0 var(--gutter); background: #e1eff0; border-bottom: 1px solid rgba(0, 0, 0, 0.12); }
.global-search { flex: 1; min-width: 0; max-width: 720px; display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 12px 0 16px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); color: var(--pale); margin: 0; }
.global-search { position: relative; }
.search-pop { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 45; list-style: none; margin: 0; padding: 6px; max-height: min(420px, 70vh); overflow: auto; background: #fff; border-radius: 12px; box-shadow: 0 0 0 1px var(--line), 0 12px 32px rgba(13, 37, 84, 0.16); }
.search-hit { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 8px; cursor: pointer; }
.search-hit[aria-selected="true"], .search-hit:hover { background: var(--fill); }
.av.search-av { width: 32px; height: 32px; border-radius: 50%; box-shadow: 0 0 0 2px var(--tone); }
.av.code-av { display: grid; place-items: center; background: var(--tint); color: var(--accent); --tone: var(--tint); }
.av.code-av .i { width: 18px; height: 18px; }
.search-text { min-width: 0; display: grid; }
.search-text b { font-size: 14px; font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-text small { font-size: 12px; color: var(--pale); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-none { padding: 10px 8px; font-size: 14px; color: var(--pale); }
.global-search input { flex: 1; min-width: 0; border: 0; outline: none; background: none; font-size: 15px; color: var(--text); }
.global-search input::placeholder { color: var(--pale); }
.global-search input::-webkit-search-cancel-button { display: none; }
.global-search kbd { font: 500 12px Inter, sans-serif; padding: 2px 7px; border-radius: 6px; box-shadow: inset 0 0 0 1px var(--fill2); color: var(--pale); }
.top-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.topbar.viewing-as { background: #ff3d97; border-bottom-color: #e02a80; }
.view-as { display: flex; align-items: center; gap: 8px; height: 40px; margin: 0; padding: 0 6px 0 14px; border-radius: 999px; background: #fff; color: #c2185b; font-size: 15px; white-space: nowrap; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); }
.view-as > .i { width: 20px; height: 20px; flex: none; }
.view-as b { font-weight: 700; }
.view-as > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.view-as-x { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #c2185b; }
.view-as-x:hover { background: #ffe3ef; }
.app-switch { display: flex; align-items: center; gap: 4px; height: 40px; padding: 0 6px 0 4px; border-radius: 10px; color: var(--pale); }
.app-switch img { width: 32px; height: 32px; object-fit: contain; }
.app-switch:hover, .menu-wrap.open > .app-switch { background: rgba(255, 255, 255, 0.1); }
.acct-switch { display: flex; align-items: center; gap: 6px; height: 36px; max-width: 220px; padding: 0 8px 0 10px; border-radius: 999px; background: #fff; color: var(--text); font-size: 14px; font-weight: 600; box-shadow: inset 0 0 0 1px var(--fill2); }
.acct-switch > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acct-switch > .i:first-child { width: 18px; height: 18px; flex: none; color: var(--accent); }
.acct-switch:hover, .menu-wrap.open > .acct-switch { background: var(--fill); }
.acct-switch:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.menu .acct-row { min-height: 52px; }
.menu .acct-row.on { background: var(--tint); }
.acct-row .i { flex: none; color: var(--accent); }
.acct-row b { display: block; font-weight: 600; }
.acct-row small { display: block; font-size: 12px; color: var(--pale); }
.apps-menu { width: 320px; padding: 6px; border-radius: 14px; box-shadow: 0 0 0 1px var(--line), 0 18px 48px rgba(13, 37, 84, 0.18); }
.app-row b { display: block; font-size: 14px; font-weight: 600; line-height: 1.25; }
.menu .app-row { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 8px; border-radius: 10px; }
.app-row img { width: 30px; height: 30px; flex: none; object-fit: contain; }
.app-row > span { min-width: 0; }
.app-row small { display: block; font-size: 12px; line-height: 1.25; color: var(--pale); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu .app-row.on { background: var(--tint); box-shadow: inset 0 0 0 1px rgba(36, 99, 176, 0.18); }
.menu .app-row:focus-visible, .app-switch:focus-visible, .me:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nav-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--pale); }
.nav-item .i { width: 18px; height: 18px; }
.me { width: 36px; height: 36px; border-radius: 50%; background: #fdf3c4; color: #b8901d; font-size: 15px; font-weight: 600; display: grid; place-items: center; box-shadow: inset 0 0 0 1px rgba(201, 162, 39, 0.35); }
.hamburger { display: none; }

.menu-wrap { position: relative; }
.menu { display: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 220px; background: #fff; border-radius: 10px; box-shadow: 0 0 0 1px var(--line), 0 8px 24px rgba(0, 0, 0, 0.12); padding: 6px; z-index: 40; text-align: left; }
.menu-wrap.right .menu { left: auto; right: 0; }
.me + .menu { min-width: 300px; }
.menu-wrap.open > .menu { display: block; }
.menu a, .menu .menu-item { display: flex; width: 100%; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 6px; font-size: 14px; text-align: left; }
.menu a:hover, .menu .menu-item:hover { background: var(--fill); }
.menu-head { padding: 9px 10px; font-size: 12px; color: var(--pale); border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.menu form { margin: 0; }

.bottom-tabs { display: none; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 6px 16px 6px 10px; border-radius: 8px; font-size: 14px; font-weight: 600; white-space: nowrap; }
.btn .i { width: 18px; height: 18px; }
.btn.accent { background: #155d62; color: #fff; }
.btn.accent:hover { filter: brightness(1.12); }
.btn.accent:disabled { opacity: 0.35; cursor: default; filter: none; }
.btn.accent.danger { background: #c5221f; }
.menu .menu-item.danger { color: #b3261e; }
.menu .menu-item:disabled { color: var(--pale); background: none; cursor: default; }
.btn.light { background: #fff; color: var(--text); box-shadow: inset 0 0 0 1px var(--fill2); padding: 6px 14px; }
.btn.light:hover { background: var(--fill); }
.btn.ext { padding: 6px 12px 6px 14px; }
.btn.ext .i { width: 15px; height: 15px; }
.btn.google { background: #fff; color: var(--text); box-shadow: inset 0 0 0 1px var(--fill2); height: 44px; padding: 0 18px; gap: 10px; width: 100%; max-width: 360px; }
.icon-btn { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; color: var(--text); }
.icon-btn:hover { background: var(--fill); }
.icon-btn.light { color: var(--dark); }
.icon-btn.light:hover { background: rgba(13, 37, 84, 0.08); }
.icon-btn.boxed { box-shadow: inset 0 0 0 1px var(--fill2); }
form.inline { display: inline; margin: 0; }

.hero { background: var(--blue-fade); color: var(--dark); padding: 24px var(--gutter) 28px; }
.hero-in { display: flex; gap: 24px; align-items: flex-start; }
.hero h2 { font-size: 24px; font-weight: 600; letter-spacing: -0.01em; }
.stat { margin-left: auto; width: 280px; background: #fff; color: var(--text); border-radius: 10px; padding: 14px 16px; }
.stat small { display: block; font-size: 12px; color: var(--pale); }
.stat b { display: block; font-size: 24px; font-weight: 600; }
.hero.slim { padding: 20px var(--gutter); }
.hero.slim .wrap { padding: 0; display: grid; gap: 14px; }
.range > span:first-child { display: block; font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.date-in { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 8px; background: rgba(13, 37, 84, 0.08); }
.date-in input { flex: 1; background: none; border: 0; color: var(--dark); outline: none; color-scheme: light; }

.note { padding: 16px 0 8px; font-size: 14px; color: var(--pale); }
.note.center { text-align: center; padding: 16px 0 32px; }
.banner { padding: 14px 0 6px; text-align: center; font-size: 18px; font-weight: 600; }
.list-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0 12px; flex-wrap: wrap; }
.list-head h1 { font-size: 24px; font-weight: 600; letter-spacing: -0.01em; }
.tools { display: flex; align-items: center; gap: 8px; }
.tools form { margin: 0; }
.filter-btn { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px; border-radius: 8px; background: var(--fill); color: var(--xpale); font-size: 14px; min-width: 138px; }
.filter-btn span { flex: 1; text-align: left; }
.filter-btn.on { color: var(--accent); }
.filter-panel { width: 300px; padding: 8px; }
.fgroup summary { list-style: none; display: flex; align-items: center; gap: 6px; padding: 10px 8px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; }
.fgroup summary::-webkit-details-marker { display: none; }
.fgroup summary .i { margin-left: auto; color: var(--xpale); transition: transform 0.15s; }
.fgroup[open] summary .i { transform: rotate(90deg); }
.fgroup summary:hover { background: var(--fill); }
.fgroup .count { background: var(--accent); color: #fff; border-radius: 999px; font-size: 11px; padding: 0 6px; }
.fopts { display: grid; gap: 2px; padding: 0 8px 8px 12px; max-height: 220px; overflow: auto; }
.fopts label { display: flex; align-items: center; gap: 8px; font-size: 14px; padding: 4px 0; }
.fopts input { accent-color: var(--accent); width: 16px; height: 16px; }
.filter-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px 8px 4px; }
.filter-actions .btn { justify-content: center; padding: 6px 14px; }
.filter-btn.one { min-width: 0; padding: 0 10px 0 12px; color: var(--text); }
.filter-btn.one.on, .filter-btn.one:has(input:checked) { color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
label.filter-btn { cursor: pointer; }
.filter-panel.one { width: 220px; }
.filter-panel.one .fopts { padding: 4px 8px; max-height: 300px; }
.filter-panel.one .fopts label { cursor: pointer; }
.filter-panel.one .fopts .pale { margin-left: auto; font-size: 12px; }

.rows { list-style: none; margin: 0; padding: 0; }
.row { display: flex; align-items: center; gap: 12px; padding: 8px; border-bottom: 1px solid var(--line); }
.row:hover { background: rgba(51, 51, 51, 0.025); }
.row.checked { background: var(--fill); }
.row-link { flex: 1; min-width: 0; display: flex; align-items: center; gap: 16px; }
.av { position: relative; display: block; width: 80px; height: 80px; flex: none; }
.av img { width: 100%; height: 100%; object-fit: contain; display: block; border-radius: inherit; }
.av.muted img { filter: grayscale(1) contrast(0.9) brightness(1.08); }
.av .badge { position: absolute; right: -2%; bottom: -2%; width: 36%; height: 36%; filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.25)); }
.av .badge svg { width: 100%; height: 100%; display: block; }
.av.blank { background: var(--fill); border-radius: 50%; }
.av.xl { width: 120px; height: 120px; border-radius: 50%; background: #fff; }
.row-text { min-width: 0; }
.kicker { font-size: 11px; line-height: 20px; font-weight: 600; text-transform: uppercase; color: var(--accent); }
.name { font-size: 14px; font-weight: 600; line-height: 19.6px; }
.mcs { list-style: none; margin: 0; padding: 4px 0 16px; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 350px), 1fr)); align-items: start; }
.mc { min-width: 0; padding: 20px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 3px rgba(13, 37, 84, 0.06); }
.mc.checked { box-shadow: inset 0 0 0 2px rgba(30, 142, 62, 0.35), 0 1px 3px rgba(13, 37, 84, 0.06); }
.mc-top { display: flex; align-items: flex-start; gap: 6px; }
.mc-top .menu-wrap { margin: -4px -8px 0 0; }
.mc-copy-all { margin: -4px 0 0 auto; color: var(--pale); }
.mc-top > .mc-who + .menu-wrap { margin-left: auto; }
.pc-tools { display: inline-flex; align-items: center; gap: 2px; }
.pc-tools > .icon-btn { color: var(--pale); }
.pc-req { height: 30px; padding: 0 10px; font-size: 13px; }
.pc-req .i { width: 15px; height: 15px; }
.pc-req-menu { gap: 2px; min-width: 260px; padding: 10px; }
.menu-wrap.open > .pc-req-menu { display: grid; }
.pc-req-menu small { padding: 0 4px 6px; color: var(--pale); font-size: 12px; }
.pc-req-menu .pc-req-who { padding: 4px 4px 0; font-weight: 600; color: var(--text); }
.pc-req-sep { margin: 6px 0; border: 0; border-top: 1px solid var(--line); }
.pc-req-menu .menu-item { gap: 8px; cursor: pointer; }
.pc-req-menu > .btn { justify-self: end; height: 32px; margin-top: 6px; padding: 0 16px; font-size: 13px; }
.mc-who { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; color: inherit; }
.mc-who:hover b { text-decoration: underline; }
.mc-who:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 10px; }
.mc-id { min-width: 0; display: grid; gap: 2px; }
.mc-id b { font-size: 18px; font-weight: 700; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-id small { font-size: 13px; color: var(--pale); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-type { display: inline-block; padding: 1px 8px; border-radius: 999px; background: var(--c-soft); color: var(--c); font-weight: 600; }
.av.mc-av { width: 64px; height: 64px; border-radius: 50%; background: var(--c-soft); box-shadow: 0 0 0 3px var(--c-soft); }
.fam-f { --c: #d9481a; --c-soft: rgba(240, 90, 40, 0.12); }
.fam-m { --c: #1e7279; --c-soft: rgba(42, 144, 151, 0.13); }
.fam-teen { --c: #5f7f2a; --c-soft: rgba(122, 154, 53, 0.15); }
.fam-u { --c: #6b7280; --c-soft: rgba(107, 114, 128, 0.12); }
.av.tone-member { --tone: rgba(42, 144, 151, 0.26); background: rgba(42, 144, 151, 0.1); }
.av.tone-spouse { --tone: rgba(240, 90, 40, 0.24); background: rgba(240, 90, 40, 0.1); }
.av.tone-teen { --tone: rgba(122, 154, 53, 0.3); background: rgba(122, 154, 53, 0.12); }
.av.tone-other { --tone: var(--fill2); background: var(--fill); }
.mc-lines { display: grid; gap: 4px; padding-top: 12px; }
.mc-line { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 14px; color: var(--pale); }
.mc-line > .i { width: 15px; height: 15px; flex: none; color: var(--xpale); }
.mc-line a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pale); }
.mc-line a:hover { color: var(--accent); text-decoration: underline; }
.mc-copy { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; color: var(--pale); opacity: 0; }
.mc-copy .i { width: 14px; height: 14px; }
.mc-line:hover .mc-copy, .mc-copy:focus-visible { opacity: 1; }
.mc-copy:hover { background: var(--fill); }
.mc-tags { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px; }
.tag-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; background: var(--fill2); color: var(--pale); font-size: 12px; font-weight: 600; line-height: 1.4; }
.tag-pill .i { width: 12px; height: 12px; color: var(--xpale); }
.mc-family { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.fam-pill { padding: 2px 10px; border: 1px solid var(--c); border-radius: 999px; color: var(--c); font-size: 12px; font-weight: 600; line-height: 1.4; }
.fam-pill:hover { background: var(--c-soft); }
.chev { display: grid; place-items: center; width: 28px; height: 36px; color: var(--pale); }
.rows.plain .row { padding: 8px 0; }
.empty { padding: 24px 0; text-align: center; color: var(--pale); font-size: 14px; }

.pager { display: flex; justify-content: center; align-items: center; gap: 4px; padding: 20px 0; font-size: 14px; }
.pg, .pg-nav { min-width: 32px; height: 32px; padding: 0 8px; display: inline-grid; place-items: center; border-radius: 8px; }
.pg:hover, .pg-nav:hover { background: var(--fill); }
.pg.on { background: var(--fill2); font-weight: 600; }
.pg-nav.off { color: var(--xpale); }
.gap { padding: 0 4px; color: var(--pale); }

.day { font-size: 16px; font-weight: 600; padding: 18px 0 10px; }
.cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gcard { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: 10px; background: var(--fill); }
.gimg { width: 56px; height: 56px; border-radius: 6px; object-fit: cover; flex: none; }

.band { background: var(--blue-fade); color: var(--dark); margin-top: 24px; padding: 20px 0 8px; }
.band h2 { font-size: 24px; font-weight: 600; padding-bottom: 10px; }
.band-rows { list-style: none; margin: 0; padding: 0; }
.band-rows li { padding: 9px 8px; border-bottom: 1px solid rgba(13, 37, 84, 0.12); }
.band-rows b { display: block; font-size: 14px; font-weight: 600; }
.band-rows small { display: block; font-size: 14px; color: rgba(13, 37, 84, 0.72); }
.band .pg.on { background: rgba(13, 37, 84, 0.12); }
.band .pg:hover, .band .pg-nav:hover { background: rgba(13, 37, 84, 0.07); }
.band .pg-nav.off, .band .gap { color: rgba(13, 37, 84, 0.4); }

.detail-hero { background: var(--blue-fade); color: var(--dark); padding: 12px 0 24px; }
.crumbs { display: flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(13, 37, 84, 0.72); padding-bottom: 16px; }
.crumbs b { color: var(--dark); font-weight: 600; }
.crumbs .back { display: grid; place-items: center; width: 24px; height: 24px; }
.detail-hero.bar { padding: 12px 0; }
.detail-hero.bar .crumbs { padding-bottom: 0; }
.crumb-tools { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.detail-head { display: flex; align-items: center; gap: 24px; }
.detail-head .who { flex: 1; min-width: 0; }
.detail-head .id { font-size: 12px; color: rgba(13, 37, 84, 0.72); }
.detail-head h1 { font-size: 28px; font-weight: 600; letter-spacing: -0.01em; }
.detail-head .sub { font-size: 14px; color: rgba(13, 37, 84, 0.72); }
.contact { display: grid; gap: 14px; min-width: 280px; }
.cline { display: flex; align-items: center; gap: 8px; }
.cline > div { flex: 1; margin-right: 12px; }
.cline b { display: block; font-size: 14px; font-weight: 600; }
.cline small { display: block; font-size: 12px; color: rgba(13, 37, 84, 0.65); }
.round { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(13, 37, 84, 0.08); color: var(--dark); }
.round .i { width: 16px; height: 16px; }
.round:hover { background: rgba(13, 37, 84, 0.14); }
.ci-pill { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 7px 0 9px; margin-right: 4px; border-radius: 999px; background: #fff; color: var(--accent); font-size: 13px; font-weight: 600; line-height: 1; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); white-space: nowrap; }
.ci-pill .i { width: 14px; height: 14px; }
.ci-pill .i:last-child { width: 12px; height: 12px; }
.ci-pill:hover { background: #f1f5fb; }
.ci-pill:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.menu-wrap.open > .ci-pill .i:last-child { transform: rotate(180deg); }
.crumb-tools .menu { min-width: 180px; text-align: left; color: var(--text); }
.crumb-tools .menu form { margin: 0; }
.link-btn { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--accent); }
.link-btn .i { width: 18px; height: 18px; }
.warn { margin-top: 16px; padding: 14px 16px; border-radius: 10px; background: #f0f5fc; box-shadow: inset 0 0 0 1px rgba(36, 99, 176, 0.25); font-size: 14px; }
.warn b { color: var(--accent); }
.warn p { white-space: pre-line; margin-top: 6px; color: var(--pale); }
.ready-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; padding: 14px 16px; border-radius: 10px; background: #eef7f1; box-shadow: inset 0 0 0 1px rgba(46, 125, 80, 0.25); font-size: 14px; }
.ready-banner > div { flex: 1; min-width: 200px; }
.ready-banner b { color: #2e7d50; }
.ready-banner p { margin: 4px 0 0; color: var(--pale); }
.ready-banner form { margin: 0; }
.vis { display: inline-flex; vertical-align: middle; }
.vis.on { color: #1e7a3c; }
.vis.off { color: #b3261e; }
.cancel-banner { display: flex; gap: 12px; margin-top: 16px; padding: 14px 16px; border-radius: 10px; background: #fff6e5; box-shadow: inset 0 0 0 1px rgba(176, 112, 0, 0.3); font-size: 14px; }
.cancel-banner > .i { flex: none; color: #a86a00; margin-top: 1px; }
.cancel-banner b { color: #8a5600; }
.cancel-banner p { margin: 4px 0 0; color: var(--pale); }
.cancel-banner ol { margin: 8px 0 0; padding-left: 20px; }
.cancel-banner li + li { margin-top: 3px; }
.ml-list { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 14px; background: #f5f7fa; container-type: inline-size; }
.ml-head, .ml-row { display: grid; grid-template-columns: minmax(130px, 1.3fr) 90px 90px minmax(130px, 1.2fr) minmax(130px, 1.2fr) 150px minmax(170px, auto); align-items: center; gap: 16px; padding: 0 14px; }
.ml-head { font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--pale); padding-top: 2px; padding-bottom: 2px; }
.ml-row { min-height: 68px; background: #fff; border-radius: 12px; box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgba(0, 0, 0, 0.03); font-size: 14px; }
.ml-room { display: flex; align-items: center; gap: 12px; }
.ml-tile { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; flex: none; }
.ml-tile .i { width: 22px; height: 22px; }
.ml-tile.women { background: #fde4ec; color: #e0457b; }
.ml-tile.men { background: #e1edfb; color: #1f66b8; }
.ml-num { display: inline-flex; align-items: center; justify-content: center; min-width: 64px; height: 40px; padding: 0 10px; border-radius: 8px; background: var(--fill); font-size: 20px; font-weight: 700; }
.ml-size { display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: 7px; font-size: 13px; font-weight: 600; }
.ml-size.small { background: #e1edfb; color: #1f66b8; }
.ml-size.large { background: #ede6fb; color: #6b3fc0; }
.ml-date { display: flex; align-items: flex-start; gap: 10px; }
.ml-date > .i { color: var(--pale); margin-top: 1px; }
.ml-date > span { display: flex; flex-direction: column; }
.ml-date b { font-weight: 500; }
.ml-date small { color: var(--pale); font-size: 12px; }
.ml-status { display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.ml-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ml-status.on { background: #e1f3e8; color: #1e7a3c; }
.ml-status.asked { background: #fff1d6; color: #8a5600; }
.ml-status.off { background: var(--fill); color: var(--pale); }
.ml-acts { justify-self: end; text-align: right; }
.ml-cancel { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
@container (max-width: 1080px) {
  .ml-head { display: none; }
  .ml-row { grid-template-columns: 1fr 1fr; padding: 14px; row-gap: 12px; }
  .ml-acts { grid-column: 1 / -1; justify-self: start; text-align: left; }
}
.wix-howto { margin-top: 12px; padding: 14px 16px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.08); font-size: 13px; color: #162d3d; }
.wix-howto-item { display: grid; gap: 2px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.wix-howto-item span { color: #32536a; }
.wix-howto-foot { display: grid; gap: 6px; padding-top: 10px; }
.wix-howto-link { justify-self: start; margin-left: -10px; padding: 6px 12px; border: 2.5px solid #e5484d; border-radius: 50%; color: #116dff; }
.page-tabs { display: flex; flex-wrap: wrap; gap: 4px 28px; margin-top: 14px; }
.page-tabs a { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 10px 2px; font-size: 15px; font-weight: 600; color: var(--pale); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.page-tabs a:hover { color: var(--text); }
.page-tabs a.on { color: var(--text); border-color: var(--accent); }
.welcome-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--line); }
.st-pre { --st-dot: #d6409f; --st-fg: #a8307c; --st-bg: #fae0ef; }
.st0 { --st-dot: #e5484d; --st-fg: #b8323a; --st-bg: #fbe1e2; }
.st1 { --st-dot: #f26522; --st-fg: #b84714; --st-bg: #fde4d6; }
.st2 { --st-dot: #f5b800; --st-fg: #8a6400; --st-bg: #fdf1c7; }
.st3 { --st-dot: #7aa857; --st-fg: #4f7a32; --st-bg: #e6f0dc; }
.st4 { --st-dot: #1fa2a8; --st-fg: #137b80; --st-bg: #dcf2f2; }
.st5 { --st-dot: #2f80d0; --st-fg: #2463b0; --st-bg: #e1ecf9; }
.st6 { --st-dot: #5b5fc7; --st-fg: #3f43a3; --st-bg: #e6e7f8; }
.kicker .st-name { color: var(--st-fg); }
.row-main { flex: 1; min-width: 0; display: grid; gap: 6px; }
.row-steps { display: flex; flex-wrap: wrap; gap: 6px; }
.row-steps:empty { display: none; }
.step-pill { display: inline-flex; align-items: center; height: 30px; border-radius: 999px; background: var(--st-bg, var(--tint)); color: var(--st-fg, var(--accent)); font-size: 13px; font-weight: 500; }
.step-pill.next { background: #fff; box-shadow: inset 0 0 0 1px var(--st-dot, var(--fill2)); }
.step-pill.next.unset { border: 1px dashed var(--st-dot, var(--fill2)); box-shadow: none; }
.step-pill-main { display: inline-flex; align-items: center; gap: 5px; height: 100%; padding: 0 10px; border-radius: 999px; white-space: nowrap; }
.step-pill:not(.unset, .static) .step-pill-main { padding-right: 4px; }
.step-pill-x { display: grid; place-items: center; width: 22px; height: 22px; margin-right: 4px; border-radius: 50%; color: inherit; }
.step-pill-x:hover { background: rgba(36, 99, 176, 0.15); }
.step-pill .step-menu { min-width: 220px; }
.step-menu form { display: grid; gap: 10px; padding: 6px; }
.stage-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 4px; }
.stage-chip { display: inline-flex; align-items: center; height: 30px; padding: 0 6px 0 12px; border-radius: 999px; font-size: 13px; font-weight: 500; color: var(--text); box-shadow: inset 0 0 0 1px var(--fill2); background: #fff; }
.stage-chip::before { content: ""; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--st-dot, var(--accent)); }
.stage-chip:hover { background: var(--fill); }
.stage-chip.on { background: var(--st-bg, var(--tint)); color: var(--st-fg, var(--accent)); box-shadow: inset 0 0 0 1px var(--st-dot, var(--accent)); }
.stage-chip.on .tab-count { background: rgba(255, 255, 255, 0.7); color: var(--st-fg, var(--accent)); }
.welcome-tabs a.on .tab-count { background: var(--tint); color: var(--accent); }
.tab-note { margin: 10px 0 2px; }
.cu-tabs { display: flex; gap: 24px; margin: 4px 0 4px; border-bottom: 1px solid var(--line); }
.member-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.tab-dot { width: 8px; height: 8px; border-radius: 50%; background: #e8a33a; box-shadow: 0 0 0 2px #fff; }
.kvrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; }
.kvrow b { font-size: 14px; font-weight: 600; }
.chips-out { display: flex; gap: 8px; flex-wrap: wrap; }
.rv-group form > .chips-out { margin-top: 12px; }
.chip-btn { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 500; box-shadow: inset 0 0 0 1px var(--fill2); background: #fff; white-space: nowrap; }
.chip-btn .i { width: 14px; height: 14px; }
.chip-btn:hover { background: var(--fill); }
.tbl-title { font-size: 18px; font-weight: 600; padding: 18px 0 8px; }
.scroll { overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.tbl th { text-align: left; font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--pale); padding: 8px 10px; border-bottom: 1px solid var(--line); }
.tbl td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.tbl.grid th { text-transform: none; font-size: 12px; font-weight: 500; }
.tbl.grid td { white-space: nowrap; }
.tbl .idx { color: var(--xpale); font-size: 12px; width: 24px; }

.cal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0 14px; flex-wrap: wrap; }
.cal-head h2 { font-size: 16px; font-weight: 600; }
.cal-tools { display: flex; align-items: center; gap: 8px; }
.cal { display: grid; grid-template-columns: repeat(7, 1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-bottom: 32px; }
.cal-dow { padding: 6px; text-align: center; font-size: 12px; color: var(--pale); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cal-cell { min-height: 112px; padding: 6px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cal.week .cal-cell { min-height: 420px; }
.cal-cell.out .cal-n { color: var(--xpale); }
.cal-cell.today { background: var(--tint); }
.cal-cell.today .cal-n { color: var(--accent); font-weight: 600; }
.cal-n { font-size: 12px; text-align: right; }
.cal-ev { font-size: 12px; padding: 2px 6px; border-radius: 4px; background: var(--tint); color: var(--accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-more { font-size: 11px; color: var(--pale); padding: 0 6px; }
.cal-tour { display: grid; gap: 2px; min-width: 0; padding: 4px 6px; border-radius: 6px; background: var(--tint); color: var(--accent); font-size: 12px; line-height: 16px; }
.cal-tour:hover { box-shadow: inset 0 0 0 1px var(--accent); }
.cal-tour > span { display: flex; align-items: center; gap: 4px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.cal-tour > span .i { width: 13px; height: 13px; color: var(--pale); }
.cal-tour.noguide { background: #fdf3c4; color: #8a6a0f; }
.cal-tour.noguide:hover { box-shadow: inset 0 0 0 1px #8a6a0f; }
.cal-tour.quiet { background: var(--fill); color: var(--pale); }
.cal-tour.past { opacity: 0.55; }
.lap-cal .cal-n:hover { color: var(--accent); text-decoration: underline; }
.lap-wd { display: none; }
.lap-chip { display: flex; align-items: center; gap: 4px; min-width: 0; padding: 2px 6px; border-radius: 5px; font-size: 12px; line-height: 16px; color: #fff; white-space: nowrap; overflow: hidden; }
.lap-chip b { font-weight: 600; }
.lap-chip span { overflow: hidden; text-overflow: ellipsis; opacity: 0.9; }
.lap-chip .i { width: 12px; height: 12px; flex: none; color: var(--gold); }
.lap-chip.open, .lap-chip.full { color: var(--text); }
.lap-chip.open::before, .lap-chip.full::before { content: ""; width: 6px; height: 6px; border-radius: 50%; flex: none; }
.lap-chip.open { background: #e2f4e8; }
.lap-chip.open::before { background: #2f9e5a; }
.lap-chip.full { background: #fbe1e0; }
.lap-chip.full::before { background: #d4483f; }
.lap-chip.mine:not(.open):not(.full) { background: var(--accent); }
.lap-chip:hover { filter: brightness(0.96); }
.lap-chip.past { opacity: 0.45; }
.cal-legend i.open { background: #2f9e5a; }
.cal-legend i.full { background: #d4483f; }
.cal-legend .i { color: var(--gold); }
.day-nav { display: flex; align-items: center; gap: 12px; padding: 18px 0 14px; flex-wrap: wrap; }
.day-nav h1 { font-size: 22px; font-weight: 600; letter-spacing: -0.01em; }
.day-book { margin-left: auto; }
.lap-day td { white-space: nowrap; }
.lap-day tr.past td { color: var(--xpale); }
.lap-day tr.hl td { background: var(--tint); }
.dlg.lap-dlg { width: min(960px, calc(100vw - 32px)); }
.lap-dlg .dlg-head { border-bottom: 1px solid var(--line); }
.lap-panel { max-height: calc(85vh - 60px); overflow: auto; padding-top: 4px; }
.lap-panel .day-nav { justify-content: center; }
.lap-panel .day-nav h1 { min-width: 0; text-align: center; }
.lap-panel .day-book { margin-left: 0; }
.lap-day td.lap-me { font-weight: 600; color: var(--accent); }
.lap-day td.lap-me .i { width: 13px; height: 13px; margin-right: 4px; color: var(--gold); vertical-align: -2px; }
.lap-open { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; background: rgba(30, 142, 62, 0.1); color: #1e7a3c; }
.bell { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; color: var(--xpale); box-shadow: inset 0 0 0 1px var(--fill2); }
.bell .i { width: 18px; height: 18px; }
.bell:hover { color: var(--accent); background: var(--fill); }
.bell.on { color: #fff; background: var(--accent); box-shadow: none; position: relative; }
.bell-check { position: absolute; top: -5px; right: -5px; display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: #2f9e5a; color: #fff; box-shadow: 0 0 0 2px #fff; }
.bell .bell-check .i { width: 11px; height: 11px; stroke-width: 3; }
.lap-foot { padding-top: 10px; }
.lap-act { display: inline-flex; align-items: center; gap: 4px; border: 0; cursor: pointer; font: inherit; font-size: 12px; font-weight: 600; }
.lap-act:hover { background: #2f7d4f; color: #fff; }
.lap-act .i { width: 12px; height: 12px; }
.lap-day td.lap-moving { background: #fdf3c4; }
.lap-move-note { margin: 0 0 8px; }
.lap-confirm { font-size: 18px; font-weight: 600; }
.lap-bookers { display: grid; gap: 6px; }
.lap-booker { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--fill2); cursor: pointer; }
.lap-booker:has(input:checked) { background: var(--tint); box-shadow: inset 0 0 0 2px var(--accent); }
.lap-booker input { accent-color: var(--accent); }
.lap-booker > span { display: grid; min-width: 0; }
.lap-booker small { font-size: 12px; color: var(--pale); }
.lap-next { padding-top: 16px; }
.lap-noshows { margin: 4px 0 18px; }
.lap-cal-card { margin: 4px 0 18px; }
.lap-cal-months { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px 28px; }
.lap-cal-month { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.lap-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(34px, 1fr)); gap: 3px; }
.lap-cal-wd { font-size: 11px; font-weight: 600; color: var(--pale); text-align: center; }
.lap-cal-day { display: grid; place-items: center; align-content: center; height: 40px; border-radius: 7px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.lap-cal-day b { font-size: 12px; font-weight: 500; }
.lap-cal-day small { font-size: 11px; font-weight: 700; }
.lap-cal-day.none { color: var(--xpale); }
.lap-cal-day.zero { background: #e3f5ea; color: #1e7a45; }
.lap-cal-day.heat { background: color-mix(in srgb, #c62f25 var(--heat), #fdecea); color: #8f1f17; }
.lap-cal-day.hot { color: #fff; }
.lap-tabs { margin: 4px 0 16px; overflow: visible; }
.lap-title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.lap-title .lap-title-i { width: 40px; height: 40px; color: var(--accent); stroke-width: 2.2; }
.lap-xs .sw-dates { padding: 6px 8px 8px; }
.lap-dates-head { display: flex; align-items: center; gap: 8px; padding: 8px 6px 10px; font-size: 14px; font-weight: 600; }
.lap-dates-head > span { flex: 1; }
.lap-dates-head .i { color: var(--pale); }
.sw-navbtn.off { color: var(--xpale); pointer-events: none; }
.lap-xs .sw-date { border-bottom: 1px solid var(--line); border-radius: 0; }
.lap-xs .sw-date.on { background: var(--tint); box-shadow: inset 4px 0 0 var(--accent); border-radius: 8px; }
.lap-xs .sw-date.on b { color: var(--accent); }
.lap-swipe-at { margin-top: 4px; font-size: 13px; color: var(--pale); }
.lap-pairs { margin-bottom: 14px; }
.lap-sub { margin: 18px 0 8px; font-size: 15px; font-weight: 600; }
.lap-buddy { color: var(--accent); font-weight: 500; }
.lap-buddy:hover { text-decoration: underline; }
.lap-buddies { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.lap-when-row { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.lap-date-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.lap-date-top b { font-size: 15px; font-weight: 600; }
.lap-date-top small { font-size: 12px; color: var(--pale); white-space: nowrap; }
.lap-date-sub { display: block; margin-top: 2px; font-size: 14px; color: var(--pale); }
.lap-day-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 16px; }
.lap-day-head h2 { font-size: 26px; font-weight: 700; letter-spacing: -0.01em; color: var(--dark); }
.lap-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.lap-stat { display: flex; align-items: center; gap: 12px; min-width: 140px; padding: 12px 16px; border-radius: 10px; }
.lap-stat .i { width: 30px; height: 30px; }
.lap-stat b { display: block; font-size: 20px; font-weight: 700; line-height: 1.1; }
.lap-stat span { font-size: 12px; }
.lap-stat.green { background: #e7f6ec; color: #1e7a45; }
.lap-stat.red { background: #fdecea; color: #b3261e; }
.lap-stat.blue { background: var(--tint); color: var(--dark); }
.lap-stat.blue .i { color: var(--accent); }
.lap-tbl { border: 1px solid var(--line); border-radius: 10px; border-collapse: separate; border-spacing: 0; }
.lap-tbl th { text-transform: none; font-size: 13px; color: var(--text); padding: 12px 10px; }
.lap-tbl td { padding: 10px; }
.lap-tbl tr:last-child td { border-bottom: 0; }
.lap-when { display: inline-grid; justify-items: center; min-width: 64px; padding: 6px 8px; border-radius: 8px; background: var(--tint); color: var(--dark); line-height: 1.15; }
.lap-when b { font-size: 15px; font-weight: 700; }
.lap-when small { font-size: 11px; font-weight: 600; }
.lap-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.lap-pill.green { background: #e3f5ea; color: #1e7a45; }
.lap-pill.red { background: #fdecea; color: #b3261e; }
.lap-pill.amber { background: #fdf3dc; color: #8a5a00; }
.lap-next-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 10px; }
.lap-next-head h2 { font-size: 18px; font-weight: 600; }
.lap-res-list { display: grid; gap: 8px; }
.lap-res { display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 16px; border-radius: 12px; background: var(--tint); box-shadow: inset 4px 0 0 var(--accent); }
.lap-res-when { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; flex: 1; min-width: 0; color: var(--dark); }
.lap-res-when span { color: var(--accent); font-weight: 600; }
.lap-res-when small { font-size: 13px; color: var(--pale); }
.lap-res-day { margin-bottom: 12px; }
.lap-res-day .lap-res-when { align-items: center; gap: 6px; }
.lap-res-day .lap-res-when .i { width: 14px; height: 14px; color: var(--gold); }
.lap-res-acts { display: flex; gap: 6px; flex: none; }
.lap-public { max-width: 680px; margin: 40px auto; padding: 0 16px; display: grid; gap: 18px; }
.lap-public-logo { justify-self: center; }
.lap-public-logo img { display: block; width: 72px; height: 72px; }
.lap-public h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; text-align: center; color: var(--dark); }
.lap-public-sub { font-size: 20px; font-weight: 700; color: var(--dark); padding-top: 6px; }
.lap-public-sub + .pale { margin-top: 4px; }
.lap-ticket { display: flex; align-items: center; gap: 18px; padding: 20px; border-radius: 16px; background: var(--tint); box-shadow: inset 5px 0 0 var(--accent), 0 1px 3px rgba(13, 37, 84, 0.06); }
.lap-ticket-icon { display: grid; place-items: center; flex: none; width: 64px; height: 64px; border-radius: 16px; background: rgba(36, 99, 176, 0.1); color: var(--accent); }
.lap-ticket-icon .i { width: 30px; height: 30px; }
.lap-ticket-text { display: grid; gap: 2px; flex: 1; min-width: 0; }
.lap-ticket-text b { font-size: 18px; color: var(--dark); }
.lap-ticket-text small { font-size: 14px; color: var(--pale); overflow-wrap: anywhere; }
.lap-cancel { display: inline-flex; align-items: center; gap: 8px; border: 0; cursor: pointer; font: inherit; font-size: 14px; font-weight: 500; white-space: nowrap; padding: 10px 16px; border-radius: 10px; background: #fdecec; color: #a11b1b; box-shadow: inset 0 0 0 1px #f5c2c2; }
.lap-cancel:hover { background: #fadada; }
.lap-cancel .i { width: 16px; height: 16px; }
.lap-cancel-confirm { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.lap-cancel-confirm .btn.light { padding: 10px 16px; border-radius: 10px; }
.lap-day-pick { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--fill2); }
.lap-step { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--fill); color: var(--text); box-shadow: inset 0 0 0 1px var(--line); }
.lap-step:hover { background: var(--fill2); }
.lap-step.off { opacity: 0.3; }
.lap-day-form { flex: 1; min-width: 0; }
.lap-day-form label { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 10px; border-radius: 10px; cursor: pointer; color: var(--dark); }
.lap-day-form label:hover { background: var(--fill); }
.lap-day-form label b { font-size: 17px; }
.lap-day-form input[type="date"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.lap-texts { margin: 16px 0 0; padding: 14px 18px; border-radius: 12px; background: #ffe680; box-shadow: inset 0 0 0 1px rgba(214, 160, 0, 0.45); display: grid; gap: 10px; font-size: 14px; }
.lap-texts h2, .lap-texts summary { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; color: var(--dark); }
.lap-texts h2 .i, .lap-texts summary > .i:first-child { color: #8a5a00; }
.lap-texts summary { cursor: pointer; list-style: none; flex-wrap: wrap; }
.lap-texts summary::-webkit-details-marker { display: none; }
.lap-texts summary span { font-size: 14px; font-weight: 400; color: #6b4e00; }
.lap-texts-chev { margin-left: auto; color: #8a5a00; transition: transform 0.15s; }
.lap-texts[open] .lap-texts-chev { transform: rotate(180deg); }
.lap-texts:not([open]) { gap: 0; }
.lap-texts.on { background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); }
.lap-texts.on summary > .i:first-child, .lap-texts.on .lap-texts-chev { color: var(--accent); }
.lap-texts.on summary span { color: var(--pale); }
.lap-texts.on[open] summary { margin-bottom: 12px; }
.lap-texts.on > p { margin: 0 0 14px; line-height: 1.5; }
.lap-texts .warn { margin-top: 0; }
.lap-texts .fld input { background: #fff; }
.lap-texts-form { display: grid; gap: 10px; }
.lap-texts-form .small { color: #6b4e00; line-height: 1.5; }
.lap-texts-form .small a { color: var(--accent); }
.lap-texts-form .btn { justify-self: start; }
.lap-consent { font-size: 14px; line-height: 1.45; }
.lap-doc { display: grid; gap: 12px; font-size: 15px; line-height: 1.6; }
.lap-doc h2 { font-size: 17px; font-weight: 600; color: var(--dark); padding-top: 8px; }
.lap-doc ul { display: grid; gap: 6px; padding-left: 20px; }
.lap-doc-shot { width: 100%; border-radius: 12px; box-shadow: 0 0 0 1px var(--fill2), 0 4px 16px rgba(13, 37, 84, 0.08); }
.lap-moves { display: grid; gap: 10px; }
.lap-next-open { display: grid; justify-items: center; gap: 12px; padding: 24px 16px; border-radius: 14px; text-align: center; color: var(--pale); box-shadow: inset 0 0 0 1px var(--fill2); }
.lap-next-open .lap-move-lane { text-decoration: none; }
.lap-move-row { display: flex; border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--fill2); }
.lap-move-time { display: grid; align-content: center; gap: 2px; flex: none; width: 128px; padding: 14px 18px; background: var(--tint); }
.lap-move-time b { font-size: 17px; color: var(--dark); }
.lap-move-time small { font-size: 13px; color: var(--pale); }
.lap-move-lanes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px; }
.lap-move-lane { min-width: 96px; padding: 12px 18px; border: 0; border-radius: 10px; cursor: pointer; font: inherit; font-size: 15px; font-weight: 600; background: rgba(30, 142, 62, 0.1); color: #1e7a3c; box-shadow: inset 0 0 0 1px rgba(30, 142, 62, 0.22); }
.lap-move-lane:hover { background: #2f7d4f; color: #fff; }
@media (max-width: 560px) {
  .lap-ticket { flex-wrap: wrap; }
  .lap-ticket form { width: 100%; }
  .lap-cancel { width: 100%; justify-content: center; }
  .lap-move-row { flex-direction: column; }
  .lap-move-time { width: auto; grid-auto-flow: column; justify-content: space-between; align-items: center; padding: 10px 14px; }
  .lap-move-lane { min-width: 0; flex: 1; }
  .lap-res { flex-direction: column; align-items: stretch; }
  .lap-res-when small { display: none; }
  .lap-res-acts > * { flex: 1; }
  .lap-res-acts .btn { width: 100%; justify-content: center; }
}
.icon-btn.off { opacity: 0.3; }
[data-load-into].loading { position: relative; }
[data-load-into].loading::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(255, 255, 255, 0.6); }
[data-load-into].loading::after { content: ""; position: absolute; z-index: 2; top: 50%; left: 50%; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; border: 3px solid var(--tint); border-top-color: var(--accent); animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.busy-btn { position: relative; z-index: 2; background: var(--accent) !important; color: #fff !important; box-shadow: 0 0 0 3px var(--tint); cursor: progress; }
.link-inline { color: var(--accent); font-weight: 600; }
.lap-welcome { max-width: 640px; margin: 48px auto; padding: 0 var(--gutter); display: grid; gap: 14px; }
.lap-welcome h1 { font-size: 30px; font-weight: 700; color: var(--dark); }
.lap-welcome p { color: var(--pale); }
.lap-welcome p b { color: var(--text); }
.lap-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 10px; max-width: 640px; }
.lap-choice form { margin: 0; display: grid; }
.lap-pick { display: grid; justify-items: center; gap: 6px; padding: 18px 16px; border-radius: 14px; text-align: center; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2), 0 1px 3px rgba(13, 37, 84, 0.06); }
.lap-pick .i { width: 26px; height: 26px; color: var(--accent); }
.lap-pick b { font-size: 16px; }
.lap-pick small { font-size: 13px; color: var(--pale); }
.lap-pick:hover { box-shadow: inset 0 0 0 2px var(--accent); }
.lap-pick.on { background: var(--tint); box-shadow: inset 0 0 0 2px var(--accent); }
.acl-list { display: grid; gap: 8px; margin-bottom: 8px; }
.acl-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line); }
form.acl-row { grid-template-columns: minmax(160px, 0.8fr) minmax(0, 2fr) auto; }
.acl-row.add { background: var(--fill); box-shadow: none; }
.acl-user { display: grid; grid-template-columns: minmax(200px, 0.9fr) minmax(0, 2fr) auto; align-items: center; gap: 12px; min-width: 0; }
.acl-who { display: grid; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.acl-name { display: flex; gap: 6px; }
.acl-name input { width: 50%; min-width: 0; height: 32px; padding: 0 8px; border-radius: 6px; border: 1px solid var(--fill2); background: #fff; font-size: 14px; }
.acl-checks { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; }
.acl-checks label { display: inline-flex; align-items: center; gap: 6px; }
.acl-checks input { accent-color: var(--accent); width: 16px; height: 16px; }
.acl-row .fld { margin: 6px 0 0; }
form.acl-row.acl-site, .acl-site { grid-template-columns: 250px 200px minmax(0, 1fr) auto; }
.acl-desc { width: 100%; min-width: 0; height: 26px; margin-top: 2px; padding: 0 8px; border-radius: 6px; border: 1px solid var(--fill2); background: #fff; font-size: 12px; color: var(--pale); }
.acl-desc:focus { color: var(--text); border-color: var(--accent); outline: none; }
.acl-site-new { display: grid; gap: 4px; }
.acl-site-btns { display: grid; gap: 6px; justify-items: center; }
.acl-people { display: grid; gap: 8px; margin-bottom: 8px; }
.acl-person { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.acl-person-who { flex: 0 1 300px; min-width: 0; display: grid; }
.acl-person-who b { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acl-person-who small { font-size: 13px; color: var(--pale); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acl-person-groups { flex: 1; display: flex; flex-wrap: wrap; gap: 4px; }
.acl-person > .btn { margin-left: auto; }
.acl-person .acl-checks, .dlg .acl-checks { padding-top: 4px; }
.link-btn.danger { color: #b3261e; }
.link-btn.danger:hover { text-decoration: underline; }
.dlg-foot .acl-remove { margin-left: auto; }
.acl-field { display: grid; gap: 6px; }
form.acl-row.acl-group, .acl-group { grid-template-columns: 200px 170px minmax(0, 1fr) minmax(0, 1.3fr) auto; }
.acl-count { display: block; font-size: 12px; color: var(--pale); }
.acl-group-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.acl-group-name b { font-size: 15px; }
.acl-group-ic { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; }
.acl-group-ic .i { width: 18px; height: 18px; }
.acl-group.kind-people { background: #eef4fc; box-shadow: inset 4px 0 0 var(--accent); }
.acl-group.kind-people .acl-group-ic { background: #fff; color: var(--accent); }
.acl-group.kind-pattern { background: #eef8f1; box-shadow: inset 4px 0 0 #2f8a5b; }
.acl-group.kind-pattern .acl-group-ic { background: #fff; color: #2f8a5b; }
.acl-group .acl-select { background: #fff; }
.acl-who-in { min-width: 0; }
.acl-who-in [hidden] { display: none; }
.acl-checks label.locked { color: var(--xpale); cursor: not-allowed; }
.acl-checks label.locked .i, .pale .i.sm { width: 12px; height: 12px; vertical-align: -1px; }
.acl-field > span { font-size: 12px; font-weight: 600; }
@media (max-width: 767px) {
  .acl-person { flex-wrap: wrap; }
  .acl-person-groups { flex-basis: 100%; order: 3; }
}
.acl-site-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.acl-site-name img, .acl-site-blank { width: 40px; height: 40px; flex: none; object-fit: contain; }
.acl-site-blank { display: grid; place-items: center; border-radius: 10px; background: #fff; color: var(--pale); }
.acl-site-name > span { display: grid; min-width: 0; }
.acl-site-name b { font-size: 15px; }
.acl-site-name small { font-size: 12px; color: var(--pale); }
.acl-site.tone-0 { background: #eef4fc; }
.acl-site.tone-1 { background: #fdf1f0; }
.acl-site.tone-2 { background: #eef8f1; }
.acl-site.tone-3 { background: #fdf7e6; }
.acl-site.tone-4 { background: #f4effb; }
.acl-site.tone-5 { background: #eaf7f8; }
.acl-site .acl-select, .acl-site .echip-in { background: #fff; }
.acl-site-head { display: grid; gap: 12px; padding: 0 14px; font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--pale); }
.acl-select { height: 34px; width: 100%; padding: 0 8px; border-radius: 8px; border: 1px solid var(--fill2); background: #fff; font-size: 14px; }
.echips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.echip { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 4px 0 10px; border-radius: 999px; background: var(--tint); color: var(--accent); font-size: 13px; font-weight: 500; }
.echip-x { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: var(--accent); }
.echip-x:hover { background: rgba(36, 99, 176, 0.18); }
.echip-x .i { width: 12px; height: 12px; }
.echip-in { flex: 1; min-width: 180px; height: 28px; padding: 0 10px; border-radius: 999px; border: 1px dashed var(--fill2); background: #fff; font-size: 13px; outline: none; }
.echip-in:focus { border-color: var(--accent); border-style: solid; }
.help-names { display: grid; gap: 8px; width: min(320px, 100%); margin: 16px auto; }
.help-pick .btn { width: 100%; justify-content: center; }
.set .tbl-title { margin-top: 24px; }
.set-card { padding: 16px 18px; display: grid; gap: 10px; }
.set-help summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--accent); }
.set-help ul { margin: 8px 0 0; padding-left: 18px; font-size: 13px; color: var(--pale); display: grid; gap: 4px; }
.set-help code { color: var(--text); background: var(--fill); padding: 1px 6px; border-radius: 4px; }
.ev-hero { position: relative; height: 270px; margin-top: 16px; border-radius: 16px; overflow: hidden; background: var(--blue-fade); background-size: cover; background-position: center; }
.ev-date { position: absolute; top: 14px; right: 14px; display: flex; align-items: center; gap: 16px; padding: 10px 18px 10px 10px; border-radius: 14px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 6px 20px rgba(13, 37, 84, 0.18); }
.ev-day { display: grid; justify-items: center; width: 64px; padding: 6px 0 8px; border-radius: 10px; background: #fdf6dc; line-height: 1.1; }
.ev-day small { font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--pale); }
.ev-day b { font-size: 18px; text-transform: uppercase; color: var(--dark); }
.ev-day strong { font-size: 26px; color: var(--dark); }
.ev-time { display: grid; justify-items: start; gap: 8px; font-size: 14px; color: var(--text); padding-left: 16px; border-left: 1px solid var(--line); }
.ev-time > span { display: flex; align-items: center; gap: 6px; }
.ev-time .i { width: 16px; height: 16px; color: var(--pale); }
.ev-cal { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px 4px 6px; border-radius: 999px; background: var(--tint); color: var(--accent); font-size: 13px; font-weight: 600; }
.ev-cal .i { color: var(--accent); }
.ev-cal:hover { background: var(--accent); color: #fff; }
.ev-cal:hover .i { color: #fff; }
.ev-card { position: absolute; left: 14px; bottom: 14px; display: flex; align-items: center; gap: 12px; max-width: calc(100% - 28px); padding: 12px 18px 12px 12px; border-radius: 14px; background: #fff; box-shadow: 0 6px 20px rgba(13, 37, 84, 0.18); }
.ev-card img { width: 52px; height: 52px; flex: none; }
.ev-card b { display: block; font-size: 18px; color: var(--dark); }
.ev-card small { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--pale); }
.ev-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 16px 0 8px; }
.ev-title { font-size: 32px; font-weight: 700; color: var(--dark); }
.ev-sub { padding-top: 4px; color: var(--pale); }
.ev-about { padding-top: 8px; }
.ev-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; padding-top: 18px; }
.ev-panel { border-radius: 16px; background: #eef4e6; box-shadow: inset 0 0 0 1px rgba(80, 120, 40, 0.18); }
.ev-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; padding: 16px 18px; }
.ev-row + .ev-row { border-top: 1px solid rgba(80, 120, 40, 0.15); }
.ev-av { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--dark); color: #fff; font-size: 14px; font-weight: 700; }
.ev-av.light { background: #fff; color: var(--dark); box-shadow: inset 0 0 0 1px var(--line); }
.ev-av.big { width: 52px; height: 52px; font-size: 17px; }
.ev-who { flex: 1 1 260px; min-width: 0; display: grid; gap: 2px; }
.ev-who small { font-size: 13px; color: var(--pale); overflow-wrap: anywhere; }
.ev-who small a:hover { color: var(--accent); text-decoration: underline; }
.ev-big { font-size: 17px; font-weight: 700; color: var(--text); }
.ev-me .ev-big { font-size: 20px; color: var(--dark); }
.ev-plus { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 999px; background: #fff; font-size: 12px; color: var(--pale); vertical-align: middle; }
.ev-note { font-style: italic; }
.ev-status { padding-top: 4px; }
.ev-acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-left: auto; }
.ev-btn { display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 18px 0 12px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 2px rgba(0, 0, 0, 0.04); font-weight: 600; white-space: nowrap; }
.ev-btn:hover { box-shadow: inset 0 0 0 1px var(--accent); }
.ev-btn.on { cursor: default; box-shadow: inset 0 0 0 2px #2f8a5b; }
.ev-dot { width: 26px; height: 26px; padding: 4px; border-radius: 50%; color: #fff; }
.ev-dot.yes { background: #2f8a5b; }
.ev-dot.no { background: #c5221f; }
.ev-dot.mail { background: var(--accent); }
.ev-foot { padding-top: 8px; }
.ev-side { display: grid; gap: 16px; }
.ev-box { padding: 16px; }
.ev-box-head { display: flex; gap: 12px; align-items: flex-start; }
.ev-box-head > .i { width: 36px; height: 36px; padding: 8px; flex: none; border-radius: 10px; background: var(--fill); color: var(--pale); }
.ev-box-head b { display: block; color: var(--dark); }
.ev-box-head small { font-size: 13px; color: var(--pale); }
.ev-faces { display: flex; flex-wrap: wrap; gap: 14px; padding: 14px 0 0 48px; }
.ev-face { display: grid; justify-items: center; gap: 4px; width: 72px; text-align: center; }
.ev-face small { font-size: 12px; color: var(--pale); }
.ev-assign { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 0 0 48px; }
.ev-assign select { height: 34px; max-width: 100%; padding: 0 8px; border-radius: 8px; border: 1px solid var(--fill2); background: #fff; font-size: 14px; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 14px; padding: 0 0 12px; font-size: 13px; color: var(--pale); }
.cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.cal-legend i { width: 12px; height: 12px; border-radius: 3px; background: var(--tint); }
.cal-legend i.noguide { background: #fdf3c4; }
.cal-legend i.quiet { background: var(--fill2); }

.tiles { list-style: none; margin: 0; padding: 0 0 24px; display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 16px; }
.tile-img { aspect-ratio: 1; border-radius: 8px; background: var(--fill); display: grid; place-items: center; font-size: 28px; font-weight: 600; color: var(--xpale); margin-bottom: 6px; }
.tiles li { min-width: 0; }
.tiles .name, .tiles .kicker, .tiles .pale { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.name.small { font-size: 12px; }
.exp { list-style: none; margin: 0; padding: 0 0 24px; display: grid; gap: 4px; }
.exp li { padding: 12px 8px; border-bottom: 1px solid var(--line); }
.exp li:first-child { background: var(--fill); border-radius: 8px; }
.exp p { font-size: 14px; white-space: pre-line; }

.dlg { border: 0; padding: 0; border-radius: 12px; width: min(720px, calc(100vw - 32px)); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); color: var(--text); overflow: hidden; }
.dlg.narrow { width: min(400px, calc(100vw - 32px)); }
.dlg::backdrop { background: rgba(0, 0, 0, 0.4); }
.dlg form { margin: 0; }
.dlg-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 12px 12px 20px; }
.dlg-head b { font-size: 14px; font-weight: 600; flex: 1; text-align: center; }
.dlg-head.center b { text-align: center; }
.dlg-band { background: var(--accent); color: #fff; padding: 16px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dlg-band.dark { background: var(--dark); grid-template-columns: 1fr; }
.dlg-band .fld input { background: rgba(255, 255, 255, 0.15); color: #fff; }
.dlg-band .fld input::placeholder { color: rgba(255, 255, 255, 0.6); }
.fld { display: grid; gap: 6px; }
.fld > span { font-size: 12px; font-weight: 600; }
.fld input, .fld textarea { width: 100%; height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--fill); outline: none; }
.fld select { width: 100%; height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--fill); outline: none; font: inherit; }
.fld textarea { height: auto; padding: 10px 12px; resize: vertical; }
.fld.plain em { font-style: normal; float: right; font-weight: 400; color: var(--pale); font-size: 12px; }
.dlg-body { padding: 16px 20px; }
.dlg-body.two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dlg-sub { text-align: center; color: var(--pale); font-size: 14px; padding-bottom: 12px; }
.dlg fieldset.plain { border: 0; margin: 0; padding: 0; display: grid; gap: 12px; min-width: 0; }
.kv { margin: 0 0 14px; display: grid; gap: 8px; font-size: 14px; }
.kv div { display: flex; justify-content: space-between; }
.kv dt { color: var(--pale); }
.kv dd { margin: 0; }
.step-form.docs-form { width: 420px; gap: 14px; padding: 18px; border-radius: 16px; }
.stepper li:first-child .step-form.docs-form { left: 0; transform: none; }
.docs-head { display: flex; align-items: center; justify-content: space-between; margin: -4px -6px -4px 0; }
.docs-head h4, .docs-kind h4 { margin: 0; font-size: 17px; font-weight: 700; color: var(--text); }
.docs-step { display: grid; gap: 8px; margin: 0; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.docs-label { font-size: 13px; font-weight: 600; }
.docs-label .req { color: #d93025; }
.fld-icon { position: relative; }
.fld-icon .i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--pale); pointer-events: none; }
.fld-icon input { width: 100%; height: 42px; padding: 0 12px 0 40px; border-radius: 10px; border: 1px solid var(--fill2); background: var(--fill); font: inherit; font-size: 14px; }
.docs-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 4px; }
.docs-actions .btn { justify-content: center; height: 40px; }
.docs-kind { display: grid; gap: 6px; }
.docs-kind > p { margin: 0; font-size: 13px; }
.file-card { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid rgba(36, 99, 176, 0.18); border-radius: 12px; background: rgba(36, 99, 176, 0.04); }
.file-tile { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; color: #fff; }
.file-tile.pdf { background: #e5352b; }
.file-tile.other { background: var(--accent); }
.file-tile .i { width: 22px; height: 22px; }
.file-meta { display: grid; min-width: 0; }
.file-meta a { font-size: 14px; font-weight: 700; color: var(--accent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-note { grid-column: 1 / -1; font-size: 12px; color: var(--pale); overflow-wrap: anywhere; }
.file-card form { margin: 0; }
.pill-danger { height: 30px; padding: 0 12px; border-radius: 8px; font-size: 13px; font-weight: 600; color: #c5221f; background: rgba(217, 48, 37, 0.1); }
.pill-danger:hover { background: rgba(217, 48, 37, 0.18); }
.docs-kind form[data-upload] { margin: 0; }
.dropzone { display: grid; justify-items: center; gap: 4px; padding: 18px 12px; border: 1.5px dashed var(--fill2); border-radius: 12px; background: rgba(36, 99, 176, 0.03); text-align: center; cursor: pointer; }
.dropzone .i { width: 32px; height: 32px; color: var(--accent); stroke-width: 1.6; }
.dropzone b { font-size: 15px; color: var(--accent); }
.dropzone span { font-size: 12px; }
.dropzone:hover, .dropzone.over { border-color: var(--accent); background: var(--tint); }
.dropzone.busy { opacity: 0.6; pointer-events: none; }
.docs-note { margin: 0; font-size: 12px; }
.upload-error { display: block; margin-top: 4px; font-size: 12px; color: #b3261e; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips label { position: relative; }
.chips input { position: absolute; opacity: 0; pointer-events: none; }
.chips span { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; font-size: 13px; box-shadow: inset 0 0 0 1px var(--fill2); cursor: pointer; }
.chips input:checked + span { background: var(--accent); color: #fff; box-shadow: none; }
.dlg-foot { padding: 0 20px 18px; display: grid; gap: 10px; justify-items: start; }
.dlg-foot.left { display: flex; gap: 8px; padding-top: 4px; }
.need { font-size: 11px; font-weight: 600; text-transform: uppercase; color: var(--accent); }
.toggle { display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 600; cursor: pointer; }
.toggle input { position: absolute; opacity: 0; }
.toggle i { width: 30px; height: 18px; border-radius: 999px; background: rgba(255, 255, 255, 0.3); position: relative; transition: background 0.15s; }
.toggle i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: left 0.15s; }
.toggle input:checked + i { background: var(--accent); }
.toggle input:checked + i::after { left: 14px; }
.cal-switch { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border-radius: 8px; font-size: 14px; color: var(--text); cursor: pointer; white-space: nowrap; }
.cal-switch:hover { background: var(--fill); }
.cal-switch input { position: absolute; opacity: 0; pointer-events: none; }
.cal-switch i { flex: none; width: 32px; height: 18px; border-radius: 999px; background: var(--fill2); position: relative; transition: background 0.15s; }
.cal-switch i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); transition: left 0.15s; }
.cal-switch input:checked + i { background: #2f7d4f; }
.cal-switch input:checked + i::after { left: 16px; }
.cal-switch input:focus-visible + i { outline: 2px solid var(--accent); outline-offset: 2px; }

.stage-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; }
.stage-tile { display: block; padding: 12px 14px; border-radius: 10px; background: rgba(255, 255, 255, 0.12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12); }
.stage-tile:hover { background: rgba(255, 255, 255, 0.2); }
.stage-tile.on { background: #fff; color: var(--text); }
.stage-tile small { display: block; font-size: 12px; font-weight: 600; opacity: 0.85; }
.stage-tile b { display: block; font-size: 26px; font-weight: 600; }
.stage-tile.gold small { color: var(--gold); }
.stage-tile.gold.on small { color: #8a6a0f; }
.prog { display: inline-flex; gap: 3px; margin-left: 8px; vertical-align: middle; }
.prog i { width: 14px; height: 5px; border-radius: 3px; background: var(--fill2); }
.prog i.on { background: var(--st-dot, var(--accent)); }
.state { flex: none; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--fill); color: var(--pale); white-space: nowrap; }
.state.due { background: #fdf3c4; color: #8a6a0f; }
.state.done { background: var(--tint); color: var(--accent); }
.state.open { background: #e3f5ea; color: #1e7a45; }
.state.late { background: rgba(217, 48, 37, 0.1); color: #b3261e; }
.stepper { list-style: none; margin: 0; padding: 8px 0 4px; display: grid; grid-auto-columns: 1fr; grid-auto-flow: column; }
.stepper li { position: relative; display: grid; justify-items: center; align-content: start; gap: 2px; text-align: center; padding: 0 4px; min-width: 0; }
.stepper li + li::before { content: ""; pointer-events: none; position: absolute; top: 15px; left: calc(-50% + 20px); right: calc(50% + 20px); height: 2px; border-radius: 1px; background: var(--fill2); }
.stepper li.done::before { background: var(--accent); }
.stepper li.skipped::before { background: var(--accent); opacity: 0.45; }
.stepper .dot { width: 32px; height: 32px; margin-bottom: 6px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 600; background: #fff; color: var(--xpale); box-shadow: inset 0 0 0 2px var(--fill2); }
.stepper .dot .i { width: 18px; height: 18px; stroke-width: 2.6; }
.stepper li.done .dot { background: var(--accent); color: #fff; box-shadow: none; }
.stepper li.current .dot { color: var(--accent); box-shadow: inset 0 0 0 2px var(--accent), 0 0 0 4px var(--tint); }
.stepper li.skipped .dot { color: #8a6a0f; box-shadow: inset 0 0 0 2px var(--gold); }
.stepper b { font-size: 13px; font-weight: 600; line-height: 1.25; }
.stepper li.todo b { color: var(--pale); font-weight: 500; }
.stepper li.current b { color: var(--accent); }
.stepper small { font-size: 12px; color: var(--pale); overflow-wrap: anywhere; }
.ccards { display: grid; gap: 14px; padding: 4px 0 24px; }
.ccards > *, .pcs > * { min-width: 0; }
.pcs { display: grid; gap: 16px; padding: 24px 0 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 460px), 1fr)); align-items: start; }
.pc { border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 3px rgba(13, 37, 84, 0.06); padding: 8px 16px 4px; }
.pc-top { display: flex; align-items: center; justify-content: space-between; }
.pc-title { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; }
.pc-title .i { width: 18px; height: 18px; color: var(--accent); }
.pc .pc-top { min-height: 40px; }
.pc-who { display: flex; align-items: center; gap: 14px; padding: 10px 0 8px; }
.av.md { width: 60px; height: 60px; border-radius: 50%; background: var(--fill); }
.pc-av { position: relative; flex: none; }
.pc-link { color: inherit; text-decoration: none; cursor: pointer; border-radius: 10px; }
.pc-link:hover .pc-name { text-decoration: underline; }
.pc-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.pc-star { position: absolute; right: -4px; top: -4px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--gold); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }
.pc-star .i { width: 16px; height: 16px; stroke: #c99a12; stroke-width: 1; }
.pc-name { font-size: 20px; font-weight: 700; line-height: 1.2; }
.pc-sub { font-size: 13px; color: var(--pale); padding: 2px 0 6px; }
.pc-plan { display: inline-block; padding: 2px 10px; border-radius: 999px; background: var(--fill); font-size: 12px; font-weight: 500; color: var(--pale); }
.pc-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.pc-row:last-of-type { border-bottom: 0; }
.pc-ic { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; flex: none; }
.pc-ic .i { width: 16px; height: 16px; }
.pc-ic.blue { background: rgba(36, 99, 176, 0.1); color: #2463b0; }
.pc-ic.purple { background: rgba(124, 77, 206, 0.12); color: #7c4dce; }
.pc-ic.green { background: rgba(30, 142, 90, 0.12); color: #1e8e5a; }
.pc-ic.amber { background: rgba(214, 140, 20, 0.14); color: #b9740a; }
.pc-ic.red { background: rgba(217, 48, 37, 0.1); color: #c5221f; }
.pc-tabs { display: flex; gap: 22px; border-bottom: 1px solid var(--line); }
.pc-tabs [role="tab"] { position: relative; padding: 10px 0 9px; font-size: 13px; font-weight: 600; color: var(--pale); }
.pc-tabs [role="tab"]:hover { color: var(--text); }
.pc-tabs [role="tab"][aria-selected="true"] { color: var(--accent); }
.pc-tabs [role="tab"][aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px; background: var(--accent); }
.pc-tabs [role="tab"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.pc-card { margin: 0; }
.pc-card + .pc-card { border-top: 1px solid var(--line); }
.pc-card dt { font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--xpale); }
.pc-card dd { margin: 1px 0 0; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.rel-chip { flex: none; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--tint); color: var(--accent); white-space: nowrap; }
.rel-chip:empty { display: none; }
.rel-chip.ago { background: var(--fill); color: var(--pale); }
.rel-chip.past { background: rgba(217, 48, 37, 0.1); color: #b3261e; }
.pc-empty { padding: 18px 0; }
.pc-warn { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin: 10px 0 2px; padding: 8px 10px; border-radius: 10px; background: rgba(214, 140, 20, 0.12); color: #7a4c05; font-size: 13px; }
.pc-warn > .i { width: 16px; height: 16px; flex: none; }
.pc-warn > span { flex: 1; min-width: 180px; }
.pc-warn .act-btn { height: 28px; }
.pc-warn-acts { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.pc-warn-acts.split { flex-wrap: nowrap; gap: 0; }
.pc-warn-acts.split > .act-btn { border-radius: 8px 0 0 8px; }
.pc-warn-acts.split .caret { width: 28px; padding: 0; justify-content: center; border-radius: 0 8px 8px 0; margin-left: -1px; }
.pc-warn-acts .menu { color: var(--text); min-width: 220px; }
.pc-warn-acts .menu form { margin: 0; }
.addr-form { border: 0; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.addr-row { display: grid; grid-template-columns: 1fr 64px 110px; gap: 8px; }
.ctbl small.linked { display: block; font-size: 11px; color: var(--pale); }
.ctbl .link-wrap { display: block; }
.ctbl .link-btn { display: inline-flex; align-items: center; gap: 2px; font-size: 11px; color: var(--accent); }
.ctbl .link-btn:hover { text-decoration: underline; }
.ctbl .link-btn .i { width: 12px; height: 12px; }
.ctbl .link-wrap .menu { color: var(--text); white-space: normal; }
.ctbl .link-wrap .menu form { margin: 0; }
.ctbl .act .edit-btn { height: 26px; padding: 0 10px; font-size: 12px; }
.contact-edit .dlg-body { max-height: 70vh; overflow: auto; display: grid; gap: 14px; }
.ename { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.elist { border: 0; margin: 0; padding: 0; display: grid; gap: 6px; justify-items: start; }
.elist legend { font-size: 12px; font-weight: 600; padding: 0 0 6px; }
.erow { display: flex; align-items: center; gap: 8px; width: 100%; }
.erow[hidden] { display: none; }
.erow > input[name="email"], .erow > input[name="phone"] { flex: 1; min-width: 0; height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--fill); outline: none; }
.erow > input[readonly] { color: var(--pale); }
.erow > input[type="radio"] { flex: none; margin: 0; accent-color: var(--accent); }
.erow.pp-vrow { flex-wrap: wrap; row-gap: 4px; }
.pp-vgap { flex: none; width: 13px; }
.pp-noemail { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border-radius: 8px; background: var(--fill); color: var(--pale); }
.pp-vmenu .icon-btn { width: 30px; height: 30px; }
.pp-vnote { flex-basis: 100%; display: flex; align-items: center; gap: 6px; padding-left: 21px; }
.pp-vmove { flex-basis: 100%; display: flex; align-items: center; gap: 8px; padding-left: 21px; }
.pp-vmove[hidden] { display: none; }
.pp-vmove input, .pp-vmove select { height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: var(--fill); font: inherit; }
.pp-vmove input { width: 110px; }
.erow.addr { align-items: flex-start; }
.erow.addr > input[type="radio"] { margin-top: 11px; }
.erow.addr > .row-x { margin-top: 5px; }
.egrid { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr 1fr 1fr 56px 96px; gap: 6px; }
.egrid input { min-width: 0; height: 36px; padding: 0 10px; border: 0; border-radius: 8px; background: var(--fill); outline: none; }
.egrid input[name="street"], .egrid input[name="street2"] { grid-column: span 5; }
.egrid input[name="city"] { grid-column: span 3; }
@media (max-width: 760px) {
  .ename { grid-template-columns: 1fr; }
}
.ctbl tr.hl td { background: rgba(214, 140, 20, 0.12); }
.pc-val { flex: 1; min-width: 0; display: grid; }
.pc-val small { font-size: 11px; color: var(--pale); }
.pc-val b { font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.pc-val .tag { justify-self: start; margin-top: 2px; }
.pc-none { font-size: 14px; color: var(--xpale); }
.pc-from { font-size: 11px; color: var(--xpale); }
.pc-more { justify-self: start; padding: 2px 0 0; font-size: 12px; color: var(--pale); }
.pc-more:hover { color: var(--accent); text-decoration: underline; }
.pc-acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.act-btn { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 8px; font-size: 13px; font-weight: 500; box-shadow: inset 0 0 0 1px var(--fill2); background: #fff; white-space: nowrap; }
.act-btn .i { width: 14px; height: 14px; }
.act-btn.icon-only { width: 32px; padding: 0; justify-content: center; }
.act-btn.icon-only .i { width: 16px; height: 16px; }
.act-btn:hover { background: var(--fill); }
.act-btn.tint { background: var(--tint); color: var(--accent); box-shadow: none; }
.act-btn.tint:hover { background: rgba(36, 99, 176, 0.16); }
.ccard { border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 3px rgba(13, 37, 84, 0.06); }
.ccard .scroll { border-radius: 0 0 14px 14px; }
.ccard-head { display: flex; align-items: center; gap: 12px; padding: 14px 16px 10px; }
.ccard-head h3 { font-size: 16px; font-weight: 600; }
.ccard-ic { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--tint); color: var(--accent); flex: none; }
.ccard-ic .i { width: 18px; height: 18px; }
.ccard-empty { padding: 4px 16px 16px; font-size: 14px; color: var(--pale); }
.ctbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.ctbl th { text-align: left; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--xpale); padding: 8px 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fafbfd; white-space: nowrap; }
.ctbl td { padding: 8px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.ctbl tr:last-child td { border-bottom: 0; }
.ctbl .nw { white-space: nowrap; }
.ctbl .nm { white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.ccard.tabbed { margin-top: 12px; background: none; box-shadow: none; display: grid; gap: 8px; grid-auto-rows: max-content; align-content: start; }
.ccard.tabbed[hidden] { display: none; }
.vgroup { border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }
.vg-head { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 8px 10px 12px; background: #f6f8fc; border-bottom: 1px solid var(--line); }
.vg-head > b { min-width: 0; font-size: 16px; font-weight: 600; color: var(--text); overflow-wrap: anywhere; }
.vg-meta { margin-left: auto; flex: none; font-size: 12px; color: var(--pale); white-space: nowrap; }
.vg-primary { flex: none; height: 28px; padding: 0 10px; font-size: 12px; font-weight: 600; }
.vg-fold .i { transition: transform 0.15s; }
.vgroup.folded .vg-fold .i { transform: rotate(-90deg); }
.vgroup.folded .vg-head { border-bottom: 0; }
.vgroup.folded .vg-body { display: none; }
.vg-body .ctbl th { background: none; border-top: 0; }
.row-x { width: 26px; height: 26px; color: var(--xpale); }
.row-x:hover { color: #b3261e; background: rgba(217, 48, 37, 0.08); }
.row-x .i { width: 14px; height: 14px; }
.row-x.locked { display: inline-grid; place-items: center; color: var(--xpale); cursor: help; }
.row-x.locked:hover { background: none; color: var(--pale); }
@media (max-width: 520px) {
  .vg-head { flex-wrap: wrap; row-gap: 6px; }
  .vg-head > b { flex: 1 1 calc(100% - 104px); font-size: 15px; }
  .vg-fold { order: 3; }
  .vg-head .tag, .vg-primary { order: 4; margin-left: 44px; }
  .vg-meta { order: 5; }
}
.toast { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; padding: 10px 14px; border-radius: 10px; background: rgba(30, 142, 62, 0.1); color: #1e7a3c; font-size: 14px; font-weight: 600; animation: toast-out 0.4s ease 6s forwards; }
.toast.bad { background: rgba(217, 48, 37, 0.08); color: #b3261e; animation: none; }
.toast .i { width: 16px; height: 16px; }
@keyframes toast-out { to { opacity: 0; height: 0; margin: 0; padding: 0; overflow: hidden; } }
.job-bar { position: fixed; z-index: 40; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom)); transform: translateX(-50%); display: grid; gap: 8px; width: min(520px, calc(100vw - 32px)); }
.job-bar:empty { display: none; }
.job { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 6px 6px 14px; border-radius: 10px; background: var(--bg); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16), inset 0 0 0 1px var(--line); font-size: 14px; font-weight: 500; }
.job-text { flex: 1; min-width: 0; }
.job-dot { flex: none; width: 14px; height: 14px; border-radius: 50%; }
.job.running .job-dot { border: 2px solid var(--tint); border-top-color: var(--accent); animation: spin 0.8s linear infinite; }
.job.done { color: #1e7a3c; }
.job.done .job-dot { background: #1e8e3e; }
.job.failed { color: #b3261e; }
.job.failed .job-dot { background: #d93025; }
.job-x { flex: none; }
@media (max-width: 767px) {
  .job-bar { bottom: calc(76px + env(safe-area-inset-bottom)); }
}
.dlg.wide { width: min(960px, 92vw); max-height: 85vh; }
.dlg.wide[open] { display: flex; flex-direction: column; }
.dlg.wide .dlg-body { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.dlg.wide [role="tabpanel"] { flex: 1; min-height: 0; overflow: auto; }
.dlg.wide .ctbl { min-width: max-content; }
.dlg.wide .ctbl td { white-space: nowrap; }
@media (max-width: 520px) {
  .dlg.wide { width: calc(100vw - 16px); }
}
.tab-count { display: inline-block; min-width: 18px; padding: 0 6px; margin-left: 4px; border-radius: 999px; background: var(--fill); color: var(--pale); font-size: 11px; font-weight: 600; line-height: 18px; text-align: center; }
[aria-selected="true"] > .tab-count { background: var(--tint); color: var(--accent); }
.ctbl .act { width: 44px; text-align: right; padding-right: 8px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.vchip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: var(--fill); font-size: 13px; white-space: nowrap; }
.vchip .i { color: var(--accent); }
.spill { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--fill); color: var(--pale); }
.spill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.spill.on { background: rgba(30, 142, 62, 0.1); color: #1e7a3c; }
.tpl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.tpl-form, .send-form { display: grid; gap: 12px; }
.tpl-form textarea, .send-form textarea { font: 400 14px/1.5 Inter, sans-serif; }
.tpl-preview { position: sticky; top: 80px; padding: 14px 16px; border-radius: 10px; background: var(--fill); }
.ph-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ph-list li { display: flex; align-items: center; gap: 10px; }
.send-form { max-width: 760px; }
.tok-ed { border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); }
.tok-ed:focus-within { box-shadow: inset 0 0 0 2px var(--accent); }
.tok-area { min-height: 38px; padding: 8px 12px; font: 400 14px/1.6 Inter, sans-serif; overflow-wrap: anywhere; outline: none; }
.send-form > *, .tpl-form > *, .fld > .tok-ed { min-width: 0; }
.tok-ed.rich .tok-area { height: 460px; overflow-y: auto; overscroll-behavior: contain; }
.tok-area ul, .tok-area ol, .rich-body ul, .rich-body ol { margin: 6px 0; padding-left: 24px; }
.tok-area p, .rich-body p { margin: 0 0 10px; }
.tok-area a, .rich-body a { color: var(--accent); text-decoration: underline; }
.tok-area img, .rich-body img { max-width: 100%; height: auto; }
.tok-bar { display: flex; flex-wrap: wrap; gap: 2px; padding: 4px; border-bottom: 1px solid var(--fill2); }
.tok-tool { min-width: 30px; height: 28px; padding: 0 8px; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--ink, inherit); }
.tok-tool:hover { background: var(--fill); }
.tok-tool.t-italic { font-style: italic; }
.tok-tool.t-underline { text-decoration: underline; }
.tok-tool.t-red { color: #cc0000; }
.tok-tool.t-event { display: inline-flex; align-items: center; gap: 4px; }
.event-menu, .chip-menu { width: 320px; max-height: 340px; overflow-y: auto; }
.chip-menu { display: block; position: fixed; }
.event-chip { display: grid; gap: 1px; width: 100%; padding: 7px 10px; border-radius: 6px; text-align: left; font-size: 14px; }
.event-chip b { font-weight: 600; }
.event-chip span { font-size: 12px; color: var(--pale); }
.event-chip:hover, .event-chip.on { background: var(--fill); }
.tok.tok-event { cursor: pointer; }
.tok.tok-event::after { content: "▾"; margin-left: 4px; font-size: 10px; }
.tok { display: inline-block; padding: 0 8px; margin: 0 1px; border-radius: 999px; background: var(--tint); color: var(--accent); font-size: 13px; font-weight: 500; font-style: normal; line-height: 22px; white-space: nowrap; vertical-align: baseline; cursor: default; }
.tok.filled { background: rgba(30, 142, 62, 0.12); color: #1e7a3c; }
.tok.bad { background: #fdecea; color: #b3261e; }
.tok-pal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.tok-add { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 10px; border-radius: 999px; font-size: 13px; font-weight: 500; background: var(--tint); color: var(--accent); }
.tok-add:hover { box-shadow: inset 0 0 0 1px var(--accent); }
.welcome-form { margin-top: 20px; gap: 14px; max-width: 1100px; }
.welcome-crumbs { padding-top: 20px; }
.send-line { display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; }
.send-label { flex: none; width: 88px; font-size: 12px; font-weight: 600; }
.send-line > span:not(.send-label) { font-size: 14px; }
.send-line .echips { flex: 1; min-width: 0; }
.send-line .echip { height: 32px; font-size: 14px; }
.send-line .echip.fixed { padding: 0 12px; }
.echip-mail { margin-left: 6px; font-weight: 400; color: var(--pale); }
.echip-sug .echip-mail { margin-left: 0; font-size: 14px; }
.send-line .echip-in { min-width: 200px; height: 32px; }
.echip-plus { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--accent); box-shadow: inset 0 0 0 1px var(--fill2); background: #fff; }
.echip-plus:hover { background: var(--tint); }
.echip-plus[hidden] { display: none; }
label.echip-plus { cursor: pointer; }
label.echip-plus.busy { opacity: 0.5; pointer-events: none; cursor: progress; }
.attach-chip a { color: inherit; text-decoration: none; }
.attach-chip a:hover { text-decoration: underline; }
.echips .upload-error { margin-top: 0; }
.echips .upload-error[hidden] { display: none; }
.echip-sug { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px 0 10px; border-radius: 999px; border: 1px dashed var(--fill2); background: #fff; color: var(--accent); font-size: 14px; font-weight: 500; }
.echip-sug span { color: var(--pale); font-size: 12px; font-weight: 400; }
.echip-sug:hover { border-color: var(--accent); }
.pick-chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px 0 12px; border-radius: 999px; background: var(--tint); color: var(--accent); font-size: 14px; font-weight: 500; max-width: 100%; }
.pick-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pick-chip:hover, .menu-wrap.open > .pick-chip { box-shadow: inset 0 0 0 1px var(--accent); }
.pick-menu { min-width: max-content; }
.pick-menu .menu-item { gap: 8px; cursor: pointer; white-space: nowrap; }
.pick-menu input { position: absolute; opacity: 0; pointer-events: none; }
.pick-menu .pick-check { visibility: hidden; color: var(--accent); }
.pick-menu .menu-item:has(input:checked) .pick-check { visibility: visible; }
.pick-menu .menu-item:has(input:checked) { font-weight: 600; }
.pick-menu .menu-item:has(input:focus-visible) { box-shadow: inset 0 0 0 2px var(--accent); }
.draft-body.rich-body { white-space: normal; }
.dlg.preview-dlg { width: min(680px, calc(100vw - 32px)); }
.test-to { display: flex; align-items: center; gap: 6px; }
.test-to input { flex: 1; min-width: 0; }
.fld > label { font-size: 12px; font-weight: 600; }
.mail-head div { justify-content: flex-start; gap: 12px; }
.mail-head dt { width: 64px; flex: none; }
.mail-head dd { overflow-wrap: anywhere; }
.preview-dlg .dlg-body { max-height: calc(100vh - 140px); overflow-y: auto; padding-top: 0; }
.tag.who { display: inline-flex; align-items: center; gap: 4px; background: var(--tint); color: var(--accent); white-space: nowrap; }
.tag.who:hover { box-shadow: inset 0 0 0 1px var(--accent); }
.tag.who .i { width: 13px; height: 13px; }
.code-view { display: grid; gap: 16px; padding-top: 16px; padding-bottom: 32px; }
.code-hero { display: flex; align-items: center; gap: 20px; padding: 20px 24px; }
.code-logo { width: 72px; height: 72px; flex: none; border-radius: 14px; background: var(--tint); display: grid; place-items: center; overflow: hidden; }
.code-logo img { width: 80%; height: 80%; object-fit: contain; }
.code-title { flex: 1; min-width: 0; display: grid; justify-items: start; gap: 8px; }
.code-title h1 { font-size: 28px; font-weight: 700; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.code-acts { display: grid; justify-items: end; gap: 10px; }
.code-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.code-card { padding: 20px 24px 8px; }
.code-card h2 { font-size: 18px; font-weight: 600; padding-bottom: 6px; }
.drows { margin: 0; }
.drow { display: grid; grid-template-columns: 22px minmax(110px, 0.6fr) minmax(0, 1fr); align-items: center; gap: 0 16px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 15px; }
.drow:first-child { border-top: 0; }
.drow > .i { width: 20px; height: 20px; color: var(--pale); }
.drow dt { color: var(--pale); }
.drow dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.code-card.given .drow dd { text-align: right; justify-self: end; }
.code-card .warn { margin-bottom: 16px; }
.code-card .chips-out + .pale { margin: 12px 0 12px; line-height: 1.5; }
.code-col { display: grid; gap: 16px; align-content: start; min-width: 0; }
.pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; background: var(--fill); color: var(--pale); }
.pill i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.pill.on { background: #e3f5ea; color: #1e7a45; }
@media (max-width: 760px) {
  .code-grid { grid-template-columns: 1fr; }
  .code-hero { flex-wrap: wrap; padding: 16px; gap: 14px; }
  .code-logo { width: 56px; height: 56px; }
  .code-title h1 { font-size: 22px; }
  .code-acts { width: 100%; grid-auto-flow: column; justify-content: space-between; align-items: center; }
  .code-card { padding: 16px 16px 4px; }
  .drow { grid-template-columns: 22px minmax(90px, 0.6fr) minmax(0, 1fr); }
}
.kinds { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.kind { display: flex; align-items: flex-start; gap: 12px; padding: 10px 14px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); }
.three-fld { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 12px; }
@media (max-width: 760px) {
  .three-fld { grid-template-columns: 1fr; }
}
.kind span { display: grid; gap: 2px; min-width: 0; }
.kind small { font-size: 13px; overflow-wrap: anywhere; }
.code-search { height: 36px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--fill); outline: none; min-width: 0; width: 220px; }
.again { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.btn:disabled { opacity: 0.6; cursor: default; }
.step-edit summary { list-style: none; display: grid; place-items: center; width: 26px; height: 22px; margin-top: 2px; border-radius: 6px; color: var(--xpale); cursor: pointer; }
.step-edit summary::-webkit-details-marker { display: none; }
.step-edit summary:hover, .step-edit[open] summary { background: var(--fill); color: var(--accent); }
.step-form { position: absolute; top: calc(100% + 4px); left: 50%; transform: translateX(-50%); z-index: 20; width: 250px; display: grid; gap: 10px; padding: 14px; border-radius: 12px; background: #fff; text-align: left; box-shadow: 0 0 0 1px var(--line), 0 12px 32px rgba(13, 37, 84, 0.16); }
.step-form-head { display: flex; align-items: center; justify-content: space-between; margin: -4px -6px -2px 0; }
.step-form b { font-size: 14px; }
.step-actions { display: flex; gap: 8px; }
.profile { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.pcard { padding: 14px 18px 16px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 2px rgba(0, 0, 0, 0.04); }
.pcard h4, .raw-fields h4 { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); padding-bottom: 8px; margin: 0 0 4px; border-bottom: 1px solid var(--line); }
.pgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; margin: 10px 0 0; }
.pgrid > div { min-width: 0; }
.pgrid > div.wide { grid-column: 1 / -1; }
.pgrid dt { font-size: 12px; color: var(--pale); }
.pgrid dd { margin: 2px 0 0; font-size: 14px; overflow-wrap: anywhere; display: flex; flex-wrap: wrap; gap: 4px 8px; }
.pgrid dd a { color: var(--accent); }
.pval { display: inline-flex; align-items: center; gap: 6px; }
.src { font-style: normal; font-size: 11px; color: var(--xpale); padding: 0 6px; border-radius: 4px; background: var(--fill); }
.tag { display: inline-block; padding: 1px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--fill); color: var(--pale); }
.tag.yes { background: rgba(30, 142, 62, 0.1); color: #1e7a3c; }
.tag.no { background: rgba(217, 48, 37, 0.08); color: #b3261e; }
.tag.due { background: #fdf3c4; color: #8a6a0f; }
.who-chips { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.tag.who-chip { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.tag.who-chip .i { width: 12px; height: 12px; }
.tag.who-chip.pick { border: 0; font-family: inherit; cursor: pointer; }
a.tag.who-chip:hover, .tag.who-chip.pick:hover { box-shadow: inset 0 0 0 1px currentColor; }
.past-list { display: flex; flex-direction: column; gap: 8px; }
.past-row { display: grid; grid-template-columns: 76px 120px minmax(150px, 1fr) minmax(0, 2.4fr) 28px; align-items: center; gap: 16px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--card, #fff); }
.past-day { display: flex; flex-direction: column; align-items: center; padding: 6px 0; border-radius: 8px; line-height: 1.15; color: #1f3a68; background: #e8f0fc; }
.past-day.wkday { color: #8f2236; background: #fde8ec; }
.past-day small { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.past-day b { font-size: 15px; text-transform: uppercase; }
.past-time, .past-guide, .party { display: flex; align-items: center; gap: 8px; min-width: 0; }
.past-time .i, .past-guide > .i, .party > .i { width: 18px; height: 18px; color: var(--pale); flex: none; }
.past-guide { color: var(--accent); font-weight: 600; }
.past-star { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent); color: #fff; flex: none; }
.past-star .i { width: 15px; height: 15px; }
.past-parties { display: flex; flex-direction: column; gap: 8px; padding-left: 16px; border-left: 1px solid var(--line); }
.party { flex-wrap: wrap; }
.party-name { font-size: 14px; }
.party-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--fill); font-size: 12px; font-weight: 600; color: var(--pale); }
.party .who-chips { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px; }
.past-go { display: flex; justify-content: center; color: var(--pale); }
.past-go .i { width: 18px; height: 18px; }
@media (max-width: 820px) {
  .past-row { grid-template-columns: 64px 1fr 24px; }
  .past-time { grid-column: 2; grid-row: 1; }
  .past-guide { grid-column: 2; }
  .past-parties { grid-column: 1 / 3; padding-left: 0; border-left: 0; }
  .past-go { grid-column: 3; grid-row: 1; }
}
.tag.locker-tag { display: inline-flex; align-items: center; gap: 4px; background: #f1eafa; color: #6b3fa0; }
.tag.locker-tag a { display: inline-flex; align-items: center; gap: 4px; color: inherit; }
.tag.locker-tag .i { width: 12px; height: 12px; }
.tag.locker-tag form { display: inline-flex; }
.tag-x { border: 0; background: none; padding: 0 2px; margin-right: -4px; color: inherit; font: inherit; line-height: 1; cursor: pointer; opacity: .6; }
.tag-x:hover { opacity: 1; }
.locker-chip { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.locker-chip b { font-weight: 600; }
.locker-chip.men { background: var(--tint); color: var(--accent); }
.locker-chip.women { background: rgba(217, 48, 37, 0.1); color: #b3261e; }
.locker-chip:hover { filter: brightness(0.95); }
.code-logo.women { background: rgba(217, 48, 37, 0.08); }
.tag.size-tag { font-size: 16px; padding: 4px 14px; }
.title-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.status-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.status-chip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 600; background: var(--fill); color: var(--pale); }
.status-chip span { font-weight: 500; opacity: 0.7; }
.status-chip:hover { box-shadow: inset 0 0 0 1px var(--fill2); }
.status-chip .i { width: 12px; height: 12px; }
.status-chip.open { background: #e3f5ea; color: #1e7a45; }
.status-chip.due { background: #fdf3c4; color: #8a6a0f; }
.status-chip.late { background: rgba(217, 48, 37, 0.1); color: #b3261e; }
.status-chip.on { background: var(--pale); color: #fff; }
.status-chip.open.on { background: #1e7a45; }
.status-chip.due.on { background: #8a6a0f; }
.status-chip.late.on { background: #b3261e; }
.who-wrap { position: relative; display: inline-block; }
.who-wrap:hover > .tag.who, .who-wrap:focus-within > .tag.who { box-shadow: inset 0 0 0 1.5px var(--accent); }
.who-card { display: none; position: absolute; top: 100%; left: 0; z-index: 50; width: 340px; margin-top: 10px; background: #fff; border-radius: 14px; box-shadow: 0 0 0 1px var(--line), 0 14px 36px rgba(13, 37, 84, 0.18); text-align: left; white-space: normal; font-size: 14px; font-weight: 400; color: var(--text); }
.who-card::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.who-card::after { content: ""; position: absolute; top: -6px; left: 24px; width: 12px; height: 12px; background: #fff; transform: rotate(45deg); box-shadow: -1px -1px 0 var(--line); }
.who-wrap:hover .who-card, .who-wrap:focus-within .who-card { display: block; }
.who-head { display: flex; align-items: center; gap: 14px; padding: 18px 18px 14px; border-bottom: 1px solid var(--line); }
.who-av { flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--tint); color: var(--accent); font-size: 18px; font-weight: 700; }
.who-id { display: grid; gap: 6px; min-width: 0; }
.who-name { font-size: 17px; font-weight: 700; overflow-wrap: anywhere; }
.who-name .pale { font-size: 15px; font-weight: 500; }
.who-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.tag.who-plan { background: var(--tint); color: var(--accent); }
.who-lines { display: grid; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.who-line { display: flex; align-items: center; gap: 12px; min-width: 0; overflow-wrap: anywhere; }
.who-line .i { width: 18px; height: 18px; flex: none; color: var(--pale); }
.who-line a:hover { text-decoration: underline; }
.who-link { display: flex; align-items: center; gap: 10px; margin: 12px 18px; padding: 10px 12px; border-radius: 10px; background: var(--tint); color: var(--accent); font-weight: 600; }
.who-link span { flex: 1; }
.who-link .i { width: 18px; height: 18px; }
.who-link:hover { filter: brightness(0.97); }
.who-foot { display: block; padding: 10px 18px 14px; border-top: 1px solid var(--line); font-size: 12px; color: var(--pale); }
.warn-text { color: #b3261e; }
.notes-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; }
.notes-head h2 { padding-bottom: 0; display: flex; align-items: center; gap: 8px; }
.count-pill { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px; background: var(--fill); color: var(--pale); font-size: 12px; font-weight: 600; }
.note-list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
.note-item { display: flex; align-items: flex-start; gap: 8px; padding: 8px 8px 10px 14px; border-radius: 10px; background: var(--fill); font-size: 14px; }
.note-text { flex: 1; min-width: 0; white-space: pre-line; overflow-wrap: anywhere; }
.note-item .kicker { white-space: normal; }
.hero-tags { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.tag-menu { min-width: 220px; padding: 6px 0 0; }
.tag-opt { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 14px; font-size: 14px; cursor: pointer; }
.tag-opt:hover { background: var(--fill); }
.tag-opt input { width: 16px; height: 16px; }
.tag-new { padding: 8px 10px; border-top: 1px solid var(--line); margin-top: 6px; }
.tag-new input { width: 100%; height: 34px; padding: 0 10px; border: 1px solid var(--fill2); border-radius: 8px; font: inherit; font-size: 14px; }
.form-btn { margin-top: 12px; }
.raw-fields { margin: 18px 0 8px; }
.raw-fields summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--accent); cursor: pointer; }
.raw-fields summary::-webkit-details-marker { display: none; }
.raw-fields[open] summary .i { transform: rotate(90deg); }
.raw-fields h4 { margin-top: 16px; }
.ref-panel { margin-top: 10px; padding: 14px 16px; border-radius: 12px; background: #f6f9fd; box-shadow: inset 0 0 0 1px rgba(36, 99, 176, 0.14); display: grid; gap: 8px; }
.ref-panel h4 { font-size: 14px; font-weight: 600; }
.ref-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.ref-card-form { margin: 0; display: grid; }
.ref-card { display: grid; gap: 2px; padding: 10px 12px; border-radius: 10px; background: #fff; text-align: left; box-shadow: inset 0 0 0 1px var(--fill2); transition: box-shadow 0.12s, transform 0.12s; }
.ref-card:hover, .ref-card:focus-visible { box-shadow: inset 0 0 0 2px var(--accent); outline: none; }
.ref-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ref-top b { font-size: 14px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.badge-status { flex: none; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; background: var(--fill); color: var(--pale); }
.badge-status.on { background: rgba(30, 142, 62, 0.1); color: #1e7a3c; }
.ref-meta { font-size: 12px; color: var(--pale); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ref-meta.muted { color: var(--xpale); font-style: italic; }
.ref-foot { display: flex; align-items: center; gap: 4px; margin-top: 4px; }
.ref-attach { margin-left: auto; display: inline-flex; align-items: center; gap: 3px; font-size: 12px; font-weight: 600; color: var(--accent); }
.ref-or { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--xpale); margin: 2px 0; }
.ref-or::before, .ref-or::after { content: ""; flex: 1; height: 1px; background: var(--fill2); }
.ref-panel .attach { padding: 0; max-width: none; }
.ref-panel .attach .fld input { background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); }
.btn.ghost { margin-left: auto; color: var(--pale); box-shadow: inset 0 0 0 1px var(--fill2); padding: 6px 14px; }
.btn.ghost:hover { color: var(--text); background: #fff; }
.sub-title { font-size: 14px; font-weight: 600; padding: 16px 0 4px; }
.online-section { margin-bottom: 12px; padding-bottom: 8px; border-bottom: 2px dotted var(--fill2); }
.online-toggle:not(:checked) + .online-section { display: none; }
.stepper li.online-open .dot { background: #fff; color: var(--accent); box-shadow: inset 0 0 0 2px var(--accent); }
.stepper .online-summary label { cursor: pointer; }
.step-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin-top: 4px; }
.stepper .online-summary .dot { font-size: 20px; font-weight: 500; line-height: 1; outline: 2px dotted var(--accent); outline-offset: 3px; }
.online-toggle:checked ~ .stepper .more-plus, .online-toggle:not(:checked) ~ .stepper .more-minus { display: none; }
@media (min-width: 768px) {
  .online-section { border-bottom: none; padding-bottom: 0; }
  .online-section .stepper, .stepper.online-main { grid-template-columns: 9rem; }
  .online-section .stepper li:nth-child(2)::before, .stepper.online-main li:nth-child(2)::before { left: calc(-4.5rem + 20px); }
  .online-section .stepper li:first-child::after { content: ""; position: absolute; left: calc(50% - 1px); top: 36px; bottom: -24px; border-left: 2px dotted var(--accent); }
  .online-section .stepper li:first-child :is(b, small) { position: relative; z-index: 1; padding: 0 4px; background: #fff; }
}
.attach { display: flex; align-items: flex-end; gap: 8px; padding: 12px 0 4px; max-width: 640px; }
.attach .fld { flex: 1; }
.attach .btn { height: 36px; }
.fgroup.change { margin: 4px 0 8px; max-width: 640px; }
.fgroup.change summary { padding-left: 0; color: var(--accent); font-weight: 600; }
.kvrow.ref { border-bottom: 1px solid var(--line); }
.draft { padding: 14px 16px; border-radius: 10px; background: var(--fill); max-width: 720px; display: grid; gap: 10px; }
.draft .kv { margin: 0; }
.draft .kv div { justify-content: flex-start; gap: 12px; }
.draft .kv dt { width: 64px; flex: none; }
.draft-body { margin: 0; padding: 12px 14px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); font: 400 14px/1.55 Inter, sans-serif; white-space: pre-wrap; }

.splash { position: fixed; inset: 0; z-index: 10; display: grid; place-items: center; padding: 16px; background: #0d3f9a url(/static/background.jpg) center / cover no-repeat; }
.splash-card { width: min(362px, 100%); padding: 36px 16px 40px; border-radius: 16px; display: grid; justify-items: center; gap: 14px; text-align: center; color: #fff; background: rgba(15, 23, 52, 0.55); -webkit-backdrop-filter: blur(24px) saturate(1.2); backdrop-filter: blur(24px) saturate(1.2); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.08); }
.splash-card img { width: 64px; height: auto; }
.splash-card h1 { font-size: 22px; font-weight: 600; line-height: 1.25; padding: 4px 16px 0; }
.splash-sub { font-size: 13px; color: rgba(255, 255, 255, 0.7); padding-bottom: 18px; }
.splash-google { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 44px; border-radius: 8px; background: rgba(255, 255, 255, 0.16); font-size: 15px; font-weight: 600; color: #fff; }
.splash-google:hover { background: rgba(255, 255, 255, 0.24); }
.splash-or { display: flex; align-items: center; gap: 10px; width: 100%; font-size: 12px; color: rgba(255, 255, 255, 0.6); }
.splash-or::before, .splash-or::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, 0.2); }
.splash-pin { display: grid; gap: 10px; width: 100%; }
.splash-pin input { width: 100%; height: 44px; padding: 0 14px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, 0.92); color: #0d2554; font: inherit; font-size: 15px; text-align: center; outline: none; }
.splash-pin input[name="pin"] { font-size: 22px; font-weight: 600; letter-spacing: 0.3em; }
.splash-pin input:focus { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35); }
.splash-err { width: 100%; padding: 8px 12px; border-radius: 8px; background: rgba(217, 48, 37, 0.25); font-size: 13px; }
.splash-alt { font-size: 13px; color: rgba(255, 255, 255, 0.75); }
.splash-alt:hover { color: #fff; text-decoration: underline; }
.splash-accounts { display: grid; gap: 14px; width: 100%; }
.splash-account { display: grid; justify-items: center; gap: 6px; }
.splash-account form { width: 100%; margin: 0; display: flex; justify-content: center; }
.splash-account .splash-google { height: auto; min-height: 56px; padding: 8px 14px; }
.splash-account .splash-google small { display: block; font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, 0.7); }
.splash-legal { padding-top: 6px; font-size: 12px; color: rgba(255, 255, 255, 0.6); }
.splash-legal a:hover { color: #fff; }
.login { max-width: 400px; margin: 72px auto; padding: 0 16px; display: grid; justify-items: center; gap: 18px; text-align: center; }
.login img { width: 64px; height: 64px; border-radius: 14px; }
.login h1 { font-size: 24px; font-weight: 600; }
.login a:not(.btn) { color: var(--accent); }
.doc { max-width: 720px; margin: 32px auto; font-size: 15px; line-height: 1.6; }
.doc h1 { font-size: 28px; font-weight: 600; margin-bottom: 12px; }
.doc h2 { font-size: 18px; font-weight: 600; margin: 20px 0 6px; }
.doc p { margin-bottom: 10px; }
.doc a { color: var(--accent); }
footer { display: flex; justify-content: center; gap: 16px; padding: 24px 16px 32px; font-size: 13px; color: var(--pale); }
footer a:hover { color: var(--accent); }
.shell main { padding-bottom: 32px; }

@media (max-width: 1100px) {
  :root { --side: 228px; }
  .ev-grid { grid-template-columns: 1fr; }
  .ev-side { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .side-brand b { font-size: 28px; }
}
@media (max-width: 767px) {
  :root { --gutter: 16px; --side: 280px; }
  .side { transform: translateX(-100%); transition: transform 0.2s; }
  .side-open .side { transform: none; box-shadow: 0 0 40px rgba(0, 0, 0, 0.3); }
  .side-open .side-backdrop { display: block; position: fixed; inset: 0; z-index: 35; background: rgba(0, 0, 0, 0.4); }
  .shell-main { margin-left: 0; }
  .topbar { height: 56px; gap: 10px; }
  .global-search { height: 40px; }
  .global-search kbd { display: none; }
  .hamburger { display: grid; place-items: center; width: 36px; height: 36px; margin-left: -6px; color: #114c50; }
  .shell main { padding-bottom: 90px; }
  .bottom-tabs { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(8px); border-top: 1px solid var(--line); padding: 6px 0 calc(6px + env(safe-area-inset-bottom)); }
  .bottom-tabs { overflow-x: auto; }
  .bottom-tabs .nav-item { flex: 1 0 72px; flex-direction: column; gap: 2px; font-size: 11px; text-align: center; background: none; padding: 4px; }
  .bottom-tabs .nav-item .i { width: 24px; height: 24px; }
  .bottom-tabs .nav-item.on { color: var(--accent); background: none; }
  .hero { padding: 16px var(--gutter) 24px; }
  .hero-in { flex-direction: column; gap: 16px; }
  .stat { width: 100%; margin: 0; }
  .list-head h1 { font-size: 28px; }
  .list-head .tools { width: 100%; }
  .filter-btn { min-width: 0; width: 36px; padding: 0; justify-content: center; }
  .filter-btn span, .filter-btn .sm { display: none; }
  .filter-panel { width: min(320px, calc(100vw - 32px)); }
  .av { width: 48px; height: 48px; }
  .row-link { gap: 12px; align-items: flex-start; }
  .row .chev { display: none; }
  .search-pop { position: fixed; top: 60px; left: 8px; right: 8px; }
  .detail-head { flex-wrap: wrap; gap: 16px; }
  .av.xl { width: 88px; height: 88px; }
  .contact { width: 100%; min-width: 0; }
  .crumbs b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dlg-band, .dlg-body.two { grid-template-columns: 1fr; }
  .cal-cell { min-height: 64px; padding: 3px; }
  .cal-ev { font-size: 10px; padding: 1px 3px; }
  .cal-tour { padding: 2px 3px; font-size: 10px; line-height: 13px; }
  .cal-tour > span .i { display: none; }
  .lap-chip { padding: 1px 3px; font-size: 10px; line-height: 13px; }
  .lap-chip span, .lap-chip .i { display: none; }
  .lap-choice { grid-template-columns: 1fr; }
  .day-book { margin-left: 0; }
  form.acl-row, .acl-user, form.acl-row.acl-site, form.acl-row.acl-group { grid-template-columns: 1fr; }
  .acl-site-head { display: none; }
  .ev-hero { height: 220px; }
  .ev-date { top: 10px; right: 10px; gap: 10px; padding: 8px 12px 8px 8px; }
  .ev-time { padding-left: 10px; font-size: 13px; }
  .ev-card { left: 10px; bottom: 10px; max-width: calc(100% - 20px); }
  .ev-title { font-size: 26px; }
  .ev-grid { grid-template-columns: 1fr; }
  .ev-row { flex-wrap: wrap; }
  .ev-acts { width: 100%; justify-content: flex-start; }
  .banner { font-size: 16px; }
  .top-right { gap: 4px; }
  .view-as { height: 36px; padding-left: 10px; font-size: 14px; max-width: 46vw; }
  .view-as-label { display: none; }
  .apps-menu { position: fixed; top: 60px; left: 12px; right: 12px; width: auto; }
  .stage-strip { grid-template-columns: repeat(2, 1fr); }
  .profile { grid-template-columns: 1fr; }
  .tpl { grid-template-columns: 1fr; }
  .ctbl th, .ctbl td { padding: 8px 8px; }
  .ctbl th:first-child, .ctbl td:first-child { padding-left: 14px; }
  .vchip { white-space: normal; overflow-wrap: anywhere; }
  .tpl-preview { position: static; }
  .pgrid { grid-template-columns: 1fr; }
  .stepper { grid-auto-flow: row; gap: 0; }
  .stepper li { grid-template-columns: 32px 1fr; justify-items: start; column-gap: 12px; row-gap: 0; text-align: left; padding: 0 0 18px; }
  .stepper .dot { grid-row: span 2; margin: 0; }
  .step-edit { grid-column: 2; }
  .step-form { position: static; transform: none; width: auto; margin-top: 6px; }
  .step-form.docs-form { width: auto; }
  .stepper b { padding-top: 2px; }
  .stepper li + li::before { display: none; }
  .stepper li:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 36px; bottom: 4px; width: 2px; border-radius: 1px; background: var(--fill2); }
  .stepper li:has(+ li.done)::after { background: var(--accent); }
  .stepper li:has(+ li.skipped)::after { background: var(--accent); opacity: 0.45; }
  .prog { display: none; }
  .attach { flex-direction: column; align-items: stretch; }
}

.ecal-bar { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 16px; margin: 20px 0 12px; border-radius: 12px; background: var(--fill); }
.ecal-filters { display: grid; gap: 8px; flex: 1; min-width: 260px; }
.ecal-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ecal-chip { position: relative; }
.ecal-chip input { position: absolute; opacity: 0; pointer-events: none; }
.ecal-chip span { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px 0 12px; border-radius: 999px; font-size: 14px; font-weight: 600; background: #fff; color: var(--pale); box-shadow: inset 0 0 0 1px var(--fill2); cursor: pointer; user-select: none; }
.ecal-chip span i { width: 10px; height: 10px; border-radius: 50%; background: var(--k-fg); opacity: 0.35; }
.ecal-chip input:checked + span { background: var(--k-bg); color: var(--k-fg); box-shadow: inset 0 0 0 1px var(--k-fg); }
.ecal-chip input:checked + span i { opacity: 1; }
.ecal-chip input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.ecal-quick { display: flex; gap: 14px; font-size: 13px; color: var(--accent); }
.ecal-quick a:hover { text-decoration: underline; }
.ecal-sub { margin: 0; }
.ecal-feed-dlg { width: min(480px, calc(100vw - 32px)); }
.ecal-feed { display: grid; gap: 10px; padding: 18px 20px 20px; }
.ecal-feed-head { display: flex; align-items: center; gap: 8px; font-size: 16px; }
.ecal-feed-head b { flex: 1; }
.ecal-feed-head .i { color: var(--accent); }
.ecal-feed-url { display: flex; gap: 8px; }
.ecal-feed-url input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 0; border-radius: 8px; background: var(--fill); font-size: 13px; }
.ecal-feed-links { display: flex; gap: 8px; flex-wrap: wrap; }
.ecal-grid .cal-cell { min-height: 120px; }
.ecal-grid .cal-cell.past .ecal-ev { opacity: 0.55; }
.ecal-wd { display: none; }
.ecal-ev { display: flex; align-items: center; gap: 7px; width: 100%; min-width: 0; padding: 4px 6px; border-radius: 6px; background: var(--k-bg); color: var(--k-fg); font-size: 12px; line-height: 16px; text-align: left; }
.ecal-ev.pic { padding: 4px; }
.ecal-ev:hover { box-shadow: inset 0 0 0 1px var(--k-fg); }
.ecal-ev img { flex: none; width: 44px; height: 44px; border-radius: 5px; object-fit: cover; background: var(--fill); }
.ecal-ev-text { display: grid; gap: 1px; min-width: 0; }
.ecal-ev b { font-weight: 500; opacity: 0.85; }
.ecal-ev-text span { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.ecal-ev.pic .ecal-ev-text span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ecal-grid .cal-cell { container-type: inline-size; }
@container (max-width: 130px) {
  .ecal-ev img { display: none; }
  .ecal-ev.pic { padding: 4px 6px; }
}
.k0 { --k-bg: #e3edfa; --k-fg: #2463b0; }
.k1 { --k-bg: #fbe7e4; --k-fg: #b3413f; }
.k2 { --k-bg: #e2f2e8; --k-fg: #2f7d4f; }
.k3 { --k-bg: #fdf3c4; --k-fg: #8a6a0f; }
.k4 { --k-bg: #efe6f7; --k-fg: #6e3fa3; }
.k5 { --k-bg: #fde9d7; --k-fg: #b05a14; }
.k6 { --k-bg: #dff3f3; --k-fg: #1d7373; }
.k7 { --k-bg: #fbe4ef; --k-fg: #a8336b; }
.ecal-dlg { width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow-y: auto; }
.ecal-dlg-img { display: block; width: 100%; max-height: 240px; object-fit: cover; }
.ecal-dlg-img[hidden] { display: none; }
.ecal-dlg .dlg-body { display: grid; gap: 10px; padding: 16px 20px 20px; }
.ecal-dlg-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ecal-dlg-head h3 { font-size: 20px; font-weight: 700; color: var(--dark); padding-top: 4px; }
.ecal-dlg-row { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; }
.ecal-dlg-row[hidden] { display: none; }
.ecal-dlg-row .i { margin-top: 2px; color: var(--pale); }
.ecal-dlg-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.ecal-dlg-tags .tag { padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--fill); color: var(--pale); }
.ecal-sales { display: grid; gap: 6px; padding: 12px 14px; border-radius: 10px; background: var(--tint); font-size: 13px; }
.ecal-sales[hidden] { display: none; }
.ecal-sales b { font-size: 14px; color: var(--dark); }
.ecal-sales-part { display: grid; gap: 6px; }
.ecal-sales-part[hidden], .ecal-staff-more[hidden] { display: none; }
.ecal-staff-more { display: grid; gap: 8px; }
.ecal-more { display: flex; align-items: center; gap: 4px; justify-self: start; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--pale); cursor: pointer; }
.ecal-more .i { transition: transform 0.15s; }
.ecal-more[aria-expanded="true"] .i { transform: rotate(180deg); }
.ecal-sales-tbl { width: 100%; border-collapse: collapse; }
.ecal-sales-tbl th, .ecal-sales-tbl td { padding: 4px 6px; text-align: right; white-space: nowrap; }
.ecal-sales-tbl th:first-child, .ecal-sales-tbl td:first-child { text-align: left; white-space: normal; padding-left: 0; }
.ecal-sales-tbl thead th { font-weight: 600; color: var(--pale); border-bottom: 1px solid var(--fill2); }
.ecal-sales-tbl tfoot th, .ecal-sales-tbl tfoot td { font-weight: 700; border-top: 1px solid var(--fill2); }
.ecal-dlg-about { display: grid; gap: 8px; font-size: 14px; line-height: 1.55; color: var(--pale); white-space: pre-line; }
.ecal-dlg-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ecal-add .menu { top: auto; bottom: calc(100% + 6px); }
.ecal-dlg [data-url][hidden] { display: none; }
.ecal-link { display: grid; gap: 4px; }
.ecal-link-view { display: flex; align-items: center; gap: 2px; min-width: 0; }
.ecal-link-view[hidden], .ecal-slug-row[hidden], .ecal-link small[hidden] { display: none; }
.ecal-link-view a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; color: var(--accent); }
.ecal-slug-row { display: flex; align-items: center; gap: 6px; margin: 0; }
.ecal-slug-row input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 0; border-radius: 8px; background: var(--bg); font-size: 13px; }
.ecal-link .err { color: #d93025; }

@media (max-width: 640px) {
  .ecal-bar { padding: 12px; margin-top: 12px; }
  .ecal-sub, .ecal-sub .btn { width: 100%; }
  .ecal-grid { grid-template-columns: 1fr; }
  .ecal-grid .cal-dow, .ecal-grid .cal-cell.out, .ecal-grid.this-month .cal-cell.past, .ecal-grid .cal-cell:not(:has(.ecal-ev)) { display: none; }
  .ecal-grid .cal-cell { min-height: 0; padding: 10px 12px; gap: 6px; }
  .ecal-grid .cal-n { text-align: left; font-size: 13px; font-weight: 600; }
  .ecal-wd { display: inline; }
  .ecal-ev { padding: 8px 10px; gap: 12px; font-size: 14px; line-height: 18px; }
  .ecal-ev.pic { padding: 6px; }
  .ecal-ev img { width: 52px; height: 52px; border-radius: 6px; }
  .ecal-ev-text { grid-template-columns: 72px 1fr; align-items: center; column-gap: 8px; }
  .lap-cal { grid-template-columns: 1fr; }
  .lap-cal .cal-dow, .lap-cal .cal-cell.out, .lap-cal.this-month .cal-cell.past, .lap-cal .cal-cell:not(:has(.lap-chip)) { display: none; }
  .lap-cal .cal-cell { min-height: 0; padding: 10px 12px; flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .lap-cal .cal-n { flex-basis: 100%; text-align: left; font-size: 13px; font-weight: 600; }
  .lap-wd { display: inline; }
  .lap-cal .lap-chip { padding: 4px 8px; font-size: 13px; line-height: 18px; }
  .lap-cal .lap-chip span { display: inline; }
  .lap-cal .lap-chip .i { display: inline-block; }
}
.install-overlay { position: fixed; inset: 0; z-index: 60; display: flex; align-items: flex-end; justify-content: center; padding: 16px 16px calc(16px + env(safe-area-inset-bottom)); background: rgba(13, 37, 84, 0.45); }
.install-card { position: relative; width: 100%; max-width: 420px; display: grid; justify-items: center; gap: 8px; padding: 28px 22px 22px; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 16px 48px rgba(13, 37, 84, 0.3); }
.install-close { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 50%; font-size: 24px; line-height: 1; color: var(--pale); }
.install-close:hover { background: var(--fill); }
.install-icon { width: 72px; height: 72px; border-radius: 16px; box-shadow: 0 0 0 1px var(--line), 0 4px 12px rgba(13, 37, 84, 0.15); margin-bottom: 4px; }
.install-title { font-size: 18px; font-weight: 700; color: var(--dark); }
.install-desc { font-size: 14px; color: var(--pale); }
.install-hint { margin-top: 6px; padding: 10px 14px; border-radius: 12px; background: var(--tint); color: var(--dark); font-size: 14px; font-weight: 500; line-height: 24px; }
.install-glyph { display: inline-block; width: 20px; height: 20px; vertical-align: -4px; color: var(--accent); }
.install-add { margin-top: 6px; width: 100%; }
.merge-group { margin: 18px 0; padding: 4px 16px 14px; border-radius: 14px; background: #f1f4f9; box-shadow: inset 0 0 0 1px var(--line); }
.merge-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 0 8px; }
.merge-head h3 { font-size: 18px; font-weight: 600; }
.merge-group .tbl { border-collapse: separate; border-spacing: 0 6px; }
.merge-group .tbl th { border-bottom: 0; }
.merge-group .tbl td { background: #fff; border-bottom: 0; vertical-align: top; }
.merge-group .tbl td:first-child { border-radius: 10px 0 0 10px; }
.merge-group .tbl td:last-child { border-radius: 0 10px 10px 0; }
.merge-group .tbl tr.merge-primary td { background: #dde8f7; box-shadow: inset 0 1px 0 #b9cdec, inset 0 -1px 0 #b9cdec; }
.merge-group .tbl tr.merge-primary td:first-child { box-shadow: inset 4px 0 0 var(--accent), inset 0 1px 0 #b9cdec, inset 0 -1px 0 #b9cdec; }
.merge-group .tbl tr.merge-blocked td { background: rgba(255, 255, 255, 0.55); color: var(--pale); }
.merge-tag { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; background: var(--accent); color: #fff; }
.merge-name { font: inherit; font-weight: 600; color: var(--accent); text-align: left; text-decoration: underline; text-decoration-color: rgba(36, 99, 176, 0.35); text-underline-offset: 3px; }
.merge-name:hover { text-decoration-color: var(--accent); }
.merge-plan { white-space: nowrap; }
.merge-plan + .merge-plan { margin-top: 4px; }
.merge-foot { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 8px; }
.merge-dlg .erow > .pill { flex: none; }
.merge-partner-btn { white-space: nowrap; }
.merge-partner { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; background: #f3e8fb; color: #7b3fa8; white-space: nowrap; }
.merge-key { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px 16px; margin: 0; padding: 10px 14px; border-radius: 10px; background: var(--tint); box-shadow: inset 4px 0 0 var(--accent); }
.merge-key label { font-size: 12px; font-weight: 600; color: var(--pale); }
.merge-key input, .merge-key select { width: 100%; max-width: 240px; height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: var(--bg); outline: none; font: inherit; font-weight: 600; }
@media (max-width: 640px) {
  .merge-group { padding: 4px 10px 12px; }
  .merge-dlg .erow { flex-wrap: wrap; }
}
.rv-group { display: grid; gap: 12px; margin: 18px 0; padding: 4px 14px 14px; border-radius: 16px; background: #e1eff0; box-shadow: inset 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); scroll-margin-top: 80px; }
.rv-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 4px 0; }
.rv-head h3 { font-size: 20px; font-weight: 700; }
.rv-type { padding: 3px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; background: #eef3fb; color: var(--accent); }
.rv-sides { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; }
.sync-steps { margin: 8px 0 0; padding-left: 20px; }
.sync-steps li + li { margin-top: 2px; }
.sync-steps li:last-child { font-weight: 600; }
.rv-household { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; }
.rv-side { display: grid; gap: 6px; align-content: start; padding: 12px 14px 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 2px rgba(0, 0, 0, 0.04); }
.rv-side h4 { font-size: 16px; font-weight: 600; }
.rv-side.member h4 > span:first-child { color: var(--accent); }
.rv-side.spouse h4 > span:first-child { color: #7b3fa8; }
.rv-name-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rv-name-pick { height: 32px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; font: inherit; font-weight: 600; color: var(--text); cursor: pointer; }
.rv-name-pick:hover, .rv-name-pick:focus { background: #fff; outline: none; box-shadow: inset 0 0 0 1px var(--fill2); }
.rv-name-edit { display: inline-flex; gap: 6px; }
.rv-name-edit input { width: 130px; height: 32px; padding: 0 10px; border: 0; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); font: inherit; font-weight: 600; outline: none; }
.rv-name-btn .i { width: 16px; height: 16px; }
.rv-name-row .rv-remove-spouse { display: inline-flex; align-items: center; gap: 6px; margin-left: 8px; font-weight: 400; }
.rv-cards { display: flex; flex-direction: column; gap: 10px; padding-top: 6px; }
.rv-contact { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 14px 16px; border-radius: 12px; background: #fff; border: 1.5px dotted rgba(51, 51, 51, 0.3); }
.rv-contact:has(input[name^="primary"]:checked) { order: -1; border-color: var(--accent); box-shadow: inset 4px 0 0 var(--accent); }
.rv-contact:has(input[name^="primary"]:checked) .rv-merge { display: none; }
.rv-avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 16px; font-weight: 700; }
.rv-avatar.member { background: #dde8f7; color: var(--accent); }
.rv-avatar.spouse { background: #f3e8fb; color: #7b3fa8; }
.rv-body { display: grid; gap: 4px; min-width: 0; }
.rv-name { font-size: 17px; font-weight: 600; }
.rv-flags { display: flex; gap: 6px; flex-wrap: wrap; padding: 2px 0; }
.rv-plans { display: grid; gap: 4px; padding-top: 8px; border-top: 1px solid var(--line); }
.rv-values { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px 0; }
.rv-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 3px 4px 3px 10px; border-radius: 999px; background: var(--fill); font-size: 14px; }
.rv-chip > .i { width: 15px; height: 15px; color: var(--pale); flex: none; }
.rv-chip-v { min-width: 0; overflow-wrap: anywhere; }
.rv-chip-to { font-size: 12px; font-weight: 600; color: #b3261e; white-space: nowrap; }
.rv-chip-to:empty { display: none; }
.rv-chip-btn { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: 14px; font-weight: 700; color: var(--pale); }
.rv-chip-btn:hover { background: rgba(0, 0, 0, 0.08); color: var(--text); }
.rv-group [hidden] { display: none !important; }
.rv-chip.rv-warn { background: #fff4ce; box-shadow: inset 0 0 0 1px #f0d46a; color: #6b5300; }
.rv-chip.rv-warn > .rv-warn-icon { color: #b58500; }
.rv-contact { position: relative; }
.rv-badges { position: absolute; top: 10px; right: 12px; display: flex; gap: 6px; }
.rv-contact:has(.rv-badges) .rv-name { padding-right: 120px; }
.rv-badge { position: relative; display: inline-flex; align-items: center; gap: 2px; height: 26px; padding: 0 9px; border-radius: 999px; font-size: 14px; font-weight: 700; cursor: default; outline: none; }
.rv-badge .i { width: 14px; height: 14px; }
.rv-badge.sub { background: #e3f5ea; color: #1e7a45; }
.rv-badge.site { background: #f3e8fb; color: #7b3fa8; }
.rv-badge[data-tip]::after { left: auto !important; right: 0; }
.rv-chip[data-tip], .rv-source[data-tip] { position: relative; }
.rv-source[data-tip] { width: fit-content; text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }
.rv-badge[data-tip]:hover::after, .rv-badge[data-tip]:focus::after, .rv-chip[data-tip]:hover::after, .rv-chip[data-tip]:focus-within::after, .rv-source[data-tip]:hover::after, .rv-source[data-tip]:focus::after { content: attr(data-tip); position: absolute; left: 0; top: calc(100% + 6px); z-index: 20; width: max-content; max-width: 280px; padding: 8px 10px; border-radius: 8px; background: #2b2b2b; color: #fff; font-size: 12px; font-weight: 500; line-height: 1.45; white-space: pre-line; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2); pointer-events: none; }
.rv-chip.rv-out, .rv-chip.rv-gone { background: #fdecea; box-shadow: inset 0 0 0 1px #f5c2bd; }
.rv-chip.rv-out .rv-chip-v, .rv-chip.rv-gone .rv-chip-v { text-decoration: line-through; text-decoration-color: rgba(197, 34, 31, 0.6); color: #8c3a35; }
.rv-chip.rv-out .rv-move-btn, .rv-chip.rv-gone .rv-move-btn { display: none; }
.rv-chip.rv-out .rv-edit-btn, .rv-chip.rv-gone .rv-edit-btn { display: none; }
.rv-chip.rv-edited { background: #eef3fb; box-shadow: inset 0 0 0 1.5px var(--accent); }
.rv-chip-edit { min-width: 0; height: 24px; padding: 0 8px; border: 0; border-radius: 6px; background: #fff; box-shadow: inset 0 0 0 1px var(--accent); font: inherit; outline: none; }
.rv-add-box { display: flex; flex-direction: column; gap: 8px; }
.rv-added { display: flex; flex-wrap: wrap; gap: 6px; }
.rv-added:empty { display: none; }
.rv-add-row { display: flex; gap: 6px; align-items: center; }
.rv-add-input { flex: 1; min-width: 0; max-width: 280px; height: 32px; padding: 0 10px; border: 0; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); font: inherit; outline: none; }
.rv-add-input:focus { box-shadow: inset 0 0 0 1.5px var(--accent); }
.ready-line { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; font-size: 14px; }
.ready-line > .pale { min-width: 72px; }
.ready-chips { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; }
.ready-error { display: flex; align-items: center; gap: 6px; margin: 0; color: #8c3a35; font-size: 13px; }
.rv-shared { margin: 0; padding: 12px 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 2px rgba(0, 0, 0, 0.04); }
.rv-shared h4 { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 14px; }
.rv-contact.rv-sub { padding: 10px 12px; opacity: 0.85; }
.rv-flag.syncing { background: var(--tint); color: var(--accent); }
.rv-syncing { box-shadow: 0 0 0 2px var(--accent); }
.rv-done-list { display: flex; flex-direction: column; gap: 6px; margin: 8px 0 16px; }
.rv-done { padding: 8px 12px; border-radius: 10px; background: #e3f5ea; }
.rv-done.bad { background: #fdecea; }
.rv-done summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.rv-done p { margin: 6px 0 0; }
.bulk-run { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.bulk-run .bulk-line { display: flex; align-items: center; gap: 8px; margin: 0; flex: 1 1 320px; }
.bulk-run form { margin: 0; }
.rv-alert { margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #fdecea; box-shadow: inset 0 0 0 1px #f5c2bd; color: #8c3a35; font-size: 13px; display: flex; flex-direction: column; gap: 8px; }
.rv-alert-text { display: flex; align-items: flex-start; gap: 6px; }
.rv-alert-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ready-card form { margin-top: 8px; }
.mi-compare { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 10px; margin: 12px 0; }
.mi-side { border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.mi-here { background: #fdecea; box-shadow: inset 0 0 0 1px #f5c2bd; }
.mi-home { background: #e3f5ea; box-shadow: inset 0 0 0 1px #b7dfc5; }
.mi-arrow { display: flex; align-items: center; color: var(--pale); }
.mi-why { margin: 4px 0 8px; }
.mi-source { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; }
.mi-record { display: flex; align-items: center; gap: 6px; }
.mi-fix { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.mi-fix label { display: inline-flex; align-items: center; gap: 4px; }
.mi-number { width: 90px; }
@media (max-width: 700px) {
  .mi-compare { grid-template-columns: 1fr; }
  .mi-arrow { transform: rotate(90deg); justify-content: center; }
}
.po-list { display: flex; flex-direction: column; gap: 12px; }
.po-card { padding: 14px 16px; border-radius: 14px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), inset 0 0 0 1px var(--line); }
.po-row { display: grid; grid-template-columns: minmax(260px, 1.3fr) minmax(240px, 1.2fr) minmax(200px, 1fr); gap: 0; align-items: stretch; }
.po-order { display: flex; flex-direction: column; gap: 8px; }
.po-line { display: flex; gap: 26px; align-items: flex-start; padding-left: 14px; font-size: 14px; }
.po-line .i { width: 18px; height: 18px; }
.po-line .po-status { display: table; margin: 4px 0 0; }
.po-line > div > b { font-size: 14px; }
.po-row > * { padding: 4px 16px; min-width: 0; }
.po-row > *:not(:first-child):not(.po-member) { border-left: 1px solid var(--line); }
.po-row > :first-child { padding-left: 0; }
.po-buyer { display: flex; gap: 12px; align-items: center; }
.po-buyer b { font-size: 15px; }
.po-when-icon { flex: none; width: 18px; height: 18px; margin-top: 1px; color: #c5221f; }
.po-plan-icon { flex: none; width: 22px; height: 22px; margin-top: 1px; }
.po-plan-icon.single { color: #1e9a52; }
.po-plan-icon.family { color: var(--accent); }
.po-plan-icon.other { color: var(--pale); }
.po-status { display: inline-block; margin-top: 6px; padding: 2px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; background: var(--fill); color: var(--pale); }
.po-status.on { background: #e3f5ea; color: #1e7a45; }
.po-avatar { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-size: 16px; font-weight: 700; }
.po-avatar.violet { background: #ece8fb; color: #5b45b0; }
.po-avatar.blue { background: #dde8f7; color: var(--accent); }
.po-avatar.rose { background: #fbe6ea; color: #b23a55; }
.po-avatar.green { background: #e3f5ea; color: #1e7a45; }
.po-avatar.amber { background: #fdf2d8; color: #9a6a00; }
.po-avatar.teal { background: #dff3f2; color: #1c7a74; }
.po-buyer .pale { overflow-wrap: anywhere; }
.po-member { display: flex; flex-direction: column; gap: 6px; padding: 10px 14px !important; border-radius: 10px; background: var(--fill); }
.po-alert-top { display: grid; gap: 10px; margin-bottom: 12px; padding: 10px 14px; border-radius: 10px; background: #fdecea; box-shadow: inset 0 0 0 1px #f6cfcb; }
.po-alert-line { display: flex; gap: 8px; align-items: flex-start; color: #b3261e; font-size: 14px; font-weight: 600; line-height: 1.35; }
.po-tiles { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; }
.po-tiles .po-tile { flex: 1 1 150px; max-width: 260px; }
.po-tiles .po-add { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; min-width: 44px; padding: 0 12px; border: 0; color: var(--accent); }
.po-tiles .po-add[hidden] { display: none; }
.po-tiles .po-input { align-self: center; width: 110px; background: #fff; }
.po-find { position: relative; align-self: center; }
.po-tiles .po-find .po-input { width: 190px; }
.po-hits { position: absolute; top: calc(100% + 4px); left: 0; z-index: 30; width: 280px; max-height: 320px; overflow-y: auto; margin: 0; padding: 4px; list-style: none; border-radius: 10px; background: #fff; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), inset 0 0 0 1px var(--line); }
.po-hits[hidden] { display: none; }
.po-hits li { display: grid; gap: 1px; padding: 6px 10px; border-radius: 8px; cursor: pointer; }
.po-hits li.on, .po-hits li:hover { background: var(--fill); }
.po-hits small { color: var(--pale); }
.po-tile { position: relative; display: grid; align-content: start; gap: 2px; padding: 10px 12px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 14px; line-height: 1.35; cursor: pointer; }
.po-tile:hover { box-shadow: inset 0 0 0 1.5px var(--soft); }
.po-tile input { position: absolute; opacity: 0; pointer-events: none; }
.po-tile:has(input:checked) { background: var(--tint); box-shadow: inset 0 0 0 2px var(--accent); }
.po-tile:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.po-bulk { position: sticky; top: 76px; z-index: 5; display: flex; justify-content: flex-end; margin: 0 0 12px; }
.po-bulk[hidden] { display: none; }
.mc-field { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; align-items: start; padding: 4px 0; }
.mc-label { padding-top: 10px; font-size: 13px; font-weight: 600; color: var(--pale); }
.mc-field.changed .mc-label { color: var(--accent); }
.mc-field .rv-values { padding: 4px 0; }
.mc-chip { padding-right: 10px; }
.mc-tag { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.75; white-space: nowrap; }
.mc-note { display: flex; gap: 6px; align-items: flex-start; margin: 0; padding: 8px 10px; border-radius: 8px; background: #e3f5ea; color: #1e5c36; font-size: 13px; }
.mc-note.gone { background: #fdecea; color: #8c3a35; }
.mc-person.ending { box-shadow: inset 0 0 0 1.5px #f5c2bd; }
.mc-legend { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 10px; }
.rv-group > .rv-shared + .rv-shared { margin-top: 10px; }
@media (max-width: 720px) {
  .mc-field { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .mc-label { padding-top: 4px; }
}
.um-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(280px, 1.4fr); gap: 16px; align-items: start; }
.um-what { display: grid; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.um-actions { display: grid; gap: 10px; padding: 10px 14px; border-radius: 10px; background: var(--fill); }
.um-link-head { display: flex; align-items: center; gap: 8px; font-size: 15px; }
.um-link-head .i { width: 18px; height: 18px; color: var(--accent); }
.um-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.um-match { display: grid; gap: 8px; padding: 12px 14px; border-radius: 10px; background: #effaf3; box-shadow: inset 0 0 0 1px #c9ebd6; }
.um-match-head { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #1e7a45; font-weight: 600; }
.um-match-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; background: #fff; }
.mc-hist-title { margin-bottom: 14px; font-size: 26px; }
.mc-hist-card { overflow: hidden; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--line); }
.mc-hist { margin: 0; }
.mc-hist thead tr { background: var(--fill); }
.mc-hist td, .mc-hist th { padding: 16px 20px; border: 0; }
.mc-hist td { vertical-align: middle; }
.mc-hist tbody tr + tr td { box-shadow: inset 0 1px 0 var(--line); }
.mc-hist th { font-size: 14px; font-weight: 500; color: var(--pale); }
.mc-who { display: flex; align-items: center; gap: 12px; }
.mi-member { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 0; }
.mi-member + .mi-member { box-shadow: inset 0 1px 0 var(--line); }
.mi-ok { margin-left: auto; }
.mi-uses { flex-basis: 100%; margin: 0; padding-left: 18px; }
.mi-partners { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 2px 16px; }
.mi-remove { margin-top: 8px; }
.mi-note { margin: 8px 0 0; padding: 8px 12px; border-radius: 8px; background: #effaf3; color: #1e7a45; }
.mi-note.mi-error { background: #fdecea; color: #b3261e; }
.mi-done td { opacity: .6; }
.mi-done .mi-note { opacity: 1; }
.mc-who-text { min-width: 0; }
.mc-who-text b { font-size: 15px; }
.mc-live .rv-chip-btn { opacity: 0; }
.mc-live:hover .rv-chip-btn, .mc-live:focus-within .rv-chip-btn, .mc-live.rv-gone .rv-chip-btn { opacity: 1; }
.mc-field { display: inline-flex; align-items: center; margin: 2px 6px 2px 0; padding: 4px 12px; border-radius: 999px; background: var(--fill); font-size: 13px; font-weight: 600; white-space: nowrap; }
.mc-out { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px 5px 9px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.mc-out.ok { background: #e3f5ea; color: #1e7a45; }
.mc-out.ok .i circle { fill: currentColor; }
.mc-out.ok .i path { stroke: #fff; }
.mc-out.no { background: #fdecea; color: #b3261e; }
.mc-out.flat { background: var(--fill); color: var(--pale); }
.mc-det { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; }
.mc-det .i { margin-top: 3px; flex: none; color: var(--xpale); }
.um-pick { display: grid; place-items: center; flex: none; cursor: pointer; }
.um-pick input { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; }
.um-match-who { flex: 1; min-width: 0; }
.um-match-who b { font-size: 15px; }
.um-or { display: flex; align-items: center; gap: 12px; color: var(--xpale); font-size: 12px; font-weight: 600; }
.um-or::before, .um-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.um-search { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); color: var(--pale); }
.um-search:focus-within { box-shadow: inset 0 0 0 1.5px var(--accent); }
.um-search .i { width: 18px; height: 18px; flex: none; }
.um-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent; font: inherit; font-size: 15px; color: var(--text); }
.um-link .btn { height: 44px; }
.um-guess { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #1e7a45; }
.um-guess .i { flex: none; }
.um-add { padding-top: 2px; }
.um-add summary { display: inline-flex; list-style: none; cursor: pointer; }
.um-add summary::-webkit-details-marker { display: none; }
.um-add-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin-top: 10px; }
.um-add-form label { display: grid; gap: 4px; font-size: 13px; color: var(--pale); }
.um-add-form input, .um-add-form select { background: #fff; }
.um-add-form button { grid-column: 1 / -1; justify-self: start; }
@media (max-width: 720px) {
  .um-row, .um-add-form, .um-link { grid-template-columns: minmax(0, 1fr); }
  .um-link .btn { justify-self: start; }
}
.me-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding-top: 20px; padding-bottom: 32px; }
.me-page > .toast, .me-page > .note { margin: 0; padding: 0; }
.me-page > .dash-banner { margin: 0; }
.me-card { border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 1px 3px rgba(13, 37, 84, 0.05); }
.me-pill { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 13px; font-weight: 600; vertical-align: middle; white-space: nowrap; }
.me-pill.big { height: 30px; padding: 0 14px; font-size: 14px; }
.me-pill.f { background: #fde3dc; color: #d4472a; }
.me-pill.m, .me-pill.blue { background: #e1edfb; color: #1f66b8; }
.me-pill.u, .me-pill.gray { background: var(--fill); color: var(--pale); }
.me-pill.green { background: #e1f3e8; color: #1e7a3c; }
.me-who { display: flex; align-items: center; gap: 20px; min-width: 0; }
.me-who h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.me-who h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 22px; font-weight: 700; }
.me-who small { display: block; margin-top: 4px; font-size: 14px; color: var(--pale); }
.av.me-av { border-radius: 50%; background: #fff; }
.av.me-av.xl { width: 150px; height: 150px; }
.av.me-av.md { width: 84px; height: 84px; }
.me-pills { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 8px; }
.me-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; }
.me-head-tools { align-self: flex-start; }
.me-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin: 16px 0 4px; padding: 14px 18px; border-radius: 12px; background: #ffe680; box-shadow: inset 0 0 0 1px rgba(214, 160, 0, 0.45); font-size: 14px; }
.me-banner[hidden] { display: none; }
.me-banner > .i { flex: none; color: #8a5a00; }
.me-banner > div:first-of-type { flex: 1; min-width: 200px; display: grid; gap: 2px; }
.me-banner > div:first-of-type span { color: #6b4e00; }
.me-banner-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.me-banner-acts .btn { height: 38px; padding: 0 16px; }
.me-sub-opt { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.6); cursor: pointer; }
.me-sub-opt input { width: 16px; height: 16px; accent-color: #1e8a50; }
.me-confirm { display: flex; gap: 16px; max-width: 660px; padding: 20px 24px; border-radius: 16px; background: #edf7f1; }
.me-confirm-ic { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #1e8a50; color: #fff; }
.me-confirm-ic .i { width: 26px; height: 26px; stroke-width: 2.5; }
.me-confirm h2 { font-size: 18px; font-weight: 700; }
.me-confirm p { margin: 6px 0 14px; font-size: 14px; line-height: 1.6; color: var(--pale); }
.me-confirm-acts { display: flex; flex-wrap: wrap; gap: 12px; }
.me-confirm-acts .btn { height: 40px; padding: 0 16px; font-size: 15px; }
.btn.me-ok { background: #fff; color: #1e7a3c; box-shadow: inset 0 0 0 1.5px #3aa86a; }
.btn.me-ok .i { color: #1e8a50; }
.btn.me-ok:hover { background: #f4fbf7; }
.me-people { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr)); gap: 18px; align-items: start; }
.me-pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; }
.me-person { padding: 18px; }
.me-band { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding: 18px 20px; border-radius: 16px; }
.me-band.f { background: #fdf1ee; }
.me-band.m { background: #eef4fc; }
.me-band.u { background: var(--fill); }
.me-band .me-who { flex: 1 1 260px; gap: 18px; }
.me-band.f .av.me-av { box-shadow: 0 0 0 3px #fff, 0 0 0 5px #f2a48f; }
.me-band.m .av.me-av { box-shadow: 0 0 0 3px #fff, 0 0 0 5px #8db7e6; }
.me-band-tools { display: flex; gap: 10px; align-self: flex-start; }
.me-tool { width: 42px; height: 42px; border-radius: 12px; background: #fff; color: var(--text); box-shadow: inset 0 0 0 1px var(--line), 0 1px 2px rgba(13, 37, 84, 0.06); }
.me-tool .i { width: 18px; height: 18px; }
.me-tool:hover { background: var(--fill); }
.me-vrow .me-tool, .me-line .me-tool, .me-rows .me-tool { width: 32px; height: 32px; border-radius: 8px; background: transparent; box-shadow: none; color: var(--pale); }
.me-more .menu .menu-item { white-space: nowrap; }
.me-cols { display: grid; grid-template-columns: 1fr 1.25fr; gap: 16px; padding-top: 16px; }
.me-col { display: grid; gap: 16px; align-content: start; min-width: 0; }
.me-box { border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.me-box-head { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 6px 8px 6px 18px; border-radius: 14px 14px 0 0; background: var(--fill); }
.me-box-head > .i { flex: none; width: 22px; height: 22px; }
.me-box-head h3 { flex: 1; font-size: 16px; font-weight: 700; }
.me-box-head .me-tool { width: 38px; height: 38px; border-radius: 10px; }
.me-box-body { display: grid; gap: 16px; padding: 16px 18px 18px; border-radius: 0 0 14px 14px; }
.me-box.f .me-box-head { background: #fdeeea; color: #b8402a; }
.me-box.m .me-box-head { background: #e9f1fc; color: #1f5fae; }
.me-box.amber .me-box-head { background: #fdf3dc; color: #a86a00; }
.me-box.amber .me-box-body { background: #fffaf0; }
.me-box.mint .me-box-head { background: #e3f4ec; color: #1e7a45; }
.me-box.mint .me-box-body { background: #f6fbf8; }
.me-box.lav .me-box-head { background: #ecebfb; color: #4b44b8; }
.me-fact { display: flex; gap: 16px; align-items: flex-start; }
.me-fact > .i { flex: none; width: 24px; height: 24px; margin-top: 2px; color: var(--pale); }
.me-fact small { display: flex; align-items: center; min-height: 24px; font-size: 14px; color: var(--pale); }
.me-fact b { display: block; font-size: 14px; font-weight: 400; overflow-wrap: anywhere; }
.me-paper { display: grid; gap: 12px; justify-items: start; font-size: 14px; }
.me-chip { display: inline-flex; align-items: center; gap: 4px; padding-right: 4px; }
.me-chip-x { display: inline-grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.me-chip-x:hover { background: rgba(30, 122, 69, 0.15); }
.me-chip-x .i { width: 12px; height: 12px; }
.me-seg { display: inline-flex; padding: 3px; border-radius: 10px; background: var(--fill); }
.me-seg-btn { min-width: 64px; height: 34px; padding: 0 14px; border: 0; border-radius: 8px; background: transparent; color: var(--pale); font: 600 14px Inter, sans-serif; cursor: pointer; }
.me-seg-btn:hover { color: var(--text); }
.me-seg-btn.on { background: #fff; color: #155d62; box-shadow: 0 1px 3px rgba(13, 37, 84, 0.12); }
.me-vlist { display: grid; gap: 2px; }
.me-vrow { display: flex; align-items: center; gap: 10px; }
.me-vmain { flex: 1; min-width: 0; display: grid; gap: 6px; justify-items: start; }
.me-v { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; overflow-wrap: anywhere; }
.me-v .me-mark { margin: 0; }
.me-vtags { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.me-hold { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--pale); }
.me-hold .i { width: 13px; height: 13px; }
.me-none { margin: 0; }
.me-line .me-more, .me-rows .me-more { margin-left: auto; }
.me-rows li { align-items: center; }
.pp-paper .me-paper { margin-top: 6px; }
.me-add-spouse { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 110px; border: 2px dashed var(--fill2); background: transparent; box-shadow: none; color: var(--pale); font-size: 15px; font-weight: 600; cursor: pointer; }
.me-add-spouse:hover { border-color: #155d62; color: #155d62; }
.dlg.me-dlg { width: min(1180px, calc(100vw - 32px)); max-height: calc(100vh - 32px); border-radius: 18px; }
.dlg.me-dlg[open] { display: flex; flex-direction: column; }
.me-dlg .me-form { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.me-dlg .dlg-body { flex: 1; min-height: 0; overflow: auto; display: grid; gap: 16px; padding: 4px 24px 20px; }
.me-dlg .dlg-foot { padding: 16px 24px 20px; border-top: 1px solid var(--line); }
.me-dlg .dlg-foot .btn { height: 42px; padding: 0 18px; font-size: 15px; }
.me-dlg-head { display: flex; align-items: flex-start; gap: 16px; padding: 22px 24px 14px; }
.me-dlg-head > div { flex: 1; }
.me-dlg-head h2 { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
.me-dlg-head p { margin-top: 8px; font-size: 14px; color: var(--pale); }
.me-form-people, .me-form-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 16px; align-items: start; }
.me-form-person { display: grid; gap: 12px; padding: 12px 12px 14px; border-radius: 16px; box-shadow: inset 0 0 0 1px var(--line); }
.me-form-person > :not(.me-form-band) { margin: 0 10px; }
.me-form-band { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border-radius: 14px; }
.me-form-band h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; }
.me-form-band small { display: block; margin-top: 4px; font-size: 14px; color: var(--pale); }
.me-form-band small i { font-style: normal; margin: 0 6px; }
.me-form-band .me-tile { width: 64px; height: 64px; }
.me-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.me-form .fld { gap: 4px; }
.me-form .fld > span { font-size: 13px; }
.me-form .fld input, .me-form .fld select { height: 34px; padding: 0 10px; border-radius: 8px; font-size: 14px; }
.me-form .elist { gap: 6px; justify-items: stretch; }
.me-list { position: relative; padding-top: 12px !important; border-top: 1px solid var(--line) !important; }
.me-form .me-list > [data-add-row] { position: absolute; top: 6px; right: 0; }
.me-list > legend { float: left; display: flex; align-items: center; gap: 10px; width: 100%; padding: 0 0 4px; font-size: 14px; font-weight: 600; }
.me-list > legend .i { width: 19px; height: 19px; color: var(--pale); }
.me-form .erow { gap: 8px; }
.me-form .erow > input[name="email"], .me-form .erow > input[name="phone"] { height: 34px; padding: 0 10px; border-radius: 8px; font-size: 14px; }
.me-form .erow > input[type="radio"] { width: 17px; height: 17px; }
.me-owner { flex: none; display: inline-flex; align-items: center; height: 34px; padding: 0 12px; border: 0; border-radius: 8px; background: #e1edfb; color: #1f66b8; font: 600 14px Inter, sans-serif; outline: none; }
select.me-owner { appearance: none; padding-right: 30px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f66b8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 14px; }
select.me-owner:hover { background-color: #d3e4f8; }
.me-owner.locked { gap: 6px; background: var(--fill); color: var(--pale); cursor: help; }
.me-owner.locked .i { width: 15px; height: 15px; }
.me-form .elist > [data-add-row] { justify-self: start; height: 32px; padding: 0 12px; font-size: 13px; }
.me-group { position: relative; display: grid; gap: 8px; padding: 12px 14px !important; border-radius: 14px; background: #f4f8f6; box-shadow: inset 0 0 0 1px var(--line); }
.me-group > legend { float: left; display: flex; align-items: center; gap: 10px; width: 100%; padding: 0 140px 2px 0; }
.me-group > legend b { display: block; font-size: 15px; font-weight: 700; }
.me-group > legend small { display: block; font-size: 13px; color: var(--pale); }
.me-group > legend .me-tile { width: 36px; height: 36px; border-radius: 50%; }
.me-group > legend .me-tile .i { width: 18px; height: 18px; }
.me-form .me-group > .me-group-add { position: absolute; top: 12px; right: 14px; height: 34px; font-size: 14px; }
.me-group .erow { padding: 8px 10px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.me-group .egrid input { background: var(--fill); }
.me-kid { display: grid; }
.me-group .me-kid { grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: end; gap: 10px 8px; padding: 10px 12px 12px; }
.me-kid > .fld { min-width: 0; grid-column: span 3; }
.me-kid > .me-born { grid-column: span 4; }
.me-kid > .me-kid-g { grid-column: span 2; }
.me-born .bd { flex-wrap: nowrap; }
.me-born .bd select { min-width: 0; padding: 0 6px; }
.me-born .bd .bd-m { flex: 2.2 1 0; }
.me-born .bd .bd-d { flex: 1 1 0; }
.me-born .bd .bd-y { flex: 1.4 1 0; }
.me-kid > .me-kid-save { grid-column: 1 / -1; justify-self: end; height: 32px; padding: 0 16px; font-size: 13px; }
.me-kid.cf:not(.on) > :not(.cf-shown) { display: none; }
.me-kid:not(.cf) > .cf-shown { display: none; }
.me-kid > .cf-shown { grid-column: 1 / -1; gap: 8px; }
.me-kid > .cf-shown .pale { flex: 1; font-size: 14px; }
.me-group .me-kid.cf:not(.on) { padding: 6px 8px 6px 12px; }
@media (max-width: 760px) {
  .me-dlg .dlg-body { padding: 4px 14px 16px; }
  .me-grid2 { grid-template-columns: 1fr; }
  .me-group > legend { padding-right: 0; }
  .me-form .me-group > .me-group-add { position: static; justify-self: start; }
  .me-group .me-kid { grid-template-columns: 1fr; }
  .me-kid > .fld { grid-column: 1; }
}
.me-waiting { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; padding: 2px 9px; border-radius: 999px; background: #fdf2d8; color: #9a6a00; font-size: 12px; font-weight: 600; white-space: nowrap; }
.me-waiting .i { width: 13px; height: 13px; }
.me-mark { display: inline-grid; place-items: center; vertical-align: -3px; margin-left: 5px; }
.me-mark.bad { color: #b3261e; }
.me-wait { display: flex; align-items: flex-start; gap: 6px; font-size: 13px; line-height: 1.5; }
.me-wait .i { flex: none; margin-top: 2px; }
.me-wait-list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.me-wait-item { padding: 2px 9px; border-radius: 999px; background: var(--fill); color: var(--text); font-weight: 500; }
.me-link { font-weight: 600; color: #155d62; }
.me-section { display: flex; gap: 24px; padding: 24px 28px; }
.me-tile { flex: none; display: grid; place-items: center; width: 80px; height: 80px; border-radius: 16px; }
.me-tile .i { width: 40px; height: 40px; }
.me-tile.green { background: #e6f4ec; color: #1e7a3c; }
.me-tile.gold { background: #fff3d6; color: #d99a12; }
.me-tile.blue { background: #e7f0fb; color: #1f66b8; }
.me-section-body { flex: 1; min-width: 0; display: grid; gap: 4px; align-content: start; }
.me-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; }
.me-section-head h2 { font-size: 14px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--pale); }
.me-section-head .btn { height: 42px; padding: 0 16px; font-size: 15px; }
.me-line { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.me-line > .i { flex: none; width: 16px; height: 16px; color: var(--pale); }
.me-rows { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.me-rows li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; padding: 18px 22px; border-radius: 12px; background: var(--fill); box-shadow: inset 0 0 0 1px var(--line); }
.me-rows b { font-size: 14px; font-weight: 600; }
@media (max-width: 760px) {
  .me-head { flex-direction: column; align-items: stretch; padding: 18px; }
  .av.me-av.xl { width: 96px; height: 96px; }
  .me-person { padding: 12px; }
  .me-cols { grid-template-columns: 1fr; padding-top: 12px; }
  .me-band-tools { align-self: auto; }
  .me-section { flex-direction: column; gap: 14px; padding: 18px; }
  .me-tile { width: 56px; height: 56px; }
  .me-tile .i { width: 28px; height: 28px; }
}
.po-alert-line .i { flex: none; margin-top: 1px; }
.po-ok { display: flex; gap: 6px; align-items: flex-start; flex-wrap: wrap; }
.po-input { width: 82px; height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: rgba(51, 51, 51, 0.08); font: inherit; font-size: 14px; outline: none; }
.po-input:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--accent); }
.po-link { padding: 0; border: 0; background: none; color: var(--accent); font: inherit; font-size: 13px; cursor: pointer; }
.po-link:hover { text-decoration: underline; }
.sw-page > .po-link { display: inline-flex; align-items: center; gap: 2px; }
.po-link:disabled { color: var(--xpale); text-decoration: none; cursor: default; }
.po-cards { display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.po-cards-head { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--pale); }
.po-details { margin-top: 8px; }
@media (max-width: 1100px) {
  .po-row { grid-template-columns: 1fr 1fr; gap: 12px; }
  .po-row > * { padding: 0; border-left: 0 !important; }
  .po-order { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .po-row { grid-template-columns: 1fr; }
}
.po-fields { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 6px 0 0; font-size: 13px; }
.po-fields dt { color: var(--pale); }
.po-fields dd { margin: 0; overflow-wrap: anywhere; }
.rv-unlink { margin-left: auto; }
.rv-swap { display: inline-grid; place-items: center; margin-left: auto; text-decoration: none; }
.rv-swap + .rv-unlink { margin-left: 0; }
.rv-contact:has(input[name^="primary"]:checked) .rv-unlink { display: none; }
.rv-unlink-btn { height: 28px; padding: 0 12px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--fill2); font-size: 13px; font-weight: 600; color: var(--pale); }
.rv-unlink-btn:hover { background: var(--fill); color: var(--text); }
.rv-unlink-btn[aria-pressed="true"] { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.rv-contact.rv-unlinked { background: transparent; }
.rv-contact.rv-unlinked > :not(.rv-body), .rv-contact.rv-unlinked .rv-body > :not(.rv-actions) { opacity: 0.5; }
.rv-contact.rv-unlinked .rv-name { text-decoration: line-through; }
.rv-contact.rv-unlinked .rv-primary, .rv-contact.rv-unlinked .rv-merge { display: none; }
.rv-incoming { display: contents; }
.rv-contact:not(:has(input[name^="primary"]:checked)) .rv-incoming { display: none; }
.rv-chip.rv-in-chip { background: #e3f5ea; box-shadow: inset 0 0 0 1px #b7dfc5; color: #1e5c36; }
.rv-chip.rv-in-chip > .i:first-child { color: #1e7a45; }
.rv-chip-from { font-size: 12px; color: #4b8a63; white-space: nowrap; }
.rv-keys { display: flex; flex-wrap: wrap; gap: 6px; }
.rv-contact:not(:has(input[name^="primary"]:checked)):not(.rv-planned) .rv-keys { display: none; }
.rv-contact:has(input[name^="primary"]:checked) .rv-plain-keys { display: none; }
.rv-chip.rv-key { padding-right: 10px; font-size: 13px; color: var(--pale); }
.rv-chip.rv-add { background: #e3f5ea; color: #1e7a45; font-size: 13px; font-weight: 600; }
.rv-chip.rv-merge-chip { background: #eef3fb; color: var(--accent); font-size: 13px; font-weight: 600; }
.rv-chip.rv-declined { background: transparent; box-shadow: inset 0 0 0 1px var(--fill2); color: var(--pale); font-weight: 500; }
.rv-contact:has(.rv-merge-chip.rv-declined) { opacity: 0.6; }
.rv-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rv-flag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.rv-flag .i { width: 14px; height: 14px; }
.rv-flag.sub { background: #e3f5ea; color: #1e7a45; }
.rv-flag.site { background: #f3e8fb; color: #7b3fa8; }
.rv-line { display: flex; align-items: center; gap: 8px; font-size: 14px; overflow-wrap: anywhere; }
.rv-line .i { width: 16px; height: 16px; color: var(--pale); flex: none; }
.rv-actions { display: flex; gap: 16px; flex-wrap: wrap; padding-top: 6px; font-size: 14px; }
.rv-actions label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.rv-primary { font-weight: 600; }
.rv-flag.new { background: #e3f5ea; color: #1e7a45; }
.rv-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rv-lead { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: var(--fill2); font-size: 15px; cursor: pointer; }
.rv-lead input { position: absolute; opacity: 0; pointer-events: none; }
.rv-lead:has(input:checked) { color: #e0a100; }
.rv-lead:hover { background: rgba(0, 0, 0, 0.08); }
.rv-chip.rv-gone .rv-lead, .rv-chip.rv-out .rv-lead { display: none; }
.rv-chip.rv-wix-only { box-shadow: inset 0 0 0 1px #b7dfc5; }
.rv-contact-email { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 14px; overflow-wrap: anywhere; }
.rv-contact-email > .i { width: 15px; height: 15px; color: var(--pale); flex: none; }
.rv-contact-email.rv-extra { color: var(--pale); }
.rv-unlink-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.rv-move-other, .rv-move-other-form { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rv-move-other-form[hidden], .rv-move-other button[hidden] { display: none; }
.rv-move-other-member { width: 90px; height: 32px; padding: 0 8px; border-radius: 8px; border: 1px solid var(--line); font: inherit; font-size: 13px; }
.rv-move-other select { height: 32px; border-radius: 8px; border: 1px solid var(--line); font: inherit; font-size: 13px; max-width: 220px; }
.rv-card-action { height: 30px; padding: 0 12px; font-size: 13px; }
.rv-contact.rv-suggest { border-color: #e0a100; border-style: solid; background: #fffaeb; }
.rv-suggest-note { display: flex; align-items: flex-start; gap: 6px; margin: 6px 0 0; font-size: 13px; color: #6b5300; }
.rv-suggest-note > .i { width: 15px; height: 15px; flex: none; margin-top: 2px; }
.rv-contact.rv-card-done { opacity: 0.6; }
.rv-fate { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 13px; font-weight: 600; }
.rv-fate > .i { width: 14px; height: 14px; flex: none; }
.rv-fate.keep { color: #1e7a3c; }
.rv-fate.merge { color: #6b5300; }
.rv-fate.delete { color: #b42318; }
.rv-orders { margin: 4px 0 0; padding-left: 18px; font-size: 13px; }
.rv-orders li { margin: 2px 0; }
.rv-orders li.active { font-weight: 600; }
.rv-orders .pale { display: block; font-weight: 400; }
.rv-chip.rv-locked-chip { padding-right: 4px; box-shadow: inset 0 0 0 1px var(--fill2); }
.rv-end-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 8px; }
.rv-end-note { font-size: 13px; color: #b42318; }
.rv-side.rv-ended > :not(.rv-name-row):not(.rv-end-row) { opacity: 0.4; pointer-events: none; }
.rv-chip .rv-lock-icon { display: none; }
.rv-chip.rv-locked-chip .rv-lock-icon { display: inline-flex; }
.rv-chip.rv-locked-chip > .i, .rv-chip.rv-locked-chip .rv-chip-btn { display: none; }
.rv-birthday { display: inline-flex; align-items: center; gap: 6px; }
.rv-group.rv-bg-collapsed > :not([data-bg-note]) { display: none; }
.rv-bg-note { margin: 0; padding: 4px 4px 0; font-size: 14px; }
.rv-bg-note.rv-bg-error { color: #b3261e; }
@media (max-width: 760px) {
  .rv-sides { grid-template-columns: 1fr; }
  .rv-group { padding: 4px 10px 12px; }
  .rv-contact { grid-template-columns: 1fr; }
}

.pp-form { margin: 0; }
.pp-head { display: flex; align-items: flex-start; gap: 16px; padding: 20px 0 16px; }
.pp-mark { flex: none; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--tint); color: var(--accent); }
.pp-mark .i { width: 32px; height: 32px; }
.pp-title { flex: 1; min-width: 0; }
.pp-title h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.01em; }
.pp-title p { margin-top: 4px; max-width: 760px; color: var(--pale); font-size: 14px; }
.pp-search { flex: none; display: flex; align-items: center; gap: 8px; width: 320px; height: 42px; padding: 0 12px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); color: var(--pale); }
.pp-search:focus-within { box-shadow: inset 0 0 0 1.5px var(--accent); }
.pp-search .i { width: 18px; height: 18px; flex: none; }
.pp-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent; font: inherit; font-size: 14px; color: var(--text); }
.pp-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 16px; }
.pp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-chip { display: inline-flex; align-items: center; gap: 10px; height: 34px; padding: 0 14px; border-radius: 999px; font-size: 14px; font-weight: 600; white-space: nowrap; }
.pp-chip span { font-size: 13px; opacity: 0.85; }
.pp-chip:hover { filter: brightness(0.97); }
.pp-chip.blue { background: var(--tint); color: var(--accent); }
.pp-chip.red { background: #fdecea; color: #b3261e; }
.pp-chip.amber { background: #fdf0de; color: #a35a00; }
.pp-chip.green { background: #e3f5ea; color: #1e7a45; }
.pp-chip.grey { background: var(--fill2); color: var(--text); }
.pp-chip.on { box-shadow: inset 0 0 0 1.5px currentColor; }
.pp-chip.blue.on { background: var(--accent); color: #fff; box-shadow: none; }
.pp-chip.blue.on span { padding: 1px 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.25); }
.src-chips { margin: 0 0 12px; }
.pl-cards { display: flex; flex-wrap: wrap; gap: 4px; }
.pl-card { height: auto; border: 0; font: inherit; font-size: 13px; font-weight: 600; padding: 3px 10px; cursor: pointer; }
.pl-card-facts { display: grid; gap: 8px; margin: 0 0 12px; }
.pl-card-facts div { display: grid; grid-template-columns: 110px 1fr; gap: 8px; }
.pl-card-facts dt { color: var(--pale); }
.pl-card-facts dd { margin: 0; }
.pl-card-actions [hidden] { display: none; }
.npc-dlg { width: min(800px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; background: #f5f7f6; }
.npc { display: grid; gap: 28px; padding: 28px 40px 36px; }
.npc-top { display: flex; align-items: center; justify-content: space-between; margin: -8px -20px -12px 0; }
.npc-crumbs { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pale); }
.npc-crumbs span { margin: 0 10px; color: var(--xpale); }
.npc-title { display: flex; align-items: flex-start; gap: 16px; }
.npc-check { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: #e3f0e8; color: #1e6b45; }
.npc-check .i { width: 18px; height: 18px; }
.npc-title h2 { margin: 0; font-size: 26px; font-weight: 700; letter-spacing: -0.02em; color: #17322a; }
.npc-title p { margin: 6px 0 0; font-size: 14px; color: var(--pale); }
.npc-plan { padding: 22px 24px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px rgba(23, 50, 42, 0.12); }
.npc-plan-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.npc-plan-head b { display: block; margin-top: 8px; font-size: 19px; font-weight: 600; color: #17322a; }
.npc-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pale); }
.npc-pill { flex: none; padding: 5px 12px; border-radius: 999px; background: #e3f0e8; color: #1e6b45; font-size: 13px; font-weight: 600; }
.npc-facts { display: grid; grid-template-columns: 1.3fr 0.95fr 1fr; gap: 16px; margin: 20px 0 0; }
.npc-facts dt { font-size: 13px; color: var(--pale); }
.npc-facts dd { margin: 8px 0 0; font-size: 15px; color: #17322a; }
.npc-facts dd span { color: var(--pale); }
.npc-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.npc-section-head h3 { margin: 0; font-size: 17px; font-weight: 600; color: #17322a; }
.npc-section-head p { margin: 6px 0 0; font-size: 13px; color: var(--pale); }
.npc-section-head > span { font-size: 13px; color: var(--pale); }
.npc-none { margin: 0; font-size: 14px; color: var(--pale); }
.npc-changes { width: 100%; border-collapse: collapse; }
.npc-changes th { padding: 0 0 8px; text-align: left; font-size: 12px; font-weight: 500; color: var(--pale); border-bottom: 1px solid rgba(23, 50, 42, 0.14); }
.npc-changes td { padding: 16px 12px 16px 0; vertical-align: middle; border-bottom: 1px solid rgba(23, 50, 42, 0.1); }
.npc-changes th:first-child, .npc-person { width: 45%; }
.npc-person { font-size: 17px; color: #17322a; }
.npc-person span { margin-left: 6px; font-size: 13px; color: var(--pale); }
.npc-was { display: block; font-size: 14px; color: var(--pale); }
.npc-arrow { display: block; font-size: 14px; color: var(--pale); line-height: 1.2; }
.npc-now { display: block; font-size: 17px; font-weight: 500; color: #1e6b45; }
.npc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px rgba(23, 50, 42, 0.12); overflow: hidden; }
.npc-card { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; box-shadow: -1px 0 0 rgba(23, 50, 42, 0.1), 0 -1px 0 rgba(23, 50, 42, 0.1); }
.npc-card:hover { background: var(--fill); }
.npc-card-icon { flex: none; width: 20px; height: 20px; color: var(--pale); }
.npc-card-who { display: grid; gap: 4px; flex: 1; min-width: 0; }
.npc-card-who b { font-size: 15px; font-weight: 500; color: #17322a; }
.npc-card-who span { font-size: 13px; color: var(--pale); }
.npc-card-who .npc-card-levels { color: #1d4a38; font-weight: 500; overflow-wrap: anywhere; }
.npc-card-state { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 500; }
.npc-card-state.on { color: #1e6b45; }
.npc-card-state.off { color: #b3261e; }
.npc-switch { position: relative; width: 36px; height: 22px; border-radius: 999px; background: #c9cfcc; }
.npc-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform 0.15s; }
.npc-card-state.on .npc-switch { background: #1e6b45; }
.npc-card-state.on .npc-switch::after { transform: translateX(14px); }
.npc .um-add { margin-top: 12px; }
.btn.npc-back { height: 44px; padding: 0 20px; gap: 8px; background: #1d4a38; color: #fff; }
.btn.npc-back:hover { background: #17392c; }
.npc-check.todo, .npc-pill.todo { background: #fdf0de; color: #a35a00; }
.npc-actions { display: flex; gap: 10px; }
.npc-actions .btn.light { height: 44px; padding: 0 20px; }
.np-changes { display: grid; gap: 3px; margin: 8px 0 0; padding: 8px 0 0; list-style: none; border-top: 1px solid var(--line); font-size: 13px; }
.np-changes .np-col { color: var(--pale); }
.np-changes b { font-weight: 600; color: #1e6b45; }
.np-sweep { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); gap: 4px 14px; align-items: start; cursor: pointer; }
.np-sweep input { width: 18px; height: 18px; margin-top: 2px; }
.np-sweep .np-changes { margin: 0; padding: 0; border-top: 0; }
form > .npc-actions { position: sticky; bottom: 0; margin-top: 16px; padding: 12px 0; background: var(--bg, #f5f7f6); }
@media (max-width: 640px) {
  .npc { padding: 24px 16px 28px; }
  .npc-top { margin-right: -8px; }
  .npc-facts { grid-template-columns: 1fr 1fr; }
  .npc-changes th:first-child, .npc-person { width: auto; }
}
[data-results] { position: relative; transition: opacity 0.15s; }
[data-results].searching { opacity: 0.45; transition-delay: 0.1s; cursor: progress; }
[data-results].searching::before { content: ""; position: absolute; z-index: 2; top: 40px; left: 50%; width: 30px; height: 30px; margin-left: -15px; border-radius: 50%; border: 3px solid var(--tint); border-top-color: var(--accent); animation: spin 0.8s linear infinite; }
.src-found { margin: 0 0 24px; }
.src-found-head { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; }
.src-found-head > .tools { margin-left: auto; }
.src-found-more { margin: 8px 0 0; font-size: 14px; }
.src-hit { background: #fff1a8; color: inherit; border-radius: 3px; padding: 0 1px; }
.pp-selects { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pp-sortby { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.pp-sortby select { height: 38px; padding: 0 10px; border: 0; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); font: inherit; font-size: 14px; }
.dg-wrap { overflow-x: auto; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); }
.dg-wrap:has(.menu-wrap.open) { overflow: visible; }
.dg { width: 100%; border-collapse: collapse; font-size: 14px; }
.dg th { padding: 12px 16px; text-align: left; font-size: 13px; font-weight: 600; border-bottom: 1px solid var(--line); white-space: nowrap; }
.dg td { padding: 10px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.dg tbody tr:last-child td { border-bottom: 0; }
.dg tbody tr:hover { background: rgba(36, 99, 176, 0.03); }
.dg-sort { display: inline-flex; align-items: center; gap: 6px; color: var(--text); }
.dg-sort .i { width: 14px; height: 14px; color: var(--pale); }
.dg-sort.on .i { color: var(--accent); }
.dg-person { display: flex; align-items: center; gap: 14px; }
.dg-person b { font-size: 15px; }
.dg-ring { flex: none; display: grid; place-items: center; padding: 3px; border-radius: 50%; }
.av.dg-av { width: 46px; height: 46px; border-radius: 50%; background: #fff; }
.dg-ring.member { border: 2.5px solid var(--accent); }
.dg-ring.spouse { border: 2px dotted var(--pale); }
.dg-ring.women { border: 2.5px solid #b3261e; }
.av.dg-locker { background: var(--fill); }
.av.dg-locker.st-open { background: #e3f5ea; }
.av.dg-locker.st-due { background: #fdf3c4; }
.av.dg-locker.st-late { background: rgba(217, 48, 37, 0.1); }
.dg-locker-name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.dg-locker-name .tag { display: inline-flex; align-items: center; gap: 4px; }
.dg-locker-name .tag .i { width: 12px; height: 12px; }
.av.dg-locker img { padding: 9px; box-sizing: border-box; border-radius: 0; }
.pp-card { display: flex; align-items: center; gap: 12px; }
.pp-card > .i { width: 22px; height: 22px; flex: none; color: var(--pale); }
.pp-ok { color: #1e7a45; font-weight: 500; }
.pp-bad { color: #c5221f; }
.pp-missing { display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 12px 0 8px; border-radius: 999px; background: #fdecea; color: #b3261e; font-weight: 500; }
.pp-missing .i { width: 18px; height: 18px; color: #fff; background: #d93025; border-radius: 50%; }
.dq-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; padding: 20px 0 16px; }
.dq-mark { flex: none; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #fbe4ec; color: #c2185b; }
.dq-mark .i { width: 30px; height: 30px; }
.dq-mark.blue { background: var(--tint); color: var(--accent); }
.dq-pick-box input[type="date"] { flex: 1; min-width: 0; border: 0; background: none; font: inherit; font-size: 15px; font-weight: 600; color: var(--text); }
.dq-title { flex: 1 1 360px; min-width: 0; }
.dq-title h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.01em; }
.dq-title p { margin-top: 4px; max-width: 640px; color: var(--pale); font-size: 14px; }
.dq-picks { display: flex; gap: 12px; flex-wrap: wrap; }
.dq-pick { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; background: var(--fill); }
.dq-pick-label { font-size: 13px; font-weight: 600; color: var(--pale); }
.dq-pick-box { position: relative; display: flex; align-items: center; gap: 12px; min-width: 260px; padding: 8px 12px; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px var(--line); }
.dq-pick-box > .i:first-child { width: 22px; height: 22px; color: var(--pale); }
.dq-pick-text { flex: 1; display: grid; }
.dq-pick-text b { font-size: 15px; font-weight: 600; }
.dq-pick-text small { color: var(--pale); font-size: 13px; }
button.dq-pick-box { width: 100%; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.dq-pick-box:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--accent); }
.dq-pick-wrap.open > .dq-pick-box > .i:last-child { transform: rotate(180deg); }
.dq-menu { min-width: 100%; width: max-content; max-width: min(460px, 90vw); max-height: 60vh; overflow: auto; }
.dq-opt { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 6px; font-size: 14px; cursor: pointer; }
.dq-opt:hover { background: var(--fill); }
.dq-opt input { flex: none; margin: 0; accent-color: var(--accent); }
.dq-opt span { flex: 1; }
.dq-opt small { color: var(--pale); white-space: nowrap; }
.dq-tags-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0; }
.dq-tags-bar:last-child { justify-content: flex-end; }
.dq-tags-actions { display: flex; gap: 8px; }
.dq-chips { position: relative; min-width: 260px; }
.echip-pop { position: absolute; top: calc(100% + 4px); left: 0; z-index: 30; display: grid; min-width: 200px; max-height: 240px; overflow: auto; padding: 4px; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 8px 24px rgba(0, 0, 0, 0.12); }
.echip-pop[hidden] { display: none; }
.echip-pop-item { padding: 7px 10px; border-radius: 6px; font: inherit; font-size: 13px; text-align: left; }
.echip-pop-item:hover, .echip-pop-item.on { background: var(--tint); color: var(--accent); }
.dq-table-wrap:has(.echip-pop:not([hidden])) { overflow: visible; }
.dq-year + .dq-year { margin-top: 4px; }
.dq-year-head { display: flex; align-items: center; gap: 10px; color: var(--text); font-weight: 600; cursor: pointer; }
.dq-year-head input { flex: none; margin: 0; accent-color: var(--accent); }
.dq-year-opts { padding-left: 22px; }
.dq-loose summary { padding: 8px 10px; color: var(--pale); font-size: 13px; cursor: pointer; }
.dq-loose .dq-opt { padding-left: 22px; }
.dq-count { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding: 12px 16px; border-radius: 12px; background: var(--tint); font-size: 14px; }
.dq-count .i { flex: none; width: 22px; height: 22px; color: var(--accent); }
.dq-table-wrap { overflow-x: auto; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); }
.dq-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.dq-table th { padding: 12px 16px; text-align: left; font-size: 13px; font-weight: 600; color: var(--pale); background: var(--fill); white-space: nowrap; }
.dq-table td { padding: 10px 16px; border-top: 1px solid var(--line); vertical-align: middle; }
.dq-num { display: inline-block; padding: 4px 12px; border-radius: 8px; background: var(--fill); color: var(--text); font-weight: 600; white-space: nowrap; }
.dq-num:hover { background: var(--fill2); }
.mcd-dlg { --mcd-blue: #2f6fd6; --mcd-blue-soft: #eaf2fd; --mcd-pink: #c2185b; --mcd-pink-soft: #fdecf0; --mcd-green: #1e7a45; --mcd-green-soft: #e6f5ec; }
.mcd-dlg .dlg-body.mcd { display: grid; gap: 16px; }
.mcd-heroes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.mcd-hero { display: flex; align-items: flex-start; gap: 18px; min-width: 0; padding: 18px; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--line); }
.mcd-hero.blue { background: var(--mcd-blue-soft); }
.mcd-hero.pink { background: var(--mcd-pink-soft); }
.mcd-hero.green { background: var(--mcd-green-soft); }
.mcd-face { flex: none; width: 96px; height: 96px; border-radius: 50%; background: #fff; overflow: hidden; }
.mcd-face.sm { width: 48px; height: 48px; }
.mcd-face .po-avatar { width: 100%; height: 100%; font-size: 1.6em; }
.mcd-face.sm .po-avatar { font-size: 16px; }
.mcd-who { display: grid; gap: 6px; min-width: 0; }
.mcd-who h2 { font-size: 20px; font-weight: 700; overflow-wrap: anywhere; }
.mcd-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; font-size: 14px; }
.mcd-num { padding: 2px 10px; border-radius: 999px; background: #fff; color: var(--text); font-weight: 600; }
.mcd-pill { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 500; white-space: nowrap; }
.mcd-pill.blue { background: var(--mcd-blue-soft); color: var(--mcd-blue); }
.mcd-hero .mcd-pill.blue { background: #d6e6fb; }
.mcd-pill.pink { background: var(--mcd-pink-soft); color: var(--mcd-pink); }
.mcd-hero .mcd-pill.pink { background: #fbd9e3; }
.mcd-pill.green { background: var(--mcd-green-soft); color: var(--mcd-green); }
.mcd-pill.grey { background: var(--fill); color: var(--pale); }
.mcd-status { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.mcd-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mcd-status.green { background: #ddf3e5; color: var(--mcd-green); }
.mcd-status.red { background: #fdecea; color: #b3261e; }
.mcd-status.grey { background: var(--fill); color: var(--pale); }
.mcd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.mcd-sec { display: grid; align-content: start; gap: 12px; min-width: 0; padding: 18px; border-radius: 14px; background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); }
.mcd-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 34px; }
.mcd-sec h3 { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; }
.mcd-sec h3 .i { color: var(--mcd-blue); }
.mcd-edit { position: absolute; top: 20px; right: 64px; display: inline-flex; align-items: center; gap: 8px; }
.mcd-edit .btn { display: inline-flex; align-items: center; gap: 6px; }
.mcd-edit .btn.light { color: var(--mcd-blue); }
.mcd-line { display: flex; align-items: center; gap: 8px; font-size: 14px; min-width: 0; overflow-wrap: anywhere; }
.mcd-line .i { flex: none; color: var(--pale); }
.mcd-box { padding: 14px 16px; border-radius: 12px; background: var(--mcd-blue-soft); }
.mcd-addr { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; }
.mcd-addr > .i { flex: none; margin-top: 3px; color: var(--mcd-blue); }
.mcd-addr b { font-weight: 600; }
.mcd-plan { display: grid; gap: 8px; }
.mcd-plan-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.mcd-plan-head b { font-size: 18px; font-weight: 700; }
.mcd-plan .mcd-line .i { color: var(--mcd-blue); }
.mcd-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.mcd-list li { display: grid; gap: 1px; padding: 8px 0; }
.mcd-list li + li { border-top: 1px solid var(--line); }
.mcd-list li.mcd-row { display: flex; align-items: center; gap: 14px; }
.mcd-row-text { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.mcd-tile { display: grid; place-items: center; flex: none; width: 46px; height: 40px; border-radius: 10px; }
.mcd-tile.round { width: 44px; height: 44px; border-radius: 50%; }
.mcd-tile.blue { background: var(--mcd-blue-soft); color: var(--mcd-blue); }
.mcd-tile.pink { background: var(--mcd-pink-soft); color: var(--mcd-pink); }
.mcd-tile.green { background: var(--mcd-green-soft); color: var(--mcd-green); }
.mcd-open { font: inherit; color: inherit; text-align: left; cursor: pointer; }
.mcd-open:hover b, .mcd-open:hover .dq-num { color: var(--accent); text-decoration: underline; }
.dq-date { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px; border-radius: 999px; background: var(--fill); white-space: nowrap; }
.dq-date .i { color: var(--pale); }
.dq-contact div { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.dq-contact .i { color: var(--pale); }
.dg-status { display: inline-block; min-width: 76px; padding: 4px 12px; border-radius: 999px; text-align: center; font-size: 13px; font-weight: 600; }
.dg-status.green { background: #e3f5ea; color: #1e7a45; }
.dg-status.red { background: #fdecea; color: #b3261e; }
.dg-status.amber { background: #fdf3dc; color: #8a5a00; }
.dg-status.grey { background: var(--fill); color: var(--pale); }
.dg-actions { text-align: right; }
.pp-person-menu { min-width: 300px; max-height: 70vh; overflow: auto; }
.pp-merge-other { display: flex; align-items: center; gap: 8px; padding: 4px 8px 8px; }
.pp-merge-other .pp-pick-search { flex: 1; height: 38px; }
.pp-merge-other .pp-pick-search input { font-size: 14px; }
.dg-group { border-top: 8px solid var(--bg); }
.dg-house td { background: #f3f7fc; border-bottom: 1px solid var(--line); }
.dg-group.green .dg-house td { background: #f1faf4; }
.dg-group.red .dg-house td { background: #fdf4f3; }
.dg-house-btn { display: inline-flex; align-items: center; gap: 12px; font: inherit; color: var(--text); text-align: left; }
.dg-house-btn b { font-size: 17px; }
.dg-house-sub { margin: 2px 0 0 66px; font-size: 13px; color: var(--pale); }
.dg-house-sub .mcd-open:hover { color: var(--accent); text-decoration: underline; }
.dg-chev { width: 18px; height: 18px; flex: none; transition: transform 0.15s; }
.dg-group.closed .dg-chev { transform: rotate(-90deg); }
.dg-group.closed .dg-member { display: none; }
.dg-house-mark { display: grid; place-items: center; color: var(--accent); }
.dg-house-mark .i { width: 24px; height: 24px; }
.dg-count { padding: 3px 10px; border-radius: 999px; background: var(--tint); color: var(--accent); font-size: 13px; font-weight: 500; white-space: nowrap; }
.dg-member td:first-child { padding-left: 40px; }
.pp-error { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: #fdecea; color: #b3261e; font-size: 13px; font-weight: 600; white-space: nowrap; }
.pp-error .i { width: 14px; height: 14px; }
.pp-drop .pp-chip .i { width: 14px; height: 14px; }
.pp-drop .menu-item.on { font-weight: 600; }
.pp-drop-n { margin-left: auto; }
.pp-fixes td { padding: 8px 16px 10px 40px; background: #fffaf2; }
.pp-loose { padding-bottom: 12px; }
.pp-loose .pp-fix-list { padding: 10px 16px; border-radius: 12px; background: #fffaf2; }
.pp-fix-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pp-fix { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.pp-fix > .i { flex: none; width: 16px; height: 16px; color: #a35a00; }
.pp-fix.sync > .i { color: var(--accent); }
.pp-fix.bad > .i { color: #b3261e; }
.pp-fix > span:not(.pp-fix-kind) { flex: 1; min-width: 0; }
.pp-fix-kind { flex: none; padding: 2px 10px; border-radius: 999px; background: #fdf0de; color: #a35a00; font-size: 12px; font-weight: 600; white-space: nowrap; }
.pp-fix.sync .pp-fix-kind { background: var(--tint); color: var(--accent); }
.pp-fix.bad .pp-fix-kind { background: #fdecea; color: #b3261e; }
.pp-fix form { margin: 0; flex: none; }
.pp-fix .btn { height: 32px; padding: 0 12px; font-size: 13px; }
.pp-fix-dlg .dlg-body { display: block; }
.pp-link { display: inline-flex; align-items: center; gap: 6px; margin-left: 4px; padding: 2px 10px; border-radius: 999px; background: var(--tint); color: var(--accent); font-weight: 600; white-space: nowrap; }
.pp-link:hover { filter: brightness(0.97); }
.ov-chips { align-items: center; padding-bottom: 14px; }
.ov-chips .pp-chip { cursor: default; }
.ov-clear { margin-left: 4px; }
.pd-table input { width: 100%; height: 38px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--fill); outline: none; font: inherit; font-size: 14px; }
.pd-table input:focus { box-shadow: inset 0 0 0 1.5px var(--accent); }
.pd-save { padding: 16px 0 28px; }
.oo-who { display: flex; align-items: center; gap: 14px; padding-bottom: 16px; }
.oo-who b { font-size: 18px; }
.oo-pick { max-width: 560px; padding-bottom: 18px; }
.oo-pick select { width: 100%; height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); font: inherit; font-size: 15px; }
.oo-dates { display: grid; gap: 14px; max-width: 560px; padding: 18px; border-radius: 12px; background: #f5f8fc; }
.oo-dates input[type="date"] { width: 100%; height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); font: inherit; font-size: 15px; }
.oo-end { padding: 10px 0; font-size: 15px; font-weight: 600; }
.oo-go { display: flex; gap: 10px; padding-top: 4px; }
.po-ignore { display: block; padding-top: 6px; }
.ov-was { color: var(--pale); text-decoration: line-through; }
.dg .ov-was + .i { margin: 0 8px; color: var(--pale); vertical-align: middle; }
.ov-foot { padding: 12px 0 24px; }
.ov-why { max-width: 420px; }
.dlg.pp-dlg { width: min(560px, calc(100vw - 32px)); border-radius: 16px; }
.dlg.pp-dlg.pp-wide { width: min(1180px, calc(100vw - 32px)); max-height: calc(100vh - 32px); }
.pp-wide[open] { display: flex; flex-direction: column; }
.pp-wide > [data-load-into] { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.pp-wide .me-form { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.pp-wide .dlg-body { flex: 1; min-height: 0; max-height: none; overflow: auto; }
.pp-wide .pp-picks { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.cf > input:not([type="radio"]), .cf > select, .cf > .egrid, .cf > .bd { display: none; }
.cf.on > input:not([type="radio"]), .cf.on > select { display: block; }
.cf.on > .egrid { display: grid; }
.cf.on > .bd { display: flex; }
.cf.on > .cf-shown { display: none; }
.erow.addr.cf { align-items: center; }
.erow.addr.cf > .cf-shown { flex: 1; min-width: 0; }
.cf-shown { display: flex; align-items: center; gap: 4px; min-height: 34px; font-size: 15px; overflow-wrap: anywhere; }
.cf-shown b { font-weight: 500; }
.cf-shown .icon-btn { flex: none; width: 28px; height: 28px; color: var(--xpale); }
.cf:hover .cf-shown .icon-btn, .cf-shown .icon-btn:focus-visible { color: var(--text); }
.me-form-person.left .bd-name { text-decoration: line-through; text-decoration-color: rgba(197, 34, 31, 0.6); }
.me-form-person.left > :not(.me-form-band) { opacity: 0.55; }
.me-pill.gone { background: #fdecea; color: #8c3a35; }
.bd { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.bd select { height: 38px; padding: 0 6px; border-radius: 8px; font-size: 14px; }
.bd .bd-m { flex: 1 1 92px; }
.bd .bd-d { flex: 1 1 52px; }
.bd .bd-y { flex: 1 1 66px; }
.cd-table td { white-space: nowrap; }
.cd-old { color: #b3261e; text-decoration: line-through; }
.cd-chip { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; padding: 2px 4px 2px 10px; border-radius: 999px; background: #e3f5ea; box-shadow: inset 0 0 0 1px #b7dfc5; color: #1e5c36; font-weight: 600; }
.cd-chip form { margin: 0; }
.cd-x { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-size: 15px; font-weight: 700; line-height: 1; color: #1e7a45; }
.cd-x:hover { background: rgba(30, 122, 69, 0.15); }
.cd-cols > summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.cd-cols > summary::-webkit-details-marker { display: none; }
.cd-cols[open] > .menu { display: block; }
.cd-col-menu { right: 0; left: auto; max-height: 60vh; overflow: auto; }
.cd-col-menu .menu-item { gap: 8px; font-weight: 400; cursor: pointer; }
.cd-pencil { width: 24px; height: 24px; margin-left: 4px; vertical-align: -6px; color: var(--xpale); opacity: 0; }
.cd-table tr:hover .cd-pencil, .cd-pencil:focus-visible { opacity: 1; }
.cd-table form.inline { display: inline; }
.pp-logins h4 { display: flex; align-items: center; gap: 8px; }
.pp-logins h4 .i { width: 18px; height: 18px; color: var(--pale); }
.pp-login { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; padding-top: 12px; }
.pp-login + .pp-login { margin-top: 12px; border-top: 1px solid var(--line); }
.pp-login-who { flex: 1; min-width: 200px; overflow-wrap: anywhere; }
.pp-login-who .i { vertical-align: -2px; margin-right: 2px; color: #1e7a45; }
.pp-login form { display: flex; align-items: flex-end; gap: 8px; }
.pp-login .fld select { height: 38px; border-radius: 8px; font-size: 14px; }
.pop-edit { position: relative; font-weight: 400; font-size: 14px; }
.pop-edit > summary { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; cursor: pointer; list-style: none; color: var(--pale); }
.pop-edit > summary::-webkit-details-marker { display: none; }
.pop-edit > summary:hover, .pop-edit[open] > summary { background: rgba(0, 0, 0, 0.06); color: var(--text); }
.pop-edit > .fld { position: absolute; top: calc(100% + 6px); left: 0; z-index: 10; width: max-content; padding: 10px 12px; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 8px 24px rgba(0, 0, 0, 0.12); }
.pp-dlg .dlg-head { padding: 20px 20px 4px 24px; align-items: flex-start; }
.pp-dlg .dlg-head b { flex: 1; text-align: left; font-size: 26px; font-weight: 700; letter-spacing: -0.01em; }
.pp-dlg .dlg-body { display: grid; gap: 14px; padding: 12px 24px 20px; }
.pp-picks { display: grid; gap: 12px; }
.pp-pick { display: grid; gap: 10px; padding: 14px; border-radius: 12px; background: #f5f8fc; }
.pp-pick-head { display: flex; align-items: center; gap: 12px; }
.pp-pick-head b { font-size: 16px; font-weight: 700; }
.pp-pick-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; }
.pp-pick-mark .i { width: 20px; height: 20px; }
.pp-pick-mark.blue { background: #dbe8f8; color: var(--accent); }
.pp-pick-mark.violet { background: #e6e2f8; color: #5b46b5; }
.pp-pick-search { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 14px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--fill2); color: var(--pale); }
.pp-pick-search:focus-within { box-shadow: inset 0 0 0 1.5px var(--accent); }
.pp-pick-search .i { width: 18px; height: 18px; flex: none; }
.pp-pick-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent; font: inherit; font-size: 15px; color: var(--text); }
.pp-note { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border-radius: 12px; background: var(--tint); color: var(--text); font-size: 14px; }
.pp-note .i { flex: none; width: 20px; height: 20px; color: var(--accent); }
.pp-note.warn { background: #fdf4e3; }
.pp-note.warn .i { color: #b8770c; }
.pp-dlg .dlg-foot { padding: 0 24px 20px; border-top: 1px solid var(--line); padding-top: 16px; }
.dlg-foot.right { display: flex; gap: 10px; justify-content: flex-end; }
.pp-dlg .dlg-foot .btn { height: 44px; padding: 0 20px; font-size: 15px; }
.btn.danger { background: #fdf2f1; color: #c5221f; box-shadow: inset 0 0 0 1px #f3c9c6; }
.btn.danger:hover { background: #fbe8e6; }
@media (max-width: 560px) {
  .dlg-foot.right { flex-wrap: wrap; }
}
#people-edit [hidden] { display: none !important; }
@media (max-width: 760px) {
  .pp-head { flex-wrap: wrap; }
  .pp-search { width: 100%; }
}
.dash { --s1: #22b2ba; --s2: #f09400; --ink2: var(--pale); --muted: var(--xpale); --grid: var(--line); --axis: var(--fill2); padding-bottom: 48px; }
.dash .note { margin-bottom: 20px; }
.dash-banner { display: flex; align-items: center; gap: 12px; margin: 16px 0 4px; padding: 12px 16px; border-radius: 12px; background: #fbe1e2; color: #b8323a; box-shadow: inset 0 0 0 1px rgba(229, 72, 77, 0.25); font-size: 14px; }
.dash-banner span { flex: 1; }
.dash-banner:hover { background: #f8d2d4; }
.dash h2 { font-size: 15px; font-weight: 600; }
.dash-sub { color: var(--ink2); font-size: 13px; margin-top: 2px; }
.dash-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.dash .c-gold { --c: #fcc31e; }
.dash .c-orange { --c: #f09400; }
.dash .c-teal { --c: #22b2ba; }
.dash .c-green { --c: #8ab255; }
.dash .c-female { --c: #f05a28; }
.dash .c-male { --c: #2a9097; }
.dash .c-none { --c: #c9c8c2; }
.dash-tile { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: 12px; background: color-mix(in srgb, var(--c) 7%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 22%, transparent); }
.dash-tile-icon { display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 6px; border-radius: 50%; background: color-mix(in srgb, var(--c) 22%, #fff); color: color-mix(in srgb, var(--c) 70%, #000); }
.dash-tile-label { color: var(--ink2); font-size: 13px; }
.dash-tile-value { font-size: 28px; font-weight: 600; line-height: 1.1; }
.dash-tile-note { color: var(--muted); font-size: 12px; }
.dash-pair { gap: 14px; }
@media (min-width: 700px) {
  .dash-tiles .dash-pair { grid-column: span 2; }
}
.dash-pair-head { display: flex; align-items: center; gap: 12px; }
.dash-pair-head .dash-tile-icon { margin-bottom: 0; }
.dash-pair-head b { font-size: 16px; font-weight: 600; }
.dash-pair-values { display: grid; grid-template-columns: 1fr 1fr; }
.dash-pair-value { display: flex; flex-direction: column; gap: 2px; padding: 0 20px; }
.dash-pair-value:first-child { padding-left: 0; }
.dash-pair-value + .dash-pair-value { border-left: 1px solid var(--line); }
.dash-pair-value.green { --kc: var(--k3); }
.dash-pair-value.blue { --kc: var(--k1); }
.dash-pair-value b { font-size: 32px; font-weight: 700; line-height: 1.05; color: color-mix(in srgb, var(--kc) 70%, #000); }
.dash-pair-value span { color: var(--ink2); font-size: 13px; }
.dash-pair-bar { display: block; height: 6px; margin-top: 8px; border-radius: 3px; background: var(--grid); overflow: hidden; }
.dash-pair-bar i { display: block; height: 100%; border-radius: 3px; background: var(--kc); }
.dash-pair-note { display: flex; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.dash-pair-note b { color: var(--ink2); font-weight: 600; }
.dash-pair-note .i { flex: none; }
.dash-card { padding: 16px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line); margin-bottom: 16px; min-width: 0; }
.dash-grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.dash-grid-cards .dash-card { margin-bottom: 0; }
@media (min-width: 700px) {
  .dash-grid-cards .dash-card.span2 { grid-column: span 2; }
}
.dash-bars { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.dash-group { margin-top: 16px; font-size: 13px; font-weight: 600; color: var(--muted); }
.dash-group + .dash-bars { margin-top: 8px; }
.dash-line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.dash-line.now { stroke-width: 3; }
.dash-line.k1 { stroke: var(--k1); }
.dash-line.k2 { stroke: var(--k2); }
.dash-line.k3 { stroke: var(--k3); }
.dash-mark { stroke: var(--muted); stroke-dasharray: 3 3; }
.dash-plot { cursor: zoom-in; }
.dlg.dash-zoom { width: min(1100px, calc(100vw - 32px)); }
.dash-zoom .dlg-head { padding-bottom: 0; }
.dash-zoom .dlg-body { padding: 0 20px 20px; }
.dash-zoom .dash-card { margin: 0; padding: 0; box-shadow: none; }
.dash-zoom .dash-plot { cursor: default; }
.dash-bar-row { display: grid; grid-template-columns: minmax(110px, 38%) 1fr auto; align-items: center; gap: 10px; font-size: 13px; }
.dash-card.wide .dash-bar-row { grid-template-columns: minmax(150px, 30%) 1fr minmax(150px, auto); }
.dash-bar-row.total { padding-top: 8px; border-top: 1px solid var(--grid); font-weight: 600; }
.dash-bar-track { height: 12px; }
.dash-bar-track i { display: block; height: 100%; min-width: 2px; background: var(--c); border-radius: 0 4px 4px 0; }
.dash-bar-value { font-variant-numeric: tabular-nums; white-space: nowrap; }
.dash-bar-value small { color: var(--muted); font-size: 12px; margin-left: 4px; font-weight: 400; }
.dash-chart-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.dash-check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink2); cursor: pointer; }
.dash-legend { display: flex; gap: 16px; margin: 12px 0 4px; font-size: 13px; color: var(--ink2); }
.dash-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dash .key { width: 14px; height: 2px; border-radius: 1px; flex: none; }
.key.s1 { background: var(--s1); }
.key.s2 { background: var(--s2); }
.dash-plot { position: relative; }
.dash-plot svg { display: block; width: 100%; height: auto; overflow: visible; }
.dash-grid { stroke: var(--grid); stroke-width: 1; }
.dash-grid.base { stroke: var(--axis); }
.dash-tick { fill: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.dash-col.s1 { fill: var(--s1); }
.dash-col.s2 { fill: var(--s2); }
.dash { --k1: #2a78d6; --k2: #eb6834; --k3: #1baf7a; --k4: #eda100; --k5: #e87ba4; }
.dash-col.k1 { fill: var(--k1); }
.dash-col.k2 { fill: var(--k2); }
.dash-col.k3 { fill: var(--k3); }
.dash-col.k4 { fill: var(--k4); }
.dash-col.k5 { fill: var(--k5); }
.key.k1 { background: var(--k1); }
.key.k2 { background: var(--k2); }
.key.k3 { background: var(--k3); }
.key.k4 { background: var(--k4); }
.key.k5 { background: var(--k5); }
.dash .key.box { width: 10px; height: 10px; border-radius: 2px; }
.dash-avg { display: none; }
.dash-chart:has([data-dash-avg]:checked) .dash-avg { display: inline; }
.dash-chart:has([data-dash-avg]:checked) .dash-raw { display: none; }
.dash-hit { fill: transparent; }
.dash-band { fill: rgba(51, 51, 51, 0.05); }
.dash-band[hidden] { display: none; }
.dash-tip { position: absolute; top: 0; transform: translateX(-50%); pointer-events: none; padding: 6px 10px; border-radius: 8px; background: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12), 0 0 0 1px var(--line); font-size: 12px; white-space: nowrap; }
.dash-tip b { display: block; margin-bottom: 2px; }
.dash-tip span { display: flex; align-items: center; gap: 6px; color: var(--ink2); font-variant-numeric: tabular-nums; }
.dash-table { margin-top: 12px; font-size: 13px; }
.dash-table summary { cursor: pointer; color: var(--ink2); }
.dash-table table { border-collapse: collapse; margin-top: 8px; font-variant-numeric: tabular-nums; }
.dash-table th, .dash-table td { padding: 4px 12px 4px 0; text-align: right; }
.dash-table th:first-child, .dash-table td:first-child { text-align: left; }
@media (max-width: 560px) {
  .dash-bar-row, .dash-card.wide .dash-bar-row { grid-template-columns: 1fr auto; }
  .dash-bar-label { grid-column: 1 / -1; }
}

.vm-list { display: flex; flex-direction: column; gap: 12px; padding-bottom: 32px; }
.vm { --vm-ink: #1b1f5e; --vm-blue: #1a6fe8; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 1px 3px rgba(13, 37, 84, 0.06); }
.vm:target { border-color: var(--vm-blue); box-shadow: 0 0 0 3px var(--tint); }
.vm-when { display: flex; flex-direction: column; align-items: stretch; align-self: start; gap: 10px; }
.vm-time { font-size: 13px; font-weight: 500; color: #3d4451; text-align: center; white-space: nowrap; }
.vm-day { display: flex; flex-direction: column; align-items: center; overflow: hidden; border-radius: 10px; background: #fff; box-shadow: 0 2px 6px rgba(13, 37, 84, 0.14), 0 0 0 1px var(--line); line-height: 1; padding-bottom: 8px; }
.vm-mon { align-self: stretch; padding: 5px 0 4px; background: #3a7fe0; color: #fff; font-size: 12px; font-weight: 700; text-align: center; text-transform: uppercase; letter-spacing: .05em; }
.vm-day.now .vm-mon { background: #f0574b; }
.vm-day b { margin-top: 6px; font-size: 22px; font-weight: 600; color: var(--vm-ink); }
.vm-day small { margin-top: 4px; font-size: 12px; font-weight: 600; color: #3d4451; text-transform: uppercase; letter-spacing: .03em; }
.vm-body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.vm-top { display: flex; align-items: center; gap: 12px; width: 100%; }
.vm-who { flex: 1; min-width: 0; margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 16px; font-weight: 700; letter-spacing: -0.01em; color: var(--vm-ink); }
.vm-who .vm-person { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 4px 12px 4px 9px; border-radius: 15px; background: #e7f0fb; color: #1f5fae; font: inherit; line-height: 1.25; text-align: left; }
.vm-who .vm-person:hover { background: #d3e4f8; }
.vm-who .vm-person .i { width: 16px; height: 16px; }
.vm-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: 0; white-space: nowrap; }
.vm-tag.member { background: #e1f3e8; color: #1e7a3c; }
.vm-tag.nonmember { background: var(--fill2); color: #3d4451; }
.vm-tag.t0 { background: #e3edfa; color: #2463b0; }
.vm-tag.t1 { background: #fdf3c4; color: #8a6a0f; }
.vm-tag.t2 { background: #efe6f7; color: #6e3fa3; }
.vm-tag.t3 { background: #fde9d7; color: #b05a14; }
.vm-tag.t4 { background: #dff3f3; color: #1d7373; }
.vm-tag.t5 { background: #fbe4ef; color: #a8336b; }
.vm-sendto { position: relative; }
.vm-lpanes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 20px; align-items: start; }
.vm-llist { display: grid; gap: 10px; }
.vm-lrow { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line); }
.vm-lrow.on { background: #eef4fc; box-shadow: 0 0 0 2px var(--accent); }
.vm-lrow.off .vm-lrow-main { opacity: 0.55; }
.vm-lrow-main { flex: 1; min-width: 0; display: grid; justify-items: start; gap: 6px; color: var(--text); }
.vm-lrow-desc { font-size: 14px; color: #3d4451; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vm-lrow-to { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--pale); }
.vm-lrow-tools { display: flex; align-items: center; gap: 2px; }
.vm-lrow-tools form { display: contents; }
.vm-lrow-tools .vm-switch { margin-right: 6px; }
.vm-switch { appearance: none; flex: none; position: relative; width: 40px; height: 24px; border-radius: 999px; background: var(--fill2); cursor: pointer; transition: background 0.15s; }
.vm-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); transition: transform 0.15s; }
.vm-switch:checked { background: var(--accent); }
.vm-switch:checked::after { transform: translateX(16px); }
.vm-ledit { display: grid; gap: 16px; padding: 20px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line); position: sticky; top: 16px; }
.vm-ledit-head { display: flex; align-items: center; justify-content: space-between; }
.vm-ledit-head h2 { font-size: 18px; font-weight: 600; }
.vm-ldel { color: #b3261e; }
.vm-lsection { display: grid; gap: 8px; padding-top: 16px; border-top: 1px solid var(--line); }
.vm-lsection > p { margin: -4px 0 0; }
.vm-active { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; }
.vm-active > span { display: grid; gap: 2px; }
.vm-recips { position: relative; display: grid; gap: 8px; justify-items: start; }
.vm-recips .echip { justify-self: stretch; height: auto; gap: 10px; padding: 8px 8px 8px 10px; border-radius: 10px; background: var(--fill); color: var(--text); font-size: 14px; }
.vm-recips .echip::before { content: attr(data-initial); display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--tint); color: var(--accent); font-size: 13px; font-weight: 600; }
.vm-recips .echip-mail { margin-left: 0; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.vm-recips .echip-x { margin-left: auto; color: var(--pale); }
.vm-recips .echip-in { justify-self: stretch; height: 36px; border-radius: 10px; }
.vm-recips .echip-in[hidden], .vm-add-email[hidden] { display: none; }
.vm-notif { max-width: 640px; }
.vm-ncard { display: grid; gap: 16px; margin-bottom: 16px; padding: 20px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line); }
.vm-ncard .push-note { margin-left: 0; }
.vm-ledit-foot { display: flex; justify-content: flex-end; gap: 8px; padding-top: 16px; border-top: 1px solid var(--line); }
@media (max-width: 860px) {
  .vm-lpanes { grid-template-columns: 1fr; }
  .vm-ledit { position: static; }
}
[data-push-item] { flex-wrap: wrap; }
.push-ask { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin: 12px 0 0; padding: 12px 14px; border-radius: 12px; background: #eef4fc; color: #1f3a68; font-size: 14px; }
.push-ask-acts { display: flex; gap: 8px; }
.push-note { flex-basis: 100%; margin-left: 26px; font-size: 12px; color: var(--pale); white-space: normal; }
.vm-sendmenu .menu { max-height: 320px; overflow-y: auto; min-width: 260px; }
.vm-sendmenu .menu form { display: contents; }
.vm-sendto-item { flex-direction: column; align-items: flex-start !important; gap: 1px !important; }
.vm-sendto-item b { font-weight: 600; }
.vm-sendto-item small { font-size: 12px; color: var(--pale); }
.vm-sendto-link { border-bottom: 1px solid var(--line); border-radius: 6px 6px 0 0; color: var(--vm-blue, #1a6fe8); }
.vm-sendto-other { border-top: 1px solid var(--line); border-radius: 0 0 6px 6px; color: var(--vm-blue, #1a6fe8); }
.vm-added { gap: 2px; padding-right: 4px; }
.vm-added form { display: contents; }
.vm-tag-x { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; color: inherit; opacity: 0.7; }
.vm-tag-x:hover { opacity: 1; background: rgba(0, 0, 0, 0.08); }
.vm-tag-x .i { width: 11px; height: 11px; }
.vm-ask { display: flex; align-items: center; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; width: 100%; margin: 6px 0 0; padding: 12px 14px; border-radius: 12px; background: #eef4fc; color: #1f3a68; font-size: 14px; }
.vm-ask > span:first-of-type { display: flex; align-items: center; gap: 8px; }
.vm-ask .i { flex: none; }
.vm-ask-acts { display: flex; gap: 8px; }
.vm-len { padding: 3px 12px; border-radius: 999px; background: var(--fill2); font-size: 13px; font-weight: 500; color: #3d4451; font-variant-numeric: tabular-nums; }
.vm-more { color: #3d4451; margin-right: -8px; }
.vm-top .menu form { display: contents; }
.menu .vm-danger { color: #b3261e; }
.vm-calls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 14px; }
.vm-calls > .i { color: var(--vm-blue); margin-right: 4px; }
.vm-calls a { color: var(--vm-blue); }
.vm-calls a:hover { text-decoration: underline; }
.vm-summary { font-size: 14px; line-height: 1.5; color: #3d4451; max-width: 760px; }
.vm-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; width: 100%; margin-top: 6px; }
.vm-controls form { display: contents; }
.vm-head-tools { display: flex; align-items: center; gap: 8px; }
.vm-link { font-size: 14px; font-weight: 500; color: var(--vm-blue); }
.vm-link:hover { text-decoration: underline; }
.vm-player { display: flex; align-items: center; gap: 12px; flex: 1 1 240px; max-width: 540px; padding: 6px 16px 6px 6px; border-radius: 999px; background: #f1f3f6; }
.vm-player audio { display: none; }
.vm-play { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--vm-blue); color: #fff; flex: none; }
.vm-play .i { width: 14px; height: 14px; }
.vm-play .vm-i-play { margin-left: 2px; }
.vm-i-pause, .vm-player.playing .vm-i-play { display: none; }
.vm-player.playing .vm-i-pause { display: block; }
.vm-clock { font-size: 13px; color: #3d4451; white-space: nowrap; font-variant-numeric: tabular-nums; }
.vm-seek { flex: 1; min-width: 60px; height: 4px; margin: 0; appearance: none; -webkit-appearance: none; border-radius: 2px; background: linear-gradient(var(--vm-blue), var(--vm-blue)) 0 / var(--p, 0%) 100% no-repeat, #c8ccd3; cursor: pointer; }
.vm-seek::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 12px; border-radius: 50%; background: var(--vm-blue); border: 0; }
.vm-seek::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: var(--vm-blue); border: 0; }
.vm-mute { display: grid; place-items: center; color: #1f2a37; padding-left: 4px; }
.vm-i-off, .vm-player.muted .vm-i-on { display: none; }
.vm-player.muted .vm-i-off { display: block; }
.vm-speed { padding-left: 12px; border-left: 1px solid #d6d9de; font-size: 13px; font-weight: 500; color: #1f2a37; font-variant-numeric: tabular-nums; }
.vm-btn { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 1px solid #c9d8f4; border-radius: 10px; background: #fff; color: var(--vm-blue); font-size: 14px; font-weight: 500; }
.vm-btn .i { width: 16px; height: 16px; }
.vm-btn:hover, .vm-btn[aria-expanded="true"] { background: #f2f7ff; border-color: var(--vm-blue); }
.vm-transcript { width: 100%; max-width: 760px; margin-top: 2px; padding: 12px 14px; border-radius: 10px; background: var(--fill); font-size: 14px; line-height: 1.5; white-space: pre-wrap; }
.vm-shared { max-width: 900px; margin: 0 auto; }
@media (max-width: 560px) {
  .vm { grid-template-columns: 58px minmax(0, 1fr); gap: 6px 12px; padding: 14px 12px; }
  .vm-body { display: contents; }
  .vm-when { grid-row: 1 / span 4; }
  .vm-top, .vm-calls, .vm-summary, .vm-link { grid-column: 2; }
  .vm-link { justify-self: start; }
  .vm-controls, .vm-transcript, .vm-ask { grid-column: 1 / -1; max-width: none; }
  .vm-day b { font-size: 20px; }
  .vm-time { font-size: 12px; }
  .vm-len { display: none; }
  .vm-player { flex-basis: 100%; max-width: none; min-width: 0; gap: 10px; }
  .vm-seek { min-width: 40px; }
  .vm-btn { flex: 1; justify-content: center; }
  .vm-sendmenu { display: flex; flex: 1; }
  .vm-sendmenu .menu { left: auto; right: 0; }
}

.sw-navbtn { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; color: var(--text); }
.sw-navbtn:hover { background: var(--fill); }
.sw-dayhead { display: flex; align-items: flex-start; gap: 20px; flex-wrap: wrap; padding: 4px 0; }
.sw-dayicon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; background: var(--sw-orange-soft); color: var(--sw-orange); flex: none; }
.sw-dayicon .i { width: 26px; height: 26px; }
.sw-daytitle { flex: 1; min-width: 240px; }
.sw-daytitle h1 { font-size: 28px; font-weight: 600; letter-spacing: -0.01em; }
.sw-daycount { display: inline-block; margin-top: 6px; padding: 3px 10px; border-radius: 999px; background: var(--sw-orange-soft); color: var(--sw-orange-dark); font-size: 14px; font-weight: 600; }
.sw-daytitle p { font-size: 14px; margin-top: 10px; max-width: 520px; }
.sw-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 3px; border-radius: 999px; background: var(--fill); font-size: 13px; white-space: nowrap; }
.sw-chip .sw-door { width: 24px; height: 24px; border-radius: 999px; }
.sw-cal { padding: 10px 12px 12px; width: 268px; flex: none; }
.sw-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.sw-cal-head b { font-size: 14px; font-weight: 600; }
.sw-cal-pick { position: relative; display: inline-flex; align-items: center; }
.sw-cal-pick select { appearance: none; -webkit-appearance: none; border: 0; border-radius: 8px; padding: 4px 24px 4px 8px; background: transparent; font: inherit; font-size: 14px; font-weight: 600; color: var(--text); cursor: pointer; }
.sw-cal-pick select:hover { background: var(--fill); }
.sw-cal-pick select:focus-visible { outline: 2px solid var(--sw-orange); }
.sw-cal-pick .i { position: absolute; right: 6px; pointer-events: none; color: var(--sw-orange-dark); }
.sw-cal-grid { display: grid; grid-template-columns: repeat(7, 32px); gap: 3px; justify-content: space-between; }
.sw-cal-wd { font-size: 11px; font-weight: 600; color: var(--pale); text-align: center; }
.sw-cal-day { display: grid; place-items: center; height: 30px; border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--text); font-variant-numeric: tabular-nums; }
.sw-cal-day:hover { box-shadow: inset 0 0 0 1px var(--sw-orange); }
.sw-cal-day.heat-none { background: transparent; color: var(--xpale); }
.sw-cal-day.heat0 { background: var(--fill); }
.sw-cal-day.heat { background: color-mix(in srgb, var(--sw-orange) var(--heat), #fff4ee); }
.sw-cal-day.hot { color: #fff; }
.sw-cal-day.on { box-shadow: 0 0 0 2px var(--sw-teal); }
.sw-nowrap { white-space: nowrap; }
.sw-denied { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #fdecea; color: #b3261e; font-size: 12px; font-weight: 500; }
.sw-page { padding-top: 16px; padding-bottom: 24px; display: grid; gap: 14px; }
.sw-card { background: #fff; border-radius: 14px; box-shadow: 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); }
.sw-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; }
.sw-head > .sw-cover { flex: 0 1 380px; }
.sw-lock-error { display: flex; align-items: center; gap: 6px; margin: 0; color: #b3261e; }
.da-whenbtn { display: inline-flex; align-items: center; gap: 2px; padding: 2px 6px 2px 8px; border: 0; border-radius: 6px; background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); font: inherit; font-weight: 600; cursor: pointer; }
.da-whenbtn:hover { background: color-mix(in srgb, var(--accent) 20%, transparent); }
.da-when { width: 280px; padding: 12px; font-weight: 400; }
.menu-wrap.open > .da-when { display: grid; gap: 10px; }
.da-when .sw-cal-head .icon-btn { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; }
.da-when .sw-cal-grid a.sw-cal-day { display: grid; width: auto; padding: 0; justify-content: center; }
.da-when .sw-cal-day.today { font-weight: 700; color: var(--accent); }
.da-timeform { display: flex; align-items: flex-end; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
.da-timeform label { display: grid; flex: 1; gap: 4px; font-size: 12px; font-weight: 600; color: var(--pale); }
.da-timeform input { height: 34px; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 14px; color: var(--text); }
.da-timeform .btn { height: 34px; }
.menu .btn.da-backnow { justify-content: center; }
.da-asmenu { width: 240px; max-height: 360px; overflow: auto; font-weight: 400; }
.da-asmenu a .pale { margin-left: auto; font-size: 12px; }
.da-asmenu a.on { background: var(--fill); font-weight: 600; }
.da-list { display: grid; gap: 14px; }
.ac-when { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; }
.ac-list { display: grid; gap: 10px; }
.ac-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr); gap: 16px; align-items: center; padding: 14px 18px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); }
.ac-row { position: relative; padding-right: 60px; transition: box-shadow 0.15s; }
.ac-row:hover { box-shadow: 0 0 0 1px #c9ced4, 0 2px 8px rgba(0, 0, 0, 0.06); }
.ac-link { color: inherit; text-decoration: none; }
.ac-link::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.ac-row a.ac-chip, .ac-act { position: relative; z-index: 1; }
.ac-act { position: absolute; top: 12px; right: 12px; }
.ac-act[open] { z-index: 10; }
.ac-actbtn { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #fbe4e2; color: #a3302a; cursor: pointer; list-style: none; }
.ac-actbtn::-webkit-details-marker { display: none; }
.ac-actbtn.open { background: #e3f4ea; color: #1e6b45; }
.ac-actbtn:hover { filter: brightness(0.96); }
.ac-menu { position: absolute; top: 40px; right: 0; z-index: 5; min-width: 190px; padding: 6px; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 8px 24px rgba(0, 0, 0, 0.12); }
.ac-menu form { display: grid; }
.ac-menuhead { padding: 6px 10px 4px; color: var(--pale); font-size: 12px; font-weight: 600; }
.ac-menuitem { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: inherit; font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.ac-menuitem:hover { background: #f2f4f6; }
.ac-door { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ac-door > div { display: grid; gap: 2px; min-width: 0; }
.ac-door .pale { font-size: 12px; }
.ac-state, .ac-who { display: grid; gap: 4px; justify-items: start; font-size: 13px; }
.ac-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: #eef0f2; color: #3c4650; font-size: 13px; font-weight: 600; }
.ac-pill.open { background: #e3f4ea; color: #1e6b45; }
.ac-pill.card { background: #fbf0d0; color: #7a5a0e; }
.ac-pill.locked { background: #fbe4e2; color: #a3302a; }
.ac-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.ac-chip { padding: 2px 8px; border-radius: 999px; background: #e3f4ea; color: #1e6b45; font-size: 12px; font-weight: 500; }
.ac-chip.off { background: #fdecea; color: #b3261e; }
a.ac-chip.door { background: var(--fill); color: var(--text); }
a.ac-chip.door:hover { box-shadow: inset 0 0 0 1px var(--line); }
.dd-groupdoors { margin-top: 8px; gap: 6px; align-items: center; }
.dd-gdoor { display: inline-flex; align-items: center; gap: 2px; padding: 0 4px 0 0 !important; }
.dd-gdoor a { display: inline-flex; align-items: center; gap: 5px; padding: 4px 6px 4px 10px; color: inherit; }
.dd-gdoor form { display: inline-flex; }
.dd-gdoorx { display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--pale); cursor: pointer; }
.dd-gdoorx:hover { background: #fbe4e2; color: #a3302a; }
.dd-gaddbtn { display: grid !important; place-items: center; width: 28px; height: 28px; padding: 0 !important; border: 1px dashed var(--line); cursor: pointer; }
.dd-gadd .menu { max-height: 320px; overflow: auto; }
.dd-gadd form { display: grid; }
.dd-holact { display: flex; gap: 8px; }
.dd-holact form { display: inline-flex; }
.btn.danger { color: #a3302a; }
.dd-groupdoors .ac-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; font-size: 13px; }
.dd-cardhead h2 a { color: inherit; }
.dd-doorlink { color: inherit; text-decoration: none; }
.dd-doorlink:hover { box-shadow: 0 0 0 1px var(--accent), 0 1px 3px rgba(0, 0, 0, 0.04); }
.dd-doorlink .dd-levhead .i { color: var(--pale); }
.da-pagehead { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dd-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.dd-title { display: flex; align-items: center; gap: 14px; min-width: 0; }
.dd-title h1 { margin: 2px 0 0; font-size: 26px; }
.dd-title .pale { font-size: 13px; }
.dd-namewrap { width: fit-content; }
.dd-tabs { margin-top: 4px; }
.dd-kind { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-style: normal; font-weight: 600; vertical-align: 2px; }
.dd-kind.holiday { background: #ede6fb; color: #5b3aa3; }
.dd-kind.override { background: #e3f4ea; color: #1e6b45; }
.dd-ovby { margin: 0; font-size: 12px; }
.dd-holiday form { justify-self: start; }
.dd-holbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dd-holbar .dd-sub { margin: 0; }
.dd-pastsw { flex: none; gap: 8px; color: var(--pale); white-space: nowrap; }
.dd-pastsw i { background: #d0d5db; }
#dd-tab-holidays:has(.dd-pastsw input:not(:checked)) .dd-holiday.past { display: none; }
#dd-tab-holidays:has(.dd-pastsw input:checked) .dd-nopast { display: none; }
.s2r { display: inline-flex; align-items: center; gap: 10px; }
.s2r-text { display: grid; gap: 4px; min-width: 210px; color: var(--pale); font-size: 12px; white-space: nowrap; }
.s2r-bar { display: none; height: 4px; overflow: hidden; border-radius: 999px; background: var(--line); }
.s2r-bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); transition: width 0.3s; }
.s2r.running .s2r-bar { display: block; }
.s2r.running .s2r-text { color: var(--text); }
.s2r.failed .s2r-text { color: #a3302a; }
.s2r.running [data-s2-go] .i { animation: s2r-spin 1s linear infinite; }
@keyframes s2r-spin { to { transform: rotate(360deg); } }
.dd-tabn { min-width: 20px; padding: 1px 6px; border-radius: 999px; background: #ede6fb; color: #5b3aa3; font-size: 12px; font-style: normal; font-weight: 700; text-align: center; }
.dd-col[role="tabpanel"][hidden] { display: none; }
.ulp { --ulp-green: #2f6a4e; --ulp-tile: #eaf4ee; }
.ulp-head { margin-top: 8px; }
.ulp-eyebrow { display: flex; align-items: center; gap: 10px; color: #4b5560; font-size: 13px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; }
.ulp-head h1 { margin: 14px 0 10px; font-size: 40px; line-height: 1.05; letter-spacing: -0.035em; color: #1f2d2a; }
.ulp-head p { margin: 0; color: #5c6670; font-size: 16px; }
.ulp-search { display: flex; align-items: center; gap: 8px; margin-top: 16px; padding: 0 14px; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--line); color: var(--pale); }
.ulp-search:focus-within { box-shadow: 0 0 0 2px var(--accent); }
.ulp-search input { flex: 1; min-width: 0; height: 46px; border: 0; background: none; font: inherit; font-size: 16px; color: var(--text); outline: none; }
.ulp-none { margin: 18px 0 0; }
.ulg[hidden], .ulc[hidden], .ulp-none[hidden] { display: none; }
.ulg { margin-top: 28px; scroll-margin-top: 76px; }
.ulg summary { display: flex; align-items: center; gap: 12px; padding: 4px 0 14px; list-style: none; cursor: pointer; color: #4b5560; }
.ulg summary::-webkit-details-marker { display: none; }
.ulg summary b { color: #1f2d2a; font-size: 19px; }
.ulg-count { padding: 1px 9px; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--line); color: #4b5560; font-size: 13px; font-variant-numeric: tabular-nums; }
.ulg.fav summary > .i:first-child { color: #9a6b12; fill: currentColor; }
.ulg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.ulg-grid > * { min-width: 0; }
.ulc { --t: #6b747c; --tb: #f2f4f6; position: relative; display: grid; grid-template-rows: auto 1fr auto; gap: 10px; min-width: 0; min-height: 150px; padding: 14px 12px 12px 14px; border-radius: 16px; background: var(--tb); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--t) 45%, transparent), 0 3px 0 color-mix(in srgb, var(--t) 35%, transparent); color: #1f2d2a; transition: transform 0.08s, box-shadow 0.08s; }
.ulc.tone-teal { --t: #11756f; --tb: #e6f4f3; }
.ulc.tone-orange { --t: #d9741a; --tb: #fdeedd; }
.ulc.tone-blue { --t: #2463b0; --tb: #e8f0fb; }
.ulc.tone-green { --t: #3d7f2f; --tb: #e9f5e6; }
.ulc.tone-red { --t: #c62828; --tb: #fdecea; }
.ulc.tone-purple { --t: #6a4bc4; --tb: #efeafb; }
.ulc.tone-amber { --t: #a86a0c; --tb: #fdf3e1; }
.ulc.tone-pink { --t: #c2397a; --tb: #fce7f1; }
.ulc.tappable:active { transform: translateY(2px); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--t) 45%, transparent), 0 1px 0 color-mix(in srgb, var(--t) 35%, transparent); }
.ulc-top { display: flex; align-items: flex-start; justify-content: space-between; }
.ulc-icon { display: inline-flex; align-items: center; gap: 8px; color: var(--t); }
.ulc-icon .i { flex: none; width: 24px; height: 24px; }
.ulc-icon .ulc-num { color: #5c6670; font-size: 13px; font-weight: 600; letter-spacing: 0.03em; font-variant-numeric: tabular-nums; }
.ulc-name { align-self: center; font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
.ulc-foot { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
.ulc-state { display: inline-flex; align-items: center; gap: 4px; min-width: 0; overflow: hidden; color: #5c6670; font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ulc-state > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.ulc-state .i { flex: none; width: 13px; height: 13px; }
.ulc-go { display: inline-flex; flex: none; align-items: center; color: var(--t); font-size: 13px; font-weight: 600; }
.ulc-go .i { width: 18px; height: 18px; }
.ulc-favform { position: relative; z-index: 2; display: flex; margin: -4px -4px 0 0; }
.ulc-fav { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 10px; background: none; color: color-mix(in srgb, var(--t) 70%, #6b747c); cursor: pointer; }
.ulc-fav .i { width: 22px; height: 22px; }
.ulc-fav.on { color: #9a6b12; }
.ulc-fav .ulc-star-on, .ulc-fav.on .ulc-star-off { display: none; }
.ulc-fav.on .ulc-star-on { display: block; }
.ulg-fav { flex: none; color: #6b747c; }
.ulp-status { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 14px; font-size: 13px; font-weight: 500; color: #4b5560; }
.ulp-status > span { display: inline-flex; align-items: center; gap: 6px; }
.ulp-status .yes { color: #11756f; }
.ulg .seq-new { margin-left: auto; }
.seqc .ulc-favform { gap: 2px; }
.seq-dlg { width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); border-radius: 18px; overflow-y: auto; }
.seq-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 24px 24px 0; }
.seq-head h2 { margin: 0; font-size: 24px; font-weight: 700; line-height: 1.2; color: #1f2d2a; overflow-wrap: anywhere; }
.seq-head p { margin: 4px 0 0; font-size: 14px; color: var(--pale); }
.seq-body { display: grid; gap: 18px; padding: 18px 24px; }
.seq-body .fld > span, .seq-order > b { font-size: 14px; font-weight: 600; color: #1f2d2a; }
.seq-order { display: grid; gap: 10px; }
.seq-body .fld input, .seq-card select, .seq-wait input { height: 40px; padding: 0 12px; border: 1px solid #cdd3d7; border-radius: 9px; background: #fff; font: inherit; color: #1f2d2a; }
.seq-rows { display: grid; gap: 14px; counter-reset: seq-step; }
.seq-step { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px; align-items: start; counter-increment: seq-step; }
.seq-num { display: grid; place-items: center; width: 30px; height: 30px; margin-top: 6px; border: 2px solid #11756f; border-radius: 50%; background: #fff; color: #11756f; font-size: 14px; font-weight: 700; }
.seq-num::before { content: counter(seq-step); }
.seq-step:not(:last-child)::after { content: ""; position: absolute; top: 40px; bottom: -14px; left: 14px; width: 2px; background: #d7dcdf; }
.seq-card { display: grid; gap: 8px; min-width: 0; padding: 12px 14px; border: 1px solid #dfe3e6; border-radius: 12px; }
.seq-when { font-size: 13px; font-weight: 500; color: #5c6670; }
.seq-step:first-child .seq-later, .seq-step:not(:first-child) .seq-first { display: none; }
.seq-wait { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #5c6670; }
.seq-wait input { width: 76px; }
.seq-door { display: flex; align-items: center; gap: 6px; min-width: 0; }
.seq-door select { flex: 1; width: 100%; min-width: 0; }
.seq-door .icon-btn { flex: none; color: #5c6670; }
.seq-rows:has(> :nth-child(2):last-child) [data-seq-remove] { opacity: 0.35; cursor: default; }
.link-btn.seq-add { justify-self: start; color: #11756f; }
.seq-note { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; color: var(--pale); }
.seq-note .i { flex: none; }
.seq-foot { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin: 0 24px; padding: 16px 0 24px; border-top: 1px solid #e4e7e9; }
.seq-foot .link-btn.danger { margin-right: auto; }
.ulc-act { position: absolute; inset: 0; z-index: 1; }
.ulc-hit { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 16px; background: none; cursor: pointer; }
.ulc-hit:focus-visible { outline: 2px solid var(--t); outline-offset: 2px; }
.ulc-act .menu { top: auto; bottom: 8px; left: 8px; right: 8px; width: auto; }
.ulc.busy { opacity: 0.85; }
.ulc.done { --t: #2f9e64; --tb: #d9f2e3; }
.ulc.failed { --t: #a3302a; --tb: #fbe4e2; }
.ulc-error { color: #a3302a; font-size: 12px; }
.ulc.notnow { --t: #8a949c; --tb: #f2f4f6; }
.ulc-when { color: #5c6670; font-size: 11px; line-height: 1.3; }
@media (max-width: 480px) {
  .ulp-head h1 { font-size: 34px; }
}
.ul-menu { width: 260px; }
.ul-menu .ul-hint { margin-left: auto; color: var(--pale); font-size: 11px; }
.ul-menu form + form, .ul-menu form + details { border-top: 1px solid var(--line); }
.menu-wrap.open > .ul-menu { display: grid; }
.ul-menu form { display: grid; }
.ul-more summary { list-style: none; }
.ul-more summary::-webkit-details-marker { display: none; }
.ul-more summary .i:last-child { margin-left: auto; transition: transform 0.15s; }
.ul-more[open] summary .i:last-child { transform: rotate(180deg); }
.ul-form { gap: 8px; padding: 4px 10px 10px; }
.ul-form label { display: grid; gap: 4px; color: var(--pale); font-size: 12px; font-weight: 600; }
.ul-form input { width: 100%; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 14px; }
.dd-namepick { display: inline-flex; align-items: center; gap: 8px; margin: 0 -8px; padding: 2px 8px; border: 0; border-radius: 10px; background: none; color: inherit; font: inherit; cursor: pointer; }
.dd-namepick:hover, .dd-namewrap.open > .dd-namepick { background: var(--fill, #f2f4f6); }
.dd-namepick .i { color: var(--pale); transition: transform 0.15s; }
.dd-namewrap.open > .dd-namepick .i { transform: rotate(180deg); }
.dd-namewrap .menu { font-size: 14px; font-weight: 400; }
.dd-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--line); color: var(--pale); }
.dd-tools { display: flex; align-items: center; gap: 10px; }
.dd-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr); gap: 20px; align-items: start; }
.dd-grid.dd-door { grid-template-columns: minmax(0, 1fr) 450px; }
.dd-col { display: grid; gap: 12px; align-content: start; }
.dd-card { padding: 20px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); }
.dd-state { display: grid; gap: 6px; padding: 24px; }
.dd-state p { margin: 0 0 6px; color: var(--pale); font-size: 14px; }
.dd-stateicon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 14px; border-radius: 14px; background: #f3e8d6; color: #8a6420; }
.dd-stateicon.open { background: #e3f4ea; color: #1e6b45; }
.dd-state .da-state { margin: 0; font-size: 32px; }
.dd-next { display: grid; gap: 4px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--pale); }
.dd-next b { font-size: 26px; font-weight: 700; color: var(--text); }
.dd-sechead { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; }
.dd-sechead h2 { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 17px; }
.dd-count { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 10px; border-radius: 8px; background: var(--fill); font-size: 13px; color: var(--pale); }
.dd-sub { margin: -4px 0 4px; font-size: 13px; color: var(--pale); }
.dd-card .dd-sub { margin: 4px 0 14px; }
.dd-level { display: flex; gap: 14px; padding: 16px; }
.dd-levicon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: var(--fill); color: var(--pale); }
.dd-level.open { box-shadow: 0 0 0 1px #ecd58f; background: #fdf8e8; }
.dd-level.open .dd-levicon { background: #fbf0d0; color: #7a5a0e; }
.dd-levbody { display: grid; gap: 4px; flex: 1; min-width: 0; }
.dd-levhead { display: flex; justify-content: space-between; gap: 8px; }
.dd-levhead b { font-size: 15px; }
.dd-levhead .pale { font-size: 12px; }
.dd-levstate { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--pale); }
.dd-level.open .dd-levstate { color: #7a5a0e; font-weight: 500; }
.dd-level.open .dd-hol { color: #7a5a0e; }
.dd-doorlink.unlocked { box-shadow: 0 0 0 1px #b9e2c9; background: #f4fbf7; }
.dd-doorlink.unlocked .dd-levicon { background: #e3f4ea; color: #1e6b45; }
.dd-doorlink.unlocked .dd-levstate { color: #1e6b45; font-weight: 500; }
.dd-hours { display: grid; gap: 2px; margin-top: 6px; font-size: 13px; color: var(--pale); }
.dd-hours b { font-weight: 600; color: var(--text); }
.dd-hol { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; font-size: 12px; color: #1e6b45; }
.dd-cardhead { display: flex; align-items: center; gap: 8px; }
.dd-cardhead h2 { margin: 0; font-size: 17px; }
.dd-agadd { margin-left: auto; padding: 4px 10px; font-size: 13px; }
.dd-week { display: grid; gap: 8px; }
.dd-axis, .dd-day { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 8px; font-size: 12px; color: var(--pale); }
.dd-axis { grid-template-columns: 44px repeat(3, minmax(0, 1fr)); }
.dd-axis span:nth-child(3) { text-align: center; }
.dd-axis span:nth-child(4) { text-align: right; }
.dd-day > span { font-size: 13px; }
.dd-track { position: relative; height: 28px; border-radius: 6px; background: #f2f4f6; }
.dd-track i { position: absolute; top: 0; bottom: 0; display: grid; place-items: center; border-radius: 4px; background: #dbe7f6; color: #2d4d7a; font-size: 11px; font-style: normal; font-weight: 500; overflow: hidden; white-space: nowrap; }
.dd-track em { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: 12px; font-style: normal; }
.dd-legend { display: flex; align-items: center; gap: 6px; margin: 4px 0 0 52px; font-size: 12px; color: var(--pale); }
.dd-legend i { width: 10px; height: 10px; border-radius: 2px; background: #dbe7f6; }
.dd-holiday { display: grid; gap: 14px; }
.dd-cal { padding: 14px 16px; }
.dd-calgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.dd-calday { display: grid; place-items: center; justify-self: center; width: 30px; height: 28px; border-radius: 8px; color: inherit; font-size: 13px; text-decoration: none; }
.dd-calday:hover { background: #f2f4f6; }
.dd-calday.hol { background: #ede6fb; color: #5b3aa3; font-weight: 600; }
.dd-calday.today { box-shadow: inset 0 0 0 1.5px var(--line-strong, #c9ced4); }
.dd-calday.on { background: var(--accent, #1f5f63); color: #fff; font-weight: 600; }
.dd-calday.on.hol { box-shadow: inset 0 0 0 3px #ede6fb; }
.dd-calkey { display: grid; gap: 4px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; }
.dd-calkey > span:first-child { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.dd-calkey i.hol { width: 12px; height: 12px; border-radius: 4px; background: #ede6fb; box-shadow: inset 0 0 0 1px #c9b8ee; }
.dd-aghol { display: flex; align-items: flex-start; gap: 8px; margin: 4px 0 12px; padding: 10px 12px; border-radius: 10px; background: #ede6fb; color: #5b3aa3; font-size: 13px; }
.dd-agday { position: relative; height: 624px; margin: 14px 0 6px; padding-left: 52px; }
.dd-aghour { position: absolute; left: 0; width: 44px; transform: translateY(-50%); color: var(--pale); font-size: 11px; text-align: right; white-space: nowrap; }
.dd-agtrack { position: relative; height: 100%; border-left: 1px solid var(--line); background: repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px 26px); }
.dd-agblock { position: absolute; left: 4px; right: 2px; display: grid; align-content: start; gap: 2px; padding: 4px 8px; overflow: hidden; border-radius: 6px; border-left: 3px solid; box-shadow: 0 0 0 1px #fff; font-size: 12px; }
.dd-agblock.open { background: #e3f4ea; border-color: #2f9e64; }
.dd-agblock.card { background: #fbf0d0; border-color: #d4a52a; }
.dd-agblock b { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: 13px; }
.dd-agblock.open b { color: #1e6b45; }
.dd-agblock.card b { color: #7a5a0e; }
.dd-agtime { color: #3c4650; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
.dd-agbody { display: grid; gap: 2px; min-width: 0; color: #3c4650; }
.dd-agblock.short .dd-agbody { display: none; }
.dd-agwhole { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.dd-agnow { position: absolute; left: -6px; right: 0; z-index: 2; height: 2px; background: #d3412f; pointer-events: none; }
.dd-agnow::before { content: ""; position: absolute; left: 0; top: -5px; width: 12px; height: 12px; border-radius: 50%; background: #d3412f; }
.dd-holhead { display: flex; align-items: center; gap: 14px; }
.dd-holhead > div { display: grid; gap: 2px; }
.dd-holhead b { font-size: 16px; }
.dd-holhead span { font-size: 13px; color: var(--pale); }
.dd-date { display: grid; place-items: center; min-width: 64px; padding: 6px 10px; border-radius: 10px; background: #f2f4f6; }
.dd-date small { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; color: var(--pale); }
.dd-date b { font-size: 22px; font-weight: 700; line-height: 1.1; }
.dd-line, .dd-allow { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; }
.dd-line > div, .dd-allow > div { display: grid; gap: 2px; }
.dd-line span, .dd-allow span { font-size: 13px; color: var(--pale); }
.dd-line b, .dd-allow b { font-weight: 500; }
.dd-allow { padding: 12px 14px; border-radius: 10px; background: #fbf0d0; color: #7a5a0e; }
.dd-allow span { color: #8a6a1e; }
.dd-allow.none { background: #fdecea; color: #b3261e; }
.dd-allow.none span { color: #b3261e; }
.dd-exact { padding-top: 10px; border-top: 1px solid var(--line); font-size: 13px; color: var(--pale); }
.dd-exact summary { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; list-style: none; }
.dd-exact summary::-webkit-details-marker { display: none; }
.dd-exact p { margin: 8px 0 0; }
.dd-foot { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: 13px; color: var(--pale); }
.ov-card { box-shadow: 0 0 0 1px #f0d7a8, 0 1px 3px rgba(0, 0, 0, 0.04); }
.ov-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ov-quick label { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; }
.ov-quick select, .ov-form input { height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font: inherit; font-size: 14px; color: var(--text); }
.ov-more { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 13px; }
.ov-more summary { display: inline-flex; align-items: center; gap: 4px; color: var(--pale); cursor: pointer; list-style: none; }
.ov-more summary::-webkit-details-marker { display: none; }
.ov-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: end; gap: 10px; margin-top: 10px; }
.ov-form label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: var(--pale); }
.ov-sub { margin: 14px 0 4px; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--pale); }
.ov-list { display: grid; }
.ov-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.ov-list > .ov-row:first-child { border-top: 0; }
.ov-what { display: grid; flex: 1; gap: 2px; min-width: 0; font-size: 13px; }
.ov-what b { font-size: 14px; }
.ov-status { padding: 2px 8px; border-radius: 999px; background: #eef0f2; color: #3c4650; font-size: 12px; font-weight: 600; }
.ov-status.unlocked { background: #e3f4ea; color: #1e6b45; }
.ov-status.scheduled { background: #fdf3e1; color: #8a6420; }
@media (max-width: 900px) {
  .dd-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1150px) {
  .dd-grid.dd-door { grid-template-columns: 1fr; }
  .dd-grid.dd-door > .dd-col:last-child { width: 100%; max-width: 510px; }
}
.da-doormenu { width: 280px; max-height: 420px; overflow: auto; }
.da-doormenu a.on { background: var(--fill); font-weight: 600; }
.da-holidays li div { gap: 4px; }
.da-holidays .ac-chips { margin-top: 2px; }
.da-tag { margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: #eef0f2; color: #5b6570; font-size: 11px; font-style: normal; font-weight: 500; }
@media (max-width: 900px) {
  .ac-row { grid-template-columns: 1fr; gap: 10px; }
}
.da { display: grid; gap: 22px; padding: 22px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 1px 3px rgba(0, 0, 0, 0.04); }
.da-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.da-head h2 { margin: 2px 0 0; font-size: 20px; font-weight: 700; }
.da-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pale); }
.da-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--line); font-size: 13px; color: var(--pale); }
.da-hero { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 20px; align-items: center; padding: 22px; border-radius: 12px; background: #f5f7f6; }
.da-hero p { margin: 8px 0 12px; color: var(--pale); font-size: 14px; line-height: 1.5; }
.da-art { position: relative; justify-self: center; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line); }
.da-art .da-door { width: 28px; height: 28px; color: var(--pale); }
.da-lock { position: absolute; right: -8px; bottom: -8px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #3c4650; color: #fff; }
.da-lock.open { background: #1e6b45; }
.da-state { margin-top: 4px; font-size: 26px; font-weight: 700; letter-spacing: -0.01em; }
.da-schedules { display: grid; gap: 4px; margin: 0 0 12px; padding: 0; list-style: none; font-size: 13px; color: var(--pale); }
.da-schedules b { color: #333; font-weight: 600; }
.da-pill { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 13px; }
.da-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.da-colhead { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; font-size: 15px; font-weight: 600; }
.da-colhead > span:first-child { display: inline-flex; align-items: center; gap: 6px; }
.da-colhead > span:last-child { font-size: 13px; font-weight: 400; color: var(--pale); }
.da-in { display: grid; gap: 2px; margin-bottom: 10px; padding: 16px 18px; border-radius: 12px; background: #e3f4ea; }
.da-in b { margin-top: 10px; font-size: 17px; font-weight: 600; color: #17322a; }
.da-key { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #fff; color: #1e6b45; }
.da-in .da-num { font-size: 13px; color: #4b6b5c; }
.da-hours { margin-top: 10px; font-size: 14px; font-weight: 500; color: #1e6b45; }
.da-hol { font-size: 12px; color: #4b6b5c; }
.da-out { margin: 0; padding: 0; list-style: none; }
.da-out li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-top: 1px solid var(--line); }
.da-out li div { display: grid; gap: 2px; }
.da-out b { font-size: 14px; font-weight: 600; }
.da-out li div span { font-size: 13px; color: var(--pale); }
.da-out .da-num { font-size: 13px; color: var(--pale); }
.da-none { margin: 0; font-size: 13px; color: var(--pale); }
.da-foot { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: var(--pale); }
@media (max-width: 720px) {
  .da { padding: 18px; }
  .da-hero { grid-template-columns: 1fr; }
  .da-art { justify-self: start; }
  .da-cols { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  .sw-head { flex-wrap: wrap; }
}
.sw-who { display: flex; align-items: center; gap: 18px; min-width: 0; }
.sw-who .sw-face { width: 72px; height: 72px; font-size: 26px; flex: none; background: none; }
.sw-hbars { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sw-hbars li { display: grid; grid-template-columns: 24px minmax(0, 1fr) minmax(80px, 1fr) 36px; align-items: center; gap: 10px; font-size: 14px; }
.sw-nb { display: grid; gap: 10px; }
.sw-seg { display: inline-flex; justify-self: start; padding: 3px; border-radius: 999px; background: var(--fill); }
.sw-seg label { position: relative; padding: 5px 14px; border-radius: 999px; font-size: 13px; font-weight: 500; color: var(--pale); cursor: pointer; }
.sw-seg input { position: absolute; opacity: 0; pointer-events: none; }
.sw-seg label:has(input:checked) { background: #fff; color: var(--text); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12); }
.sw-seg label:has(input:focus-visible) { outline: 2px solid var(--sw-orange); outline-offset: 1px; }
.sw-switch .nb-groups { display: none; }
.sw-switch:has(.sw-seg input[value="groups"]:checked) .nb-groups { display: block; }
.sw-switch:has(.sw-seg input[value="groups"]:checked) .nb-doors { display: none; }
.sw-panel-head .sw-seg { margin-right: auto; }
.sw-hbars .sw-hbar-label { color: var(--pale); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-hbars li > a { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-hbars .sw-door { width: 24px; height: 24px; border-radius: 999px; }
.sw-hbar { display: block; height: 14px; border-radius: 4px; background: var(--fill); }
.sw-hbar i { display: block; height: 100%; border-radius: 4px; background: #f9c9b5; }
.sw-hbars li:first-child .sw-hbar i { background: var(--sw-orange); }
.sw-hbars b { font-weight: 600; text-align: right; }
.sw-pie-card { width: fit-content; max-width: 100%; }
.sw-step.opens { cursor: pointer; margin: 0 -10px; padding-left: 10px; padding-right: 10px; border-radius: 8px; }
.sw-step.opens:hover { background: var(--sw-orange-soft); }
.sw-visit-dlg[open] { display: flex; flex-direction: column; max-height: calc(100vh - 32px); }
.sw-visit-dlg > [data-load-into] { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.sw-visit-dlg > .sw-visit-x { position: absolute; top: 20px; right: 20px; }
.sw-visit-dlg .dlg-head { padding-right: 64px; }
.sw-visit-dlg .sw-visit { flex: 1; min-height: 0; overflow: auto; }
.sw-visit { padding: 4px 24px 24px; }
.sw-visit-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.sw-visit-head .po-avatar { width: 44px; height: 44px; font-size: 16px; }
.sw-visit-head h3 { font-size: 18px; font-weight: 600; }
.sw-visit-head h3 a { color: var(--text); }
.sw-visit > .pale { font-size: 13px; margin-bottom: 8px; }
.sw-cal3-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.sw-cal3-head b { font-size: 14px; font-weight: 600; }
.sw-cal3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px 28px; }
.sw-cal3 .sw-cal { width: auto; padding: 0; }
.sw-cal3 .sw-cal-grid { grid-template-columns: repeat(7, minmax(30px, 1fr)); }
.sw-cal3-month { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.sw-heatkey { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; margin-top: 16px; font-size: 12px; }
.sw-heatkey > .pale { line-height: 22px; }
.sw-heatkey-step { display: grid; justify-items: center; gap: 2px; }
.sw-heatkey-step .sw-cal-day { width: 28px; height: 22px; border-radius: 6px; }
.sw-heatkey-step .sw-cal-day.heat-none { box-shadow: inset 0 0 0 1px var(--line); }
.sw-heatkey-step small { font-size: 11px; color: var(--pale); white-space: nowrap; }
.sw-heatkey-more { display: inline-flex; gap: 8px; margin-left: 16px; }
.sw-flow { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 14px; align-items: start; }
.sw-flow > .sw-pair, .sw-flow > .sw-nb, .sw-flow > .sw-nb > .sw-pair { display: contents; }
.sw-flow .sw-seg { grid-column: 1 / -1; }
.sw-flow .sw-pie-card { width: auto; }
.sw-pie { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.sw-pie svg { width: 120px; height: 120px; flex: none; transform: none; }
.sw-pie-legend { min-width: 220px; list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sw-pie-legend li { display: grid; grid-template-columns: 12px minmax(0, 240px) 40px 56px; align-items: center; gap: 10px; font-size: 14px; }
.sw-pie-legend b { text-align: right; }
.sw-pie-legend i { width: 12px; height: 12px; border-radius: 3px; }
.sw-pie-legend a { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-pie-legend b { font-weight: 600; }
.sw-pie-legend .pale { font-size: 13px; text-align: right; }
.sw-door.search-door { width: 32px; height: 32px; border-radius: 50%; }
.sw-initials { display: block; border-radius: 999px; }
.sw-initials .po-avatar { width: 100%; height: 100%; font-size: 24px; }
.sw-who h1 { font-size: 28px; font-weight: 600; letter-spacing: -0.01em; }
.sw-meta { color: var(--pale); font-size: 14px; margin-top: 4px; }
.sw-meta a { color: var(--accent); }
.sw-cover { display: flex; gap: 12px; max-width: 420px; padding-left: 20px; border-left: 1px solid var(--line); font-size: 13px; color: var(--pale); }
.sw-cover > .i { flex: none; color: var(--pale); }
.sw-cover small { display: block; font-size: 12px; }
.sw-cover b { display: block; font-size: 15px; font-weight: 600; color: var(--text); margin: 2px 0 4px; }
.sw-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.sw-tile { display: flex; gap: 12px; padding: 16px; border-radius: 12px; }
.sw-tile > .i { flex: none; width: 24px; height: 24px; }
.sw-tile small { display: block; font-size: 13px; font-weight: 500; }
.sw-tile b { display: block; font-size: 20px; font-weight: 600; color: var(--text); margin: 4px 0 2px; }
.sw-tile span { font-size: 13px; color: var(--pale); }
.sw-tile .sw-line { display: block; font-size: 15px; line-height: 1.35; color: var(--text); }
.sw-tile .sw-hour { display: flex; justify-content: space-between; gap: 8px; white-space: nowrap; }
.sw-tile .sw-hour span { font-size: 13px; font-weight: 500; color: var(--pale); }
.sw-tile.teal { background: #e6f4f3; color: #11756f; }
.sw-tile.blue { background: #e8f0fb; color: #2463b0; }
.sw-tile.purple { background: #efeafb; color: #6a4bc4; }
.sw-tile.amber { background: #fdf3e1; color: #a86a0c; }
.sw-tile.green { background: #e9f5e6; color: #3d7f2f; }
.sw-split { display: grid; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); gap: 14px; align-items: start; }
.sw-dates { padding: 8px; max-height: 70vh; overflow-y: auto; position: sticky; top: 76px; }
.sw-dates-head { padding: 8px 10px; font-size: 13px; font-weight: 600; }
.sw-dates ol { list-style: none; margin: 0; padding: 0; }
.sw-date { display: block; padding: 10px 12px; border-radius: 10px; }
.sw-date:hover { background: var(--fill); }
.sw-date.on { background: var(--sw-orange-soft); box-shadow: inset 3px 0 0 var(--sw-orange); }
.sw-date.led { display: flex; align-items: center; gap: 10px; }
.sw-date .po-avatar { width: 32px; height: 32px; font-size: 12px; }
.sw-date-text { display: block; min-width: 0; }
.sw-date-text b { display: block; font-size: 14px; font-weight: 600; }
.sw-date-text > span { display: block; font-size: 13px; color: var(--pale); margin-top: 2px; }
.sw-date.denied b { color: #b3261e; }
.sw-step .po-avatar { width: 30px; height: 30px; font-size: 12px; }
.sw-step a { color: var(--text); }
.sw-step a:hover, .sw-detail-head h2 a:hover { color: var(--accent); }
.sw-detail-head h2 a { color: var(--text); }
.sw-door.huge { width: 72px; height: 72px; border-radius: 16px; }
.sw-door.huge .i { width: 34px; height: 34px; }
.sw-chip { color: var(--text); }
a.sw-chip:hover { box-shadow: inset 0 0 0 1px var(--accent); }
.sw-groupbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; }
.sw-groupbar b { color: var(--text); font-weight: 600; }
.sw-flip { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border-radius: 10px; background: var(--sw-orange); color: #fff; font-weight: 600; box-shadow: 0 2px 6px rgba(236, 70, 22, 0.3); }
.sw-flip:hover { background: var(--sw-orange-dark); }
.sw-flip .i { color: #fff; }
.sw-detail { padding: 18px 22px; }
.sw-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.sw-detail-head h2 { font-size: 20px; font-weight: 600; margin-bottom: 2px; }
.sw-steps { list-style: none; margin: 0; padding: 6px 0 0; }
.sw-step { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.sw-step:last-child { border-bottom: 0; }
.sw-step > b { width: 76px; flex: none; font-weight: 600; font-variant-numeric: tabular-nums; }
.sw-step em { margin-left: auto; font-style: normal; font-size: 12px; font-weight: 500; padding: 2px 8px; border-radius: 999px; background: #fdecea; color: #b3261e; }
.sw-step.denied > span { color: #b3261e; }
.sw-door { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; flex: none; }
.sw-door.orange { background: #fdeedd; color: #d9741a; }
.sw-door.blue { background: #e8f0fb; color: #2463b0; }
.sw-door.green { background: #e9f5e6; color: #3d7f2f; }
.sw-door.red { background: #fdecea; color: #c62828; }
.sw-door.purple { background: #efeafb; color: #6a4bc4; }
.sw-door.teal { background: #e6f4f3; color: #11756f; }
.sw-door.grey { background: var(--fill); color: var(--pale); }
.sw-door.amber, .sw-kind.amber { background: #fdf3e1; color: #a86a0c; }
.sw-door.pink, .sw-kind.pink { background: #fce7f1; color: #c2397a; }
.sw-door.big { width: 42px; height: 42px; border-radius: 10px; }
.sw-door.big .i { width: 20px; height: 20px; }
.sw-week { flex: 1 1 220px; min-width: 200px; max-width: 360px; }
.sw-week small { display: block; font-size: 12px; color: var(--pale); }
.sw-week > b { display: block; font-size: 15px; font-weight: 600; margin: 2px 0 8px; }
.sw-bars { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; height: 64px; }
.sw-bar { display: grid; grid-template-rows: 1fr auto; gap: 4px; text-align: center; }
.sw-bar i { align-self: end; display: block; min-height: 3px; border-radius: 4px 4px 2px 2px; background: #f9c9b5; }
.sw-bar.top i { background: var(--sw-orange); }
.sw-bar span { height: 14px; line-height: 14px; font-size: 11px; color: var(--pale); }
.sw-bar.top span { color: var(--text); font-weight: 600; }
.sw-bars.mid { height: 130px; }
.sw-bars.tall { height: 190px; gap: 3px; }
a.sw-bar:hover i { background: var(--sw-orange-dark); }
.sw-bars.tall .sw-bar span, .sw-bars.mid .sw-bar span { position: relative; z-index: 1; justify-self: start; width: 0; overflow: visible; white-space: nowrap; }
.sw-panel { padding: 18px 22px; }
.sw-panel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.sw-panel-head h2 { font-size: 17px; font-weight: 600; }
.sw-panel-head .pale { font-size: 13px; }
.sw-tabs { margin-top: 0; overflow: visible; }
.sw-tabs a.on { border-color: var(--sw-orange); }
.sw-tabs a .i { color: var(--sw-orange); }
.sw-tabs a .pale { font-weight: 500; font-size: 13px; }
.sw-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.sw-pair.wide { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.sw-pair.withcal { grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
.sw-pair.three { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.sw-events { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 10px 0 2px; padding: 8px 10px; border-radius: 10px; background: #f3f0fb; font-size: 13px; }
.sw-events > .i { color: #6a4bc4; flex: none; }
.sw-events-label { font-weight: 600; color: #6a4bc4; margin-right: 2px; }
.sw-events.none { background: var(--fill); color: var(--pale); }
.sw-events.none > .i { color: var(--pale); }
.sw-events.inhead { display: inline-flex; margin: 10px 0 0 8px; }
.sw-event { display: inline-flex; align-items: baseline; gap: 6px; padding: 3px 10px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px #e2dbf6; color: var(--text); }
.sw-event b { font-weight: 600; color: #6a4bc4; font-variant-numeric: tabular-nums; }
.sw-event:hover { box-shadow: 0 0 0 1.5px #6a4bc4; }
.sw-evtag { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; max-width: 100%; font-style: normal; font-size: 12px; font-weight: 500; color: #6a4bc4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-evtag .i { width: 12px; height: 12px; flex: none; }
.sw-pinform { display: inline-flex; }
.sw-toolbar.stack .sw-filterrow { display: flex; align-items: center; gap: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.sw-pinmenu { width: 280px; padding: 12px; }
.sw-pinrename { display: grid; gap: 8px; }
.sw-pinrename label { font-size: 12px; font-weight: 500; color: var(--pale); }
.sw-pinrename input { height: 34px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--line); font: inherit; font-size: 14px; }
.sw-pinrename input:focus { outline: 2px solid var(--sw-orange); outline-offset: -1px; }
.sw-pinmenu .btn.accent { background: var(--sw-orange); border-color: var(--sw-orange); }
.sw-pinmenu .sw-unpin { width: 100%; margin-top: 10px; justify-content: center; }
.sw-pin { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font: inherit; font-size: 13px; font-weight: 500; color: var(--pale); cursor: pointer; }
.sw-pin:hover { color: var(--sw-orange-dark); border-color: var(--sw-orange); }
.sw-pin.on { background: var(--sw-orange-soft); border-color: var(--sw-orange); color: var(--sw-orange-dark); font-weight: 600; }
.sw-pin .i { color: var(--sw-orange); }
.sw-datemenu { padding: 6px; width: 300px; }
.sw-datemenu .sw-cal { box-shadow: none; padding: 6px 8px 8px; width: auto; }
.sw-rangeform { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 8px; padding: 10px 8px; border-top: 1px solid var(--line); }
.sw-rangeform .btn.accent { grid-column: 1 / -1; justify-content: center; }
.sw-rangeform small { display: block; font-size: 11px; font-weight: 600; color: var(--pale); margin-bottom: 3px; }
.sw-rangeform input { width: 100%; height: 32px; padding: 0 6px; border: 0; border-radius: 8px; box-shadow: 0 0 0 1px var(--line); font: inherit; font-size: 13px; }
.sw-rangeform .btn.accent { height: 32px; background: var(--sw-orange); border-color: var(--sw-orange); }
.sw-presets { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 8px 6px; border-top: 1px solid var(--line); }
.menu .sw-presets a { display: inline-flex; width: auto; padding: 4px 10px; border-radius: 999px; background: var(--fill); font-size: 12px; font-weight: 500; color: var(--text); }
.menu .sw-presets a:hover, .menu .sw-presets a.on { background: var(--sw-orange-soft); color: var(--sw-orange-dark); }
.sw-rank { list-style: none; margin: 0; padding: 0; }
.sw-rank li { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.sw-rank li:last-child { border-bottom: 0; }
.sw-rank-name { flex: 1; min-width: 0; }
.sw-rank li > b { font-weight: 600; white-space: nowrap; }
.sw-rank .po-avatar { width: 30px; height: 30px; font-size: 12px; }
.sw-rank a { color: var(--text); font-weight: 500; }
.sw-rank a:hover, .sw-tile a:hover { color: var(--sw-orange); }
.sw-tile a { color: var(--text); }
.sw-panel-more { display: inline-flex; align-items: center; gap: 4px; margin-top: 10px; font-size: 14px; font-weight: 500; color: var(--sw-orange-dark); }
.sw-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 14px; }
.sw-chip.on { background: var(--sw-orange-soft); box-shadow: inset 0 0 0 1.5px var(--sw-orange); font-weight: 600; }
.sw-chip.person .po-avatar { width: 24px; height: 24px; font-size: 10px; }
.sw-chip.person > .i { width: 14px; height: 14px; color: var(--sw-orange-dark); }
.sw-facestack { display: inline-flex; flex: none; }
.sw-facestack .sw-face + .sw-face { margin-left: -22px; }
.sw-facestack .sw-face { box-shadow: 0 0 0 3px #fff; border-radius: 999px; }
.sw-chip.person .pale { font-size: 12px; margin-left: 2px; }
.sw-picker-search { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 999px; box-shadow: 0 0 0 1px var(--line); background: #fff; color: var(--pale); }
.sw-picker-search input { border: 0; font: inherit; font-size: 14px; width: 180px; background: transparent; color: var(--text); }
.sw-picker-search input:focus { outline: none; }
.sw-picker-search:focus-within { box-shadow: 0 0 0 2px var(--sw-orange); }
.sw-picker-search { position: relative; }
.sw-suggest { position: absolute; top: calc(100% + 6px); left: 0; z-index: 40; width: 320px; margin: 0; padding: 6px; list-style: none; background: #fff; border-radius: 10px; box-shadow: 0 0 0 1px var(--line), 0 8px 24px rgba(0, 0, 0, 0.12); }
.sw-suggest li { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.sw-suggest li > .av { grid-row: 1 / 3; }
.sw-suggest li b { font-size: 14px; font-weight: 600; color: var(--text); }
.sw-suggest li small { font-size: 12px; color: var(--pale); }
.sw-suggest li:hover, .sw-suggest li.on { background: var(--sw-orange-soft); }
.sw-filterpick { max-width: 240px; }
.sw-filterpick > span { overflow: hidden; text-overflow: ellipsis; }
.sw-picker-label { font-size: 12px; margin: 0 2px 0 6px; }
.sw-picker-edit { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: 13px; font-weight: 500; color: var(--sw-orange-dark); }
.sw-doorpick { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 12px 0 8px; border-radius: 12px; border: 0; background: var(--sw-orange-soft); box-shadow: inset 0 0 0 1.5px var(--sw-orange); font: inherit; font-size: 15px; color: var(--text); cursor: pointer; }
.sw-doorpick b { font-weight: 600; }
.sw-doorpick > .i { color: var(--sw-orange-dark); }
.sw-doorpick-icons { display: inline-flex; }
.sw-doorpick-icons .sw-door { width: 28px; height: 28px; box-shadow: 0 0 0 2px var(--sw-orange-soft); }
.sw-doorpick-icons .sw-door + .sw-door { margin-left: -8px; }
.sw-doormenu { width: 380px; }
.sw-doormenu-head { display: flex; align-items: baseline; justify-content: space-between; padding: 6px 8px 8px; font-size: 14px; }
.sw-doormenu-head .pale { font-size: 12px; }
.sw-doormenu-list { max-height: 360px; overflow-y: auto; }
.sw-doormenu-none { margin: 0 0 8px; padding: 0 8px 10px; border-bottom: 1px solid var(--line); font-size: 13px; }
.sw-doormenu-none a { color: var(--sw-orange-dark); font-weight: 500; }
.sw-doormenu-item { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 8px; font-size: 14px; cursor: pointer; }
.sw-doormenu-item:hover { background: var(--fill); }
.sw-doormenu-item:has(input:checked) { background: var(--sw-orange-soft); }
.sw-doormenu-item input { accent-color: var(--sw-orange); width: 16px; height: 16px; margin: 0; }
.sw-doormenu-item > span:not(.sw-door):not(.pale) { flex: 1; min-width: 0; }
.sw-doormenu-item .pale { font-size: 12px; }
.sw-doormenu .btn.accent { background: var(--sw-orange); border-color: var(--sw-orange); }
.sw-picker-names { font-size: 13px; min-width: 0; }
.sw-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 14px; }
.sw-filters.inhead { flex: 0 1 620px; margin-left: auto; align-self: flex-start; }
.sw-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 10px 14px; }
.sw-toolbar > .sw-picker { padding: 0; }
.sw-filters.bare { flex: 1; min-width: 0; padding: 0 0 0 14px; border-left: 1px solid var(--line); border-radius: 0; background: none; box-shadow: none; }
.sw-toolbar.stack { flex-direction: column; align-items: stretch; }
.sw-toolbar.stack .sw-filters.bare { padding: 0; border-left: 0; }
.sw-filters-label { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; margin-right: 4px; }
.sw-filters-hint { font-size: 13px; }
.sw-filterpick { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 8px 0 10px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font: inherit; font-size: 13px; color: var(--text); cursor: pointer; white-space: nowrap; }
.sw-filterpick:hover, .menu-wrap.open > .sw-filterpick { border-color: var(--sw-orange); }
.sw-filter { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 38px; padding: 4px 6px 4px 12px; border-radius: 12px; background: var(--sw-orange-soft); box-shadow: inset 0 0 0 1.5px var(--sw-orange); font-size: 14px; }
.sw-filter > .i { color: var(--sw-orange-dark); }
.sw-filter > b { font-weight: 600; margin-right: 2px; }
.sw-filter input.sw-filter-num { width: 64px; }
.sw-visitors-bar { display: flex; align-items: flex-start; gap: 10px; }
.sw-visitors-bar > .sw-filters { flex: 1; min-width: 0; }
.sw-visitors-tools { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.sw-visitors-tools .sw-pin { text-decoration: none; }
.sw-th { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.sw-copycol { display: inline-grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 6px; background: none; color: var(--pale); cursor: pointer; opacity: 0.5; }
.sw-th:hover .sw-copycol, .sw-copycol:focus-visible { opacity: 1; }
.sw-copycol:hover { background: var(--sw-orange-soft); color: var(--sw-orange-dark); }
.sw-colmenu { width: 260px; }
.sw-vdays { min-width: 260px; display: flex; flex-wrap: wrap; gap: 4px; max-height: 92px; overflow-y: auto; }
.sw-vdays a { padding: 1px 7px; border-radius: 999px; background: var(--sw-orange-soft); color: var(--sw-orange-dark); font-size: 12px; white-space: nowrap; }
.sw-vdays a:hover { background: var(--sw-orange); color: #fff; }
.sw-filter input[type="date"], .sw-filter input.sw-filter-num, .sw-filter select { height: 30px; padding: 0 8px; border: 0; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--line); font: inherit; font-size: 13px; color: var(--text); }
.sw-filter .pale { font-size: 13px; }
.sw-toggle { position: relative; cursor: pointer; }
.sw-toggle input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.sw-toggle span { display: inline-block; padding: 4px 9px; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--line); font-size: 13px; color: var(--pale); }
.sw-toggle input:checked + span { background: var(--sw-orange); box-shadow: none; color: #fff; font-weight: 600; }
.sw-toggle input:focus-visible + span { outline: 2px solid var(--sw-teal); outline-offset: 1px; }
.sw-filter-x { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 999px; color: var(--sw-orange-dark); }
.sw-filter-x:hover { background: #fff; }
.sw-addfilter { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border-radius: 12px; border: 1.5px dashed var(--sw-orange); background: #fff; color: var(--sw-orange-dark); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.sw-addfilter:hover { background: var(--sw-orange-soft); }
.sw-filters .menu a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; font-size: 14px; color: var(--text); }
.sw-filters .menu a:hover { background: var(--fill); }
.sw-filters .menu .i { color: var(--sw-orange); }
.sw-clearfilters { margin-left: auto; font-size: 13px; font-weight: 500; color: var(--sw-orange-dark); }
.sw-doorstack { display: inline-flex; flex: none; }
.sw-doorstack .sw-door + .sw-door { margin-left: -12px; }
.sw-doorstack .sw-door { box-shadow: 0 0 0 3px #fff; }
@media (max-width: 900px) {
  .sw-pair, .sw-pair.wide, .sw-pair.withcal, .sw-pair.three { grid-template-columns: minmax(0, 1fr); }
}
.sw-doors ol { list-style: none; margin: 0; padding: 0; }
.sw-doorrow { display: grid; grid-template-columns: auto minmax(200px, 1fr) auto; align-items: center; gap: 16px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.sw-doorname input { width: 100%; max-width: 360px; height: 36px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--line); font: inherit; font-size: 15px; font-weight: 500; background: #fff; }
.sw-doorname input:focus { outline: 2px solid var(--sw-orange); outline-offset: -1px; }
.sw-doorname span { display: block; font-size: 12px; margin-top: 4px; }
.sw-kinds { display: flex; flex-wrap: wrap; gap: 6px; }
.sw-kind { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; cursor: pointer; opacity: 0.45; position: relative; }
.sw-kind input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.sw-kind:hover { opacity: 0.8; }
.sw-kind:has(input:checked) { opacity: 1; box-shadow: 0 0 0 2px currentColor; }
.sw-kind:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.sw-kind.orange { background: #fdeedd; color: #d9741a; }
.sw-kind.blue { background: #e8f0fb; color: #2463b0; }
.sw-kind.green { background: #e9f5e6; color: #3d7f2f; }
.sw-kind.red { background: #fdecea; color: #c62828; }
.sw-kind.purple { background: #efeafb; color: #6a4bc4; }
.sw-kind.teal { background: #e6f4f3; color: #11756f; }
.sw-kind.grey { background: var(--fill); color: #555; }
.sw-kindcol { display: grid; gap: 8px; align-content: center; }
.sw-swatches { gap: 4px; }
.sw-kind.sw-swatch { width: 26px; height: 26px; border-radius: 50%; opacity: 1; }
.sw-swatch i { width: 12px; height: 12px; border-radius: 50%; background: currentColor; }
.sw-doors-bar { display: flex; justify-content: flex-end; padding: 14px 20px; }
.sw-groups { padding: 16px 20px; margin-bottom: 16px; }
.sw-groups-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.sw-groups-head h2 { font-size: 17px; font-weight: 600; }
.sw-groups-head .pale { font-size: 13px; }
.sw-groups-list { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sw-groups-list .sw-chip { padding: 4px 4px 4px 12px; }
.sw-groups-list .sw-chip a { color: var(--text); }
.sw-groups-list .sw-chip .pale { font-size: 12px; font-weight: 400; }
.sw-chip-x { display: inline-grid; place-items: center; width: 22px; height: 22px; border: 0; border-radius: 999px; background: none; color: var(--sw-orange-dark); cursor: pointer; padding: 0; }
.sw-chip-x:hover { background: #fff; }
.sw-chip-x .i { width: 14px; height: 14px; }
.sw-chip-move { display: inline-grid; place-items: center; width: 20px; height: 22px; border: 0; border-radius: 999px; background: none; color: var(--pale); cursor: pointer; padding: 0; }
.sw-chip-move:hover { background: #fff; color: var(--text); }
.sw-chip-move .i { width: 14px; height: 14px; }
.sw-groups-chips > .sw-chip:first-child [data-group-move="-1"], .sw-groups-chips > .sw-chip:last-child [data-group-move="1"] { visibility: hidden; }
.sw-groups-chips { display: contents; }
.sw-groups-add { display: inline-flex; gap: 6px; margin: 0; }
.sw-groups-add input:placeholder-shown + .btn { display: none; }
.sw-groups-problem { font-size: 13px; }
.sw-doorname .sw-groupticks:empty { display: none; }
.sw-groups-add input { height: 32px; width: 230px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--line); font: inherit; font-size: 14px; background: #fff; }
.sw-groups-add input:focus { outline: 2px solid var(--sw-orange); outline-offset: -1px; }
.sw-groups-add .btn { height: 32px; }
.sw-doorname .sw-groupticks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.sw-grouptick { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px 2px 6px; border-radius: 999px; background: var(--fill); font-size: 12px; color: var(--text); cursor: pointer; }
.sw-grouptick input { accent-color: var(--sw-orange); width: 13px; height: 13px; margin: 0; }
.sw-grouptick:has(input:checked) { background: var(--sw-orange-soft); box-shadow: inset 0 0 0 1px var(--sw-orange); font-weight: 600; }
.sw-doormenu-list.short { max-height: 180px; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
@media (max-width: 760px) {
  .sw-doorrow { grid-template-columns: auto minmax(0, 1fr); padding: 14px; }
  .sw-kindcol { grid-column: 1 / -1; }
  .sw-week { max-width: none; }
  .sw-cover { padding-left: 0; border-left: 0; }
  .sw-split { grid-template-columns: minmax(0, 1fr); }
  .sw-dates { position: static; max-height: 300px; }
  .sw-who h1 { font-size: 22px; }
  .sw-who .sw-face { width: 56px; height: 56px; }
}
.feedback-link { height: 36px; padding: 0 12px; border-radius: 8px; font-size: 14px; font-weight: 600; color: #155d62; }
.feedback-link:hover { background: rgba(255, 255, 255, 0.6); }
.dlg.fb-dlg { width: min(480px, calc(100vw - 32px)); border-radius: 14px; }
.fb-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 16px 6px 24px; }
.fb-head b { font-size: 20px; font-weight: 700; }
.fb-body { display: grid; gap: 14px; padding: 8px 24px 16px; }
.fb-kinds { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fb-kinds label { position: relative; display: grid; place-items: center; height: 40px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--fill2); font-size: 15px; font-weight: 600; cursor: pointer; }
.fb-kinds input { position: absolute; opacity: 0; pointer-events: none; }
.fb-kinds label:has(input:checked) { background: #e1eff0; box-shadow: inset 0 0 0 1.5px #155d62; color: #155d62; }
.fb-kinds label:has(input:focus-visible) { outline: 2px solid #155d62; outline-offset: 2px; }
.fb-fld { display: grid; gap: 6px; }
.fb-fld > span { font-size: 13px; font-weight: 600; }
.fb-fld input, .fb-fld textarea { width: 100%; padding: 9px 12px; border: 1px solid var(--fill2); border-radius: 8px; font: inherit; font-size: 15px; color: var(--text); background: #fff; }
.fb-fld textarea { resize: vertical; min-height: 96px; }
.fb-fld input:focus, .fb-fld textarea:focus { outline: none; border-color: #155d62; box-shadow: 0 0 0 1px #155d62; }
.fb-shot { display: flex; align-items: center; gap: 10px; }
.fb-shot .btn { cursor: pointer; }
.fb-shot small { color: var(--pale); font-size: 13px; }
.fb-preview { display: flex; align-items: flex-end; gap: 10px; }
.fb-preview img { max-width: 220px; max-height: 140px; border-radius: 6px; box-shadow: 0 0 0 1px var(--line); }
.fb-note { margin: 0; color: var(--pale); font-size: 12px; }
.fb-err { margin: 0; color: #c5221f; font-size: 14px; }
.fb-foot { display: flex; gap: 10px; padding: 0 24px 22px; }
.fb-foot .btn { height: 40px; padding: 0 18px; border-radius: 999px; }
.fb-thanks { display: grid; justify-items: start; gap: 6px; padding: 28px 24px 24px; }
.fb-thanks b { font-size: 20px; }
.fb-thanks p { margin: 0 0 10px; color: var(--pale); }
.fb-dlg [hidden] { display: none; }
