/* Music / Journeys — 1.0.26.1002 build 001. Screen-only: print stays economical. */
@media screen {
  :root { --ink: #183f4c; --muted: #466574; --sea: #146778; --line: #9cbec4; color: var(--ink); background: #f2f7f6; }
  body { background: linear-gradient(125deg,#eaf6f3 0%,#f2f7fa 58%,#f7f2e8 100%); }
  button { background: #e4f0f1; color: #214f5d; border-color: #9cbac2; box-shadow: 0 1px 2px #244e5d0a; }
  button:hover:not(:disabled) { background: #d2e6e8; border-color: #548c99; }
  button.primary { background: linear-gradient(120deg,#167366,#15617c); color: #fff; border: 1px solid #176c74; }
  button.primary:hover:not(:disabled) { background: #115c68; }
  button.danger { background: #fbe9e3; border-color: #d69d90; color: #963927; }
  button.danger:hover:not(:disabled) { background: #f6d8cf; }
  button:disabled { opacity: .65; cursor: not-allowed; }
  :focus-visible { outline: 3px solid #117c8e; outline-offset: 3px; }
  body>header:not(.header) { color: var(--ink); background: linear-gradient(110deg,#d3eeeaed,#e0eff8ed 65%,#efe8d8eb); border-bottom: 1px solid #a8c9ca; box-shadow: 0 4px 18px #326d7910; }
  body>header .brand, body>header .brand small { color: var(--ink); }
  body>header .light-link { color: #205a6a; text-decoration: underline; text-underline-offset: 4px; }
  .account button, .member-nav button { color: #214f5d; background: #dcebef; border-color: #80a7b4; }
  .workspace-nav { background: #f5faf9; }
  .library-nav button:first-child { background: #dceeea; color: #185b5c; }
  button.person-result,.dialog-close { background: #e4f0f1; border-color: #9cbac2; color: #214f5d; }
  .tabs button, #tabs button { background: #e7eff1; color: #214f5d; margin: 2px; border-radius: 7px 7px 0 0; }
  .tabs button[aria-selected=true], #tabs button[aria-selected=true] { background: #d2e9e5; color: #145b60; border-bottom-color: #197d80; }
  .service-footer { background: #e6f1f1; border-color: #9cbfc2; box-shadow: 0 -4px 16px #1c536712; }
  button.service-close { background: #eadcc3; color: #594325; border: 1px solid #b99b6b; font-weight: 650; }
  button.service-close:hover:not(:disabled) { background: #decaab; border-color: #997742; }
  .service-dialog .service-footer { gap: 8px; padding: 10px; }
  .service-dialog .service-footer button { min-height: 42px; }
  .service-dialog .service-footer strong { min-width: 150px; }

  /* Reset inherited panel/details spacing inside the allocation board only. */
  .allocation-people,.allocation-groups { padding: 12px; }
  .allocation-people>h3,.allocation-section-heading h3 { margin: 5px 0 12px; font-size: 16px; }
  .allocation-section-heading { gap: 8px; }
  .allocation-group,.resource-group { padding: 10px 12px!important; margin: 9px 0; border-left-color: #398995; background: #f3f9f9; }
  .allocation-group-header { gap: 8px; margin: 0 0 5px; }
  .allocation-group-header strong { font-size: 18px; }
  .resource-group>label { margin: 3px 0 5px; font-size: 13px; }
  .resource-group>label select { min-height: 36px; padding: 6px 9px; font-size: 14px; }
  .allocation-group .allocation-more { margin: 3px 0!important; padding: 0; border: 0; border-radius: 0; }
  .allocation-group .allocation-more>summary { margin: 0; padding: 3px 0; min-height: 24px; font-size: 12px; line-height: 1.4; color: #436573; }
  .allocation-group .allocation-more:not([open])>*:not(summary) { display: none; }
  .allocation-group .allocation-more[open] { padding-bottom: 5px; }
  .allocation-group .allocation-member { padding: 7px 0!important; gap: 3px; }
  .allocation-member-top { min-height: 30px; }
  .allocation-member-top strong,.allocation-person strong { font-size: 15px; line-height: 1.4; }
  .allocation-member-top button { min-height: 30px; padding: 4px 8px; font-size: 12px; }
  .allocation-group small,.allocation-group .subtle { font-size: 13px; line-height: 1.4; color: #466574; }
  .allocation-group>small { display: block; margin: 3px 0; }
  .allocation-member .allocation-more { margin: 0!important; }
  .allocation-group-fields { margin: 5px 0; }
  .allocation-group .allocation-preference { color: #79500e; padding: 4px 7px; margin: 2px 0; }
  .allocation-person { padding: 8px 2px; }
  .allocation-person>span { gap: 3px; }
  .allocation-person small { font-size: 12px; line-height: 1.35; }
  .allocation-person .subtle { color: #466574; }
  .allocation-group p { margin: 5px 0; }
  .allocation-footer { background: #e3efef; border-color: #9cbfc2; padding: 10px; }
  .new-allocation-group { outline: 2px solid #47a296; outline-offset: 1px; }

  /* Quiet, static refraction: only the login hero uses backdrop blur. */
  .login-page { min-height: 100vh; background: radial-gradient(ellipse at 10% 30%,#bfe9e2 0%,transparent 48%),radial-gradient(ellipse at 90% 5%,#cde6f2 0%,transparent 44%),radial-gradient(ellipse at 80% 100%,#ede1c8 0%,transparent 45%),#f2f7f5; }
  .login-page .header { padding-top: 25px; padding-bottom: 25px; }
  .login-page .brand { color: #214e58; letter-spacing: .08em; }
  .login-page .brand small { font-size: 9px; color: #436574; }
  .login-page .brand-icon { background: linear-gradient(145deg,#ffffffbd,#8ed5cba8 55%,#b3dbeea3); color: #16676e; border: 1px solid #ffffffdb; box-shadow: inset 0 1px 5px #ffffffc9,0 4px 16px #236f7620; border-radius: 15px; }
  .login-page .header-note { display: flex; gap: 10px; align-items: center; color: #466574; font-size: 12px; font-variant-numeric: tabular-nums; }
  .login-page .header-note span { border: 1px solid #bdd0cc; padding: 4px 8px; border-radius: 20px; background: #ffffff65; }
  .login-page main { background: #ffffffe0; border: 1px solid #ffffffd9; box-shadow: 0 20px 70px #31657918,inset 0 1px 1px #fff; border-radius: 28px; min-height: 710px; }
  .login-page .intro { isolation: isolate; padding: 66px 44px 30px; color: #194f59; background: radial-gradient(ellipse at 5% 10%,#d2f5eaa8,transparent 70%),linear-gradient(150deg,#a9dedab8 0%,#b5ddec91 53%,#ecdec28c 100%); }
  .login-page .intro::before,.login-page .intro::after { content: ''; position: absolute; pointer-events: none; z-index: -1; border: 1px solid #ffffff9e; border-radius: 46% 54% 62% 38%; box-shadow: inset 10px 14px 25px #ffffff80,inset -10px -8px 20px #6bafb526,0 12px 30px #4c919015; background: linear-gradient(140deg,#ffffff59,#b1d9e426 60%,#f5e5be5c); transform: rotate(-28deg); }
  .login-page .intro::before { width: 500px; height: 380px; left: -105px; top: 220px; }
  .login-page .intro::after { width: 350px; height: 460px; right: -180px; top: -120px; }
  .login-page h1 { font-size: clamp(27px,2.7vw,36px); line-height: 1.5; letter-spacing: .015em; font-weight: 650; margin: 8px 0 18px; }
  .login-page .intro>p:not(.hero-slogan) { color: #375f69; font-size: 15px; line-height: 1.9; }
  .login-page .score { margin-top: 30px; margin-bottom: 0; min-height: 195px; }
  .login-page .score-lines { opacity: .55; background: repeating-linear-gradient(to bottom,transparent 0,transparent 22px,#428da269 23px,#428da269 24px); }
  .login-page .note { color: #397d84; text-shadow: 0 2px 0 #ffffff9c; opacity: .8; }
  .login-page .intro>.hero-slogan { display: block; font-family: Georgia,'Times New Roman',serif; font-size: 30px; line-height: 1.3; font-style: italic; font-weight: 400; color: #285d66; margin: 18px 0 28px; letter-spacing: -.025em; }
  .login-page .intro-footer { border-color: #ffffff9c; color: #375f69; padding-top: 18px; font-size: 12px; letter-spacing: .08em; }
  .login-page .login-panel { padding: 42px 48px; }
  .login-page .panel-eyebrow { color: #29777c; }
  .login-page h2 { color: #254b57; }
  .login-page .role-switch { background: #e4efef; }
  .login-page .role-switch button { background: #e4efef; color: #446873; border: 1px solid transparent; }
  .login-page .role-switch button[aria-pressed=true] { background: #d1e8e3; color: #175c5d; border-color: #81b8ae; box-shadow: inset 0 1px 1px #ffffffb3,0 2px 6px #37685513; }
  .login-page .password-field button { background: #e3efef; border: 1px solid #b2c9cd; border-radius: 5px; color: #315c68; }
  .login-page .google-button { background: #eaf0f0; border-color: #b4c7cb; color: #435f69; }
  .login-page input { border-color: #afc7cb; background: #ffffffd6; }
  .login-page input:focus { border-color: #258788; box-shadow: 0 0 0 3px #298b841c; }
  .login-page footer { color: #4c6b73; }
  @supports (backdrop-filter: blur(12px)) { .login-page .intro { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } }
  @media(max-width:1000px) { .login-page .intro { padding: 42px 28px 25px; }.login-page .login-panel { padding: 36px 28px; }.login-page h1 { font-size: 28px; } }
  @media(max-width:700px) {
    .login-page .header { padding: 18px 22px; flex-wrap: wrap; gap: 12px; }
    .login-page .header-note { font-size: 11px; gap: 6px; }
    .login-page .brand { font-size: 18px; }
    .login-page main { min-height: 0; border-radius: 20px; }
    .login-page .intro { padding: 24px; }
    .login-page h1 { font-size: 26px; margin: 0 0 10px; }
    .login-page .intro>p:not(.hero-slogan) { display: block; font-size: 13px; line-height: 1.65; }
    .login-page .intro>.hero-slogan { font-size: 21px; margin: 17px 0 0; }
    .login-page .hero-slogan br { display: none; }
    .login-page .intro-footer { display: block; border: 0; padding: 0; margin-top: 16px; font-size: 11px; }
    .login-page .login-panel { padding: 26px 24px; }
    .login-page .intro::before { top: 60px; }
  }
  @media(max-width:600px) { .service-dialog .service-footer { display: grid; grid-template-columns: 1fr 1fr; }.service-dialog .service-footer strong { grid-column: 1/-1; }.service-dialog .service-footer button { width: 100%; min-width: 0; font-size: 13px; padding: 9px 5px; } }
}

.element-name-field{display:flex;align-items:stretch;border:1px solid #a9c6cb;border-radius:7px;overflow:hidden}.element-name-prefix{display:flex;align-items:center;padding:0 12px;background:#dcecea;color:#245863;font-weight:700;user-select:none}.element-name-field input{border:0;border-radius:0;min-width:0;flex:1}.system-nav{border-top:1px solid #b3c9cf;padding-top:12px;margin-top:24px}.system-nav h2{font-size:17px}.system-nav button{width:100%;text-align:left}

/* Tour assignment, companion constraints, people, and intake have distinct regions. */
.roster-region{border-top:5px solid #31a69b;border-radius:10px;background:#f1faf8;padding:14px 16px;margin:0 0 18px}.roster-region h2,.roster-region h3{margin-top:0}.region-parties{border-color:#d7ad62;background:#fffaf1}.region-registration{border-color:#599fc5;background:#eff8fc;margin-top:24px}.roster-list-heading{border-top:5px solid #719fc4;padding:14px 12px 0}.tour-party-card{display:flex;align-items:center;gap:12px;border:1px solid #d7c7a8;border-radius:8px;background:#fff;margin:8px 0;padding:8px}.tour-party-card .party-detail-button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;flex:1;background:#fff8e9;border-color:#e4d4b5;padding:10px 12px}.party-detail-button strong{font-size:1.05rem}.party-detail-button span{font-size:.88rem}.party-count{color:#73511c;font-weight:600}.region-registration .registration-settings{margin:0;border:0;padding:0;background:transparent}@media(max-width:650px){.tour-party-card{align-items:stretch;flex-direction:column}}

.managed-cost-summary{padding:12px 14px;background:#eef8f6;border-left:4px solid #29998f;border-radius:8px;margin:12px 0;overflow-wrap:anywhere}.managed-cost-summary h3{margin:0 0 8px}.managed-cost-summary p{margin:5px 0}.managed-cost-summary>strong{font-size:1.08rem}.person-cost{color:#156860;font-weight:600}

/* Shared member and administrator service actions: save, confirm, cancel. */
.service-footer button.service-save{background:#d1e8e3;color:#175c5d;border:1px solid #81b8ae}
.service-footer button.service-save:hover:not(:disabled){background:#bce0d7}
.service-footer button.service-confirm{background:#f4a548;color:#5f3108;border:1px solid #d58327;font-weight:700}
.service-footer button.service-confirm:hover:not(:disabled){background:#ed9634}
.service-footer button.service-cancel{background:#fbe4e4;color:#96352f;border:1px solid #d99b98}
.service-footer button.service-cancel:hover:not(:disabled){background:#f5d0d0}
.service-footer button:is(.service-save,.service-confirm,.service-cancel):disabled{opacity:.55;cursor:not-allowed}

/* Keep configuration errors visible above the scrolling allocation columns. */
.allocation-validation-summary{border:2px solid #d37260;border-left-width:6px;border-radius:8px;background:#fff0eb;padding:10px 14px;margin:0 0 12px;max-height:190px;overflow:auto}
.allocation-validation-summary[hidden]{display:none}
.allocation-validation-summary p{margin:4px 0}
.allocation-validation-summary button{display:block;width:100%;text-align:left;background:#ffe2d8;color:#842d20;border:1px solid #dfb0a5;padding:7px 10px;margin-top:6px;white-space:normal}
.allocation-group.allocation-invalid{border:2px solid #cf5949}
.allocation-member.allocation-invalid,.allocation-person.allocation-invalid{background:#ffe4df;border-left:5px solid #d05745;padding-left:9px}
.allocation-person-error{display:block;color:#8b281b;font-weight:600;white-space:normal}
.allocation-person.allocation-invalid{flex-wrap:wrap}.allocation-person>.allocation-person-error{flex-basis:100%}

.allocation-pending-note{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 14px;margin:8px 0 12px;background:#fff2d8;border-left:5px solid #d4a03e;border-radius:6px;color:#735019}.allocation-pending-note strong{flex:1;min-width:200px}

/* Make the journey entry points visible beside the supporting libraries. */
@media screen {
  .tour-navigation{margin-top:22px;padding:14px 12px 12px;border:1px solid #a9cbc7;border-top:4px solid #2b9087;border-radius:15px;background:linear-gradient(145deg,#e0f1eced,#edf6f9ed);box-shadow:0 5px 18px #225b691c,inset 0 1px 1px #ffffffb8}
  .tour-navigation .tree-heading{gap:8px;flex-wrap:wrap}
  .tour-navigation .tree-heading h2{font-size:18px;color:#155b62;line-height:1.4}
  .tour-navigation #new-tour{background:#cee8df;border-color:#83b7a9;color:#155b55;font-weight:650;min-height:38px;padding:7px 10px}
  .tour-navigation-hint{font-size:12px;line-height:1.5;color:#47696f;margin:10px 0 12px}
  .tour-navigation .tour-node{margin:10px 0 0;border:1px solid #9dbfbd;border-radius:10px;box-shadow:0 3px 9px #285e6814;background:#f7fbfa}
  .tour-navigation .tour-select{padding:12px 12px 10px;background:#f7fbfa;border-left:4px solid #6ab5a7;color:#244e57;line-height:1.45}
  .tour-navigation .tour-select:hover,.tour-navigation .tour-select:focus-visible{background:#deefea;border-left-color:#187d79}
  .tour-navigation .tour-name{display:block;font-size:14px;font-weight:700;overflow-wrap:anywhere}
  .tour-navigation .tour-select small{font-size:11px;color:#506e73;line-height:1.45;margin-top:5px}
  .tour-navigation .tour-open-hint{display:block;font-size:12px;font-weight:650;color:#1b716e;margin-top:7px}
  .tour-navigation .tour-select.selected{background:#cce8df;border-left-color:#16796f;box-shadow:inset 0 1px 3px #ffffff89}
  .tour-navigation .element-node{background:#eef6f3;border-top:1px solid #d1e4dd;padding:9px 12px 9px 21px;color:#35616b}
  .tour-navigation .element-node:hover{background:#dcefe8}
  @media(max-width:700px){.tour-navigation{margin-top:16px;padding:12px}.tour-navigation #tree{max-height:300px;padding-right:2px}}
}

/* Lifecycle and current-person impact overview, without background polling. */
.tour-phase-summary{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-right:10px;max-width:220px}
.tour-phase-summary[hidden],.tour-header-overview[hidden]{display:none}
.tour-phase-summary small{color:#54747a;font-size:.8rem}
.tour-phase-badge{padding:7px 12px;border-radius:10px;background:#e5f2ed;color:#176c61;border:1px solid #a4cfc4;font-size:.95rem}
.tour-phase-badge.phase-preparation{background:#fff2d9;color:#8c5e14;border-color:#d8b573}
.tour-phase-badge.phase-ongoing{background:#def1fa;color:#186887;border-color:#a0c7d8}
.tour-phase-badge.phase-archived{background:#e9edef;color:#4c5f66;border-color:#b9c7cb}
.tour-header-overview{margin:12px 0 20px;padding:14px 16px;border:1px solid #b9d8d4;border-radius:16px;background:linear-gradient(125deg,#f1f8f5e8,#eaf4f7dd);box-shadow:0 4px 13px #126d7610}
.tour-overview-dates{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.86rem;margin-bottom:12px;color:#416773}
.tour-overview-counts{display:grid;grid-template-columns:repeat(8,minmax(95px,1fr));gap:8px}
.tour-overview-count{border-left:3px solid #559cab;border-radius:9px;background:#ffffffb8;padding:9px 10px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tour-overview-count span{font-size:.76rem;color:#416b75}.tour-overview-count strong{font-size:1.15rem;color:#18566a}
.tour-overview-count.tone-green{border-color:#329a7d}.tour-overview-count.tone-amber{border-color:#c69b4f;background:#fff6e8}.tour-overview-count.tone-gray{border-color:#a1b2b6}
.tour-overview-note{font-size:.78rem;color:#55727b;margin:10px 0 0;line-height:1.6}
.information-updates{padding:10px 14px;border:1px solid #aad2c9;border-radius:10px;background:#edf7f3;margin:10px 0;color:#2b7066}.information-updates p{margin:7px 0;font-size:.86rem}
.service-dialog .banner{white-space:pre-line}
@media(max-width:1250px){.tour-overview-counts{grid-template-columns:repeat(4,minmax(100px,1fr))}.editor-heading .actions{flex-wrap:wrap}}
@media(max-width:650px){.tour-overview-counts{grid-template-columns:repeat(2,minmax(100px,1fr))}.tour-phase-summary{margin-right:0}.tour-overview-dates{flex-direction:column;gap:5px}}

/* Local two-tap confirmation and asynchronous remote delivery. */
.confirmation-remote-wait{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid #b8d5bd;border-radius:10px;background:#edf8ee;color:#315f42;line-height:1.5}
.confirmation-remote-wait::before{content:'🦎';display:inline-block;flex:0 0 auto;font-size:26px;animation:confirmation-lizard-work 1.05s ease-in-out infinite}
.confirmation-error{color:#8d3735;line-height:1.5}
.countdown-button[data-phase=committing]{background:#297b64;color:#fff;border-color:#20694f}
.countdown-button progress{height:6px;border:0;border-radius:8px;appearance:none;-webkit-appearance:none;background:#fff;accent-color:#d95188}
.countdown-button progress::-webkit-progress-bar{background:#fff;border-radius:8px}
.countdown-button progress::-webkit-progress-value{background:#d95188;border-radius:8px}
.countdown-button progress::-moz-progress-bar{background:#d95188;border-radius:8px}
.countdown-button[data-phase=ready] progress,.countdown-button[data-phase=committing] progress{accent-color:#268bc2}
.countdown-button[data-phase=ready] progress::-webkit-progress-value,.countdown-button[data-phase=committing] progress::-webkit-progress-value{background:#268bc2}
.countdown-button[data-phase=ready] progress::-moz-progress-bar,.countdown-button[data-phase=committing] progress::-moz-progress-bar{background:#268bc2}
@keyframes confirmation-lizard-work{0%,100%{transform:translateX(-2px) rotate(-5deg)}50%{transform:translateX(5px) rotate(6deg)}}
@media(prefers-reduced-motion:reduce){.confirmation-remote-wait::before{animation:none}}


/* PER state colors and compact administrator member cards. */
[data-per-status=draft]{--per-card:#fff8e6;--per-dot:#d0af55}
[data-per-status=active]{--per-card:#eaf5ee;--per-dot:#77ac91}
[data-per-status=pending]{--per-card:#fff0f4;--per-dot:#d487a2}
[data-per-status=expired]{--per-card:#f0f2dd;--per-dot:#9aa360}
[data-per-status=archived]{--per-card:#eff1f2;--per-dot:#9ca6ad}
.per-state-dot{display:inline-block;flex:0 0 auto;width:9px;height:9px;margin-right:6px;border:1px solid #77918a55;border-radius:1px;background:var(--per-dot,#d0af55);vertical-align:middle}
.compact-member-card{background:var(--per-card)!important;border-left:4px solid var(--per-dot);padding:12px 14px;font-size:80%}
.compact-members-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:10px}
.member-card-heading{display:flex;align-items:center;gap:8px;justify-content:space-between}
.compact-member-card h3{font-size:16px;margin:0;line-height:1.35}
.member-state-badge{font-size:11px;flex:0 0 auto;color:#345b55;border:1px solid #95b4a56b;border-radius:5px;padding:2px 6px;background:#ffffff82}
.compact-member-card .card-fact{margin:5px 0;font-size:inherit;line-height:1.45;overflow-wrap:anywhere}
.compact-member-card .person-confirmations{font-size:inherit;margin-top:5px}
.compact-member-card .registry-card-actions,.compact-family-card .registry-card-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.compact-member-card .registry-card-actions button,.compact-family-card .registry-card-actions button{font-size:inherit;min-height:34px;padding:6px 8px;flex:0 1 auto;line-height:1.25}
.compact-family-card{font-size:80%;padding:13px 15px}
.compact-family-card h3{font-size:16px;margin:0}
.compact-family-card .card-member-list{margin:7px 0;gap:4px 10px}
.compact-family-card .card-fact,.compact-family-card .card-member-list li{font-size:inherit}
.family-rules-line{white-space:nowrap;margin:5px 0;line-height:1.5}
.member-list-toolbar{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,190px) minmax(130px,190px);gap:12px;align-items:end;margin:12px 0}
.member-list-toolbar label{font-size:12px;margin:0;display:grid;gap:5px}.member-list-toolbar select{width:100%}
.member-list-pager{display:flex;gap:12px;justify-content:center;align-items:center;margin:14px 0}
.member-list-pager[hidden]{display:none}
@media(max-width:700px){.compact-member-card,.compact-family-card{font-size:100%}.compact-member-card .registry-card-actions button,.compact-family-card .registry-card-actions button{min-height:44px;font-size:12px}.member-list-toolbar{grid-template-columns:1fr 1fr;gap:8px}.member-list-toolbar>input{grid-column:1/-1}.family-rules-line{white-space:normal}.member-state-badge{font-size:11px}.member-card-heading{align-items:flex-start}.compact-member-card h3{font-size:17px}}


/* Give desktop member actions a full row; narrow layouts wrap naturally. */
.groups-page .registry-grid.compact-members-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,620px),1fr)); }
/* Reusable source lists: compact membership, with breathing room between lists. */
.roster-picker-toolbar{display:grid;grid-template-columns:minmax(200px,2fr) repeat(2,minmax(130px,1fr));gap:12px;margin:14px 0}
.roster-picker-choices{max-height:40vh;overflow:auto;padding:8px;border:1px solid var(--border,#b4d6cd);border-radius:12px}
.roster-picker-choices label{display:flex;align-items:center;gap:8px;font-size:.92rem;padding:7px 8px}
.roster-picker-choices label[hidden]{display:none}
.roster-transfer-controls,.family-rules-edit{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0}
.family-rules-edit label{flex:1;min-width:130px}
.tour-list-transfer{display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:16px;margin:16px 0;border:1px solid #c7ddd5;border-radius:12px;background:#edf6f3}
.tour-list-transfer>h3,.tour-list-transfer>p{flex-basis:100%;margin:0}
.tour-list-transfer>label{flex:1 1 200px;min-width:0}
.tour-list-transfer select{width:100%;min-width:0}
.tour-source-block{padding:20px 0 24px;border-bottom:1px solid #c7ddd5}
.tour-source-block:last-child{border-bottom:0}
.tour-source-card{padding:18px;width:100%;min-width:0;background:#f4faf7}
.source-member-chips{display:flex;flex-wrap:wrap;gap:8px 14px;margin:12px 0}
.roster-person-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.roster-person-chip button{border:0;background:transparent;box-shadow:none;padding:3px 0;min-height:24px;font-size:.93rem;text-align:left;color:inherit}
.source-family-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.compact-source-family{padding:12px;background:#fffdf2}
.compact-source-family .party-detail-button{padding:0;min-height:30px;font-size:1rem}
.compact-source-family>.roster-person-chip{font-size:.9rem}
@media(max-width:640px){.roster-picker-toolbar{grid-template-columns:1fr 1fr}.roster-picker-toolbar input{grid-column:1/-1}.source-family-grid{grid-template-columns:1fr}.roster-transfer-controls select{width:100%}.tour-source-card{padding:14px}.roster-picker-choices label{min-height:44px}.roster-person-chip button{min-height:40px}}

/* BUILD 42: joined Tour lists share the Groups card typography and member grid. */
.tour-roster-groups .tour-source-card{background:#fff9e8;border-top-color:#d1b575}
.tour-roster-groups .group-card-heading{align-items:flex-start}
.tour-roster-groups .group-card-heading h3{min-width:0;overflow-wrap:anywhere}
.tour-roster-groups .source-family-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,285px),1fr));gap:12px}
.tour-roster-groups .compact-source-family{display:block;background:#fffdf2;border-top-color:#d9c99f;margin:0}
.tour-roster-groups .card-member-list .roster-person-chip{display:flex;align-items:flex-start;gap:0;min-width:0}
.tour-roster-groups .card-member-list .per-state-dot{margin-top:4px}
.tour-roster-groups .card-member-list .roster-person-chip button{min-width:0;min-height:0;padding:0;font:inherit;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.tour-roster-groups .card-member-list .roster-person-chip button:hover{text-decoration:underline}
.tour-roster-groups .tour-source-card details{margin:10px 0;color:#49685c;font-size:13px}
.tour-roster-groups .tour-source-card summary{cursor:pointer;padding:4px 0;line-height:1.4}
@media(max-width:640px){.tour-roster-groups .card-member-list li{min-height:36px}.tour-roster-groups .card-member-list .roster-person-chip button{min-height:26px}.tour-roster-groups .registry-card-actions button{min-height:40px}}

.passkey-login{margin:8px 0;width:100%;background:linear-gradient(120deg,#26766f,#216b7b);color:#fff}.passkey-dialog{box-sizing:border-box;width:min(540px,92vw);max-height:85dvh;overflow:auto;border:1px solid #95bdb1;border-radius:18px;background:#f3faf6;color:#2c575d;padding:24px}.passkey-dialog::backdrop{background:#48716d70;backdrop-filter:blur(6px)}.passkey-dialog label{display:block;margin:14px 0 6px}.passkey-dialog input{box-sizing:border-box;width:100%;padding:12px;background:white;border:1px solid #a6c4c1;border-radius:8px;font:inherit}.passkey-dialog button,.passkey-dialog>a{min-height:44px;margin:8px 8px 8px 0;padding:10px 14px;display:inline-flex;align-items:center;border:1px solid #a9c9c0;background:#deeee7;color:#24595e;border-radius:9px;font:inherit;max-width:100%;overflow-wrap:anywhere}.passkey-list>div{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c3d8ce;margin-top:8px;font-size:.9em}

body.passkey-locked>*:not(.passkey-unlock){visibility:hidden!important}body.passkey-locked>.passkey-unlock{visibility:visible!important}.passkey-setup-note{margin:10px auto;padding:9px 16px;color:#315c58;background:#e7f2ec;font-size:13px}.passkey-help{font-size:13px;line-height:1.6}header #passkey-settings{min-height:44px;white-space:normal;max-width:210px;font-size:13px}@media(max-width:700px){header:has(#passkey-settings){flex-wrap:wrap;gap:8px}header #passkey-settings{max-width:180px}}
