:root{--ground:#f6f7f9;--surface:#fff;--ink:#17202b;--muted:#556070;--line:#d9dee5;--control-border:#a9b2be;--accent:#1f5bb5;--accent-hover:#17468c;--accent-tint:#e7eef9;--accent-tint-text:#17468c;--away:#3d4653;--away-text:#fff;--warning:#fdebd3;--warning-text:#7a3e00;--empty:#fbe3e3;--empty-text:#8e1b1b;--success:#e6f3ea;--success-text:#1e6b3a;--highlight:#ffe9a8;--surface-alt:#f1f3f6;--grid-line:#c5ccd6;--text-secondary:#3d4653;--nav-active:#34404f;--nav-text:#d5dbe3;--mine-bg:#fff6da;--mine-border:#e5c766;--font:Inter, "Noto Sans SC", system-ui, sans-serif;--touch-min:44px;--radius:8px;--radius-card:10px;--radius-panel:12px}*,:before,:after{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font-family:var(--font);margin:0}a{color:var(--accent)}a:hover{color:var(--accent-hover)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{background:var(--ground);min-height:100vh;color:var(--ink);font-family:var(--font)}.muted{color:var(--muted)}.btn{height:var(--touch-min);border:1px solid var(--control-border);background:var(--surface);color:var(--ink);border-radius:var(--radius);font:inherit;cursor:pointer;padding:0 14px;font-size:15px;font-weight:500}.btn--wide{padding:0 16px}.btn--primary{background:var(--accent);color:#fff;border:none;padding:0 18px;font-weight:700}.btn--danger{color:var(--empty-text);border-color:var(--empty-text)}.btn--danger-solid{background:var(--empty-text);color:#fff;border:none;padding:0 18px;font-weight:700}.btn--danger-solid:disabled{opacity:.5;cursor:not-allowed}.btn--block{border-radius:var(--radius-card);width:100%;height:48px;font-size:16px}.icon-btn{border:1px solid var(--control-border);background:var(--surface);width:48px;height:48px;color:var(--ink);border-radius:var(--radius-card);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:disabled{color:var(--control-border);cursor:default}.toggle{gap:4px;display:flex}.toggle button{height:var(--touch-min);border:1.5px solid var(--control-border);background:var(--surface);color:var(--ink);border-radius:var(--radius);font:inherit;cursor:pointer;padding:0 14px;font-size:15px;font-weight:500}.toggle button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff}.pill{background:var(--accent-tint);color:var(--accent-tint-text);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.lang{gap:4px;display:flex}.lang button{min-width:52px;height:var(--touch-min);border-radius:var(--radius);font:inherit;cursor:pointer;font-size:15px;font-weight:500}.lang--dark button{border:1px solid var(--muted);color:#fff;background:0 0;font-weight:400}.lang--dark button[aria-pressed=true]{color:var(--ink);background:#fff;border-color:#fff;font-weight:700}.lang--light button{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.lang--light button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}.admin-bar{background:var(--ink);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 24px;display:flex;position:relative}.admin-bar__start{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.admin-bar__title{font-size:17px;font-weight:700}.admin-bar__nav{flex-wrap:wrap;gap:4px;font-size:15px;display:flex}.admin-bar__nav a,.admin-bar__drawer a{height:var(--touch-min);color:var(--nav-text);border-radius:var(--radius);align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.admin-bar__nav a[aria-current=page],.admin-bar__drawer a[aria-current=page]{color:#fff;background:var(--nav-active);font-weight:700}.admin-bar__end{align-items:center;gap:12px;display:flex}.admin-bar__who{color:var(--nav-text);font-size:15px}.admin-bar--mobile{flex-wrap:nowrap;gap:0;padding:8px 16px}.admin-bar--mobile .lang button{min-width:48px;font-size:14px}.admin-bar__menu{color:#fff;cursor:pointer;background:0 0;border:none;width:44px;height:44px;padding:0}.admin-bar__drawer{z-index:10;background:var(--ink);flex-direction:column;gap:4px;padding:8px 16px 12px;font-size:16px;display:flex;position:absolute;top:100%;left:0;right:0}.vol-header{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.vol-header__title{font-size:18px;font-weight:700}.vol-header__end{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.field-inline{align-items:center;gap:8px;font-size:15px;display:flex}.field-inline select{height:var(--touch-min);border:1px solid var(--control-border);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink);padding:0 10px;font-size:15px}.page{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.page--mobile{gap:14px;padding:16px}.builder__head,.builder__head-start,.builder__title,.builder__actions{flex-wrap:wrap;align-items:center;display:flex}.builder__head{justify-content:space-between;gap:12px}.builder__head-start,.builder__title{gap:12px}.builder__actions{gap:8px}.builder__title h1{margin:0;font-size:24px;font-weight:700}.warn-bar{flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;font-size:15px;display:flex}.warn-bar__item{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:14px;height:14px}.swatch--warn{background:var(--warning);border:1px solid var(--warning-text)}.swatch--empty{background:var(--empty);border:1px solid var(--empty-text)}.season-legend{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:16px;font-size:14px;display:flex}.season-legend__title{margin:0;font-size:14px;font-weight:700}.season-legend__list{flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;list-style:none;display:flex}.season-legend__item{align-items:center;gap:6px;display:inline-flex}.season-legend__swatch{border:1px solid var(--control-border);border-radius:3px;width:14px;height:14px}.builder__grid{contain:paint;min-width:0;overflow-x:auto}.grid-edit{border-collapse:collapse;table-layout:fixed;background:var(--surface);width:100%;min-width:820px;font-size:14px}.grid-edit th,.grid-edit td,.grid-print th,.grid-print td{box-sizing:content-box}.grid-edit th,.grid-edit td{border:1px solid var(--grid-line);text-align:center;padding:0;font-weight:400}.grid-edit th{background:var(--surface-alt);padding:8px 4px;font-weight:700}.grid-edit th[scope=row]{width:112px}.grid-edit td button{width:100%;min-height:var(--touch-min);font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:none;padding:4px 2px;line-height:1.25}.grid-edit td button:hover{background:var(--accent-tint)}.grid-edit td.w{background:var(--warning)}.grid-edit td.w button{color:var(--warning-text);font-weight:700}.grid-edit td.e{background:var(--empty)}.grid-edit td.e button{color:var(--empty-text);font-weight:700}.grid-edit td.t button{color:var(--text-secondary);font-size:13px}.grid-edit small,.slot-list small{font-size:11px;font-weight:700;display:block}.page--mobile .builder__head{gap:8px}.page--mobile .builder__title{flex-wrap:nowrap;gap:8px}.page--mobile .builder__title h1{font-size:20px}.page--mobile .pill{padding:3px 10px;font-size:13px}.page--mobile .builder__head .btn--primary{padding:0 16px}.warn-card{align-items:center;gap:10px;padding:10px 12px;font-size:15px;display:flex}.sunday-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.sunday-nav__label{text-align:center}.sunday-nav__caption{color:var(--muted);font-size:13px}.sunday-nav__date{font-size:22px;font-weight:700}.slot-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);flex-direction:column;display:flex;overflow:hidden}.slot-list__row{border:none;border-bottom:1px solid var(--line);background:var(--surface);width:100%;min-height:50px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:6px 14px;font-size:16px;display:flex}.slot-list__row:last-child{border-bottom:none}div.slot-list__row{cursor:default}.slot-list__role{color:var(--muted);font-size:15px}.slot-list__name{text-align:right;font-weight:700}.slot-list .w{background:var(--warning)}.slot-list .w .slot-list__name{color:var(--warning-text)}.slot-list .e{background:var(--empty)}.slot-list .e .slot-list__name{color:var(--empty-text)}.slot-list small{font-size:12px}.hint{margin:0;font-size:14px}.published{box-sizing:content-box;flex-direction:column;gap:28px;max-width:1320px;margin:0 auto;padding:24px;display:flex}.mine-banner{background:var(--mine-bg);border:1px solid var(--mine-border);border-radius:var(--radius-card);flex-wrap:wrap;align-items:center;gap:12px;min-height:70px;padding:12px 16px;font-size:16px;display:flex}.published__block{flex-direction:column;gap:10px;display:flex}.published__heading{text-align:center;margin:0;font-size:28px;font-weight:700}.published__block h2{text-align:center;margin:0;font-size:24px;font-weight:700}.scroll-x{overflow-x:auto}.grid-print{border-collapse:collapse;table-layout:fixed;background:var(--surface);width:100%;min-width:860px;font-size:14px}.grid-print th,.grid-print td{border:1px solid var(--ink);text-align:center;padding:7px 4px;font-weight:400;line-height:1.3}.grid-print th[scope=row]{background:var(--surface-alt);width:108px;font-weight:700}.grid-print thead th{background:var(--surface-alt);font-weight:700}.season-fill{color:#000}.grid-print .me{background:var(--highlight);font-weight:700}.page--mobile.published-m{gap:16px;padding:20px 16px}.published-m .vol-header__title{font-size:17px}.published-m__title{flex-direction:column;gap:4px;font-size:14px;display:flex}.published-m__title h1{margin:0;font-size:20px;font-weight:700}.mine-card{background:var(--mine-bg);border:1px solid var(--mine-border);border-radius:var(--radius-panel);flex-direction:column;gap:10px;padding:14px;display:flex}.mine-card__title{font-size:16px;font-weight:700}.mine-card__row{background:var(--surface);border-radius:var(--radius-card);justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:8px 12px;font-size:14px;display:flex}.mine-card__date{font-size:17px;font-weight:700}.published-m__sunday{flex-direction:column;gap:10px;display:flex}.published-m__sunday h2{margin:0;font-size:18px;font-weight:700}.chips{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.chips button{border:1.5px solid var(--control-border);background:var(--surface);min-width:78px;height:56px;color:var(--ink);border-radius:var(--radius-card);font:inherit;cursor:pointer;flex:none;font-size:15px;font-weight:500}.chips button span{color:var(--muted);font-size:12px;display:block}.chips button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff;font-weight:700}.chips button[aria-pressed=true] span{color:#fff;font-weight:500}.role-list{border:1px solid var(--line);border-radius:var(--radius-panel);overflow:hidden}.role-list table{border-collapse:collapse;background:var(--surface);width:100%;font-size:16px}.role-list caption{caption-side:top;text-align:left;background:var(--surface-alt);border-bottom:1px solid var(--line);padding:12px 14px;font-size:17px;font-weight:700}.role-list th,.role-list td{border-bottom:1px solid var(--line);text-align:left;padding:11px 14px}.role-list th{width:42%;color:var(--muted);font-weight:500}.role-list td{font-weight:700}.role-list .me th,.role-list .me td{background:var(--highlight);color:var(--ink)}.published-m__actions{flex-direction:column;gap:8px;display:flex}.pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width<=767.98px){.vol-header{padding:12px 16px}.vol-header__title{font-size:17px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-head__actions,.row-actions,.form-actions{flex-wrap:wrap;gap:8px;display:flex}.page-title{margin:0;font-size:24px;font-weight:700}.page--mobile .page-title{font-size:20px}.page-title__count{font-size:16px;font-weight:400}.narrow{max-width:560px;margin:0 auto}.small{font-size:14px}.small-heading{margin:0;font-size:16px;font-weight:700}.notice{background:var(--success);color:var(--success-text);border-radius:var(--radius-card);margin:0;padding:10px 16px;font-size:15px}.btn--link{align-items:center;text-decoration:none;display:inline-flex}.btn--primary.btn--link,a.btn--primary{color:#fff}.btn:disabled{cursor:default;opacity:.6}.filters{flex-wrap:wrap;gap:8px;display:flex}.page--mobile .filters{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.filters button{height:var(--touch-min);border:1.5px solid var(--control-border);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;padding:0 14px;font-size:15px}.filters button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff;font-weight:500}.pill--ok{background:var(--success);color:var(--success-text)}.pill--no{background:var(--warning);color:var(--warning-text)}.data-wrap{border:1px solid var(--line);border-radius:var(--radius-panel);overflow-x:auto}.data-table{border-collapse:collapse;background:var(--surface);width:100%;min-width:900px;font-size:15px}.data-table th,.data-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 12px}.data-table tbody tr:last-child td{border-bottom:none}.data-table th{color:var(--muted);background:var(--surface-alt);font-size:13px;font-weight:700}.data-table .pill{padding:3px 10px;font-size:13px;display:inline-block}.sub{color:var(--muted);font-size:13px}.contact{flex-direction:column;font-size:14px;display:flex}.cards{flex-direction:column;gap:14px;display:flex}.vcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.vcard__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.vcard__name{font-size:17px;font-weight:700}.vcard__meta{color:var(--muted);font-size:14px;line-height:1.4}.vcard .pill{white-space:nowrap;padding:3px 10px;font-size:13px}.vcard--form{gap:12px}.form,.picker-form{flex-direction:column;gap:14px;display:flex}.form-card{flex-direction:column;gap:14px;padding:16px;display:flex}.field{color:var(--muted);flex-direction:column;gap:6px;min-width:0;font-size:14px;display:flex}.field input,.field select,.field textarea{min-height:var(--touch-min);border:1px solid var(--control-border);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--surface);padding:0 10px;font-size:15px}.field textarea{resize:vertical;padding:10px}.field [aria-invalid=true]{border-color:var(--empty-text)}.page--mobile .field input,.page--mobile .field select,.dialog .field input,.dialog .field select,.dialog .field textarea{font-size:16px}.input-narrow{width:80px}.field-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:start;gap:12px;display:grid}.field--action{justify-content:flex-end;align-self:end}.field-error{color:var(--empty-text);font-size:13px;font-weight:500}.form-error{background:var(--empty);color:var(--empty-text);border-radius:var(--radius);margin:0;padding:10px 12px;font-size:15px}.check{min-height:var(--touch-min);color:var(--ink);align-items:center;gap:10px;font-size:15px;display:inline-flex}.check input{width:20px;height:20px;margin:0}.fieldset{border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:4px;margin:0;padding:12px 14px;display:flex}.fieldset legend{color:var(--muted);padding:0 4px;font-size:14px}.role-pick{flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.weeks{flex-wrap:wrap;gap:6px;display:flex}.week{min-height:var(--touch-min);border:1px solid var(--control-border);border-radius:var(--radius);align-items:center;gap:4px;padding:0 10px;font-size:14px;display:inline-flex}.week:has(input:checked){border-color:var(--accent);background:var(--accent-tint);color:var(--accent-tint-text);font-weight:700}.leader-picks{border:none;flex-direction:column;margin:0;padding:0;display:flex}.order-btns{gap:4px;display:flex}.icon-btn--small{border-radius:var(--radius);width:44px;height:44px}.plain-list{margin:0;padding-left:20px}.cell-ro{min-height:var(--touch-min);color:var(--muted);flex-direction:column;justify-content:center;padding:4px 2px;line-height:1.25;display:flex}.dialog{border:1px solid var(--line);border-radius:var(--radius-panel);width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--ink);font-family:var(--font);padding:0}.dialog::backdrop{background:#17202b73}.dialog__head{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 18px;display:flex;position:sticky;top:0}.dialog__head h2{margin:0;font-size:18px;font-weight:700}.dialog__close{width:44px;height:44px;color:var(--ink);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.dialog__body{flex-direction:column;gap:14px;padding:16px 18px 18px;display:flex}.dialog__body p{margin:0}@media (width<=767.98px){.dialog{border-radius:var(--radius-panel) var(--radius-panel) 0 0;width:100vw;max-width:100vw;max-height:90vh;margin:auto 0 0}}.picker__now{font-size:15px}.picker__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.picker__option{width:100%;min-height:var(--touch-min);border:1px solid var(--grid-line);background:var(--surface);color:var(--ink);border-radius:var(--radius-card);font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.picker__option strong{font-size:16px}.picker__option span{color:var(--text-secondary);font-size:14px}.picker__option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}.picker__option[aria-current=true]{border:1.5px solid var(--accent);background:var(--accent-tint);cursor:default}.picker__option--warn span{color:var(--warning-text)}a.admin-bar__who{min-height:var(--touch-min);align-items:center;text-decoration:none;display:inline-flex}a.admin-bar__who:hover{color:#fff;text-decoration:underline}.leader-picks legend{color:var(--muted);padding:0;font-size:14px}.personal-link__actions{flex-wrap:wrap;gap:8px;display:flex}.personal-link__confirm{border:1px solid var(--line);border-radius:var(--radius);background:var(--ground);flex-direction:column;gap:8px;padding:12px;display:flex}.personal-link__confirm p{margin:0}.personal-link__url{width:100%;height:var(--touch-min);border:1px solid var(--control-border);border-radius:var(--radius);font:inherit;color:var(--ink);background:var(--surface);padding:0 10px;font-size:14px}.link-periods{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.link-period{flex-direction:column;align-items:flex-start;gap:10px;padding:16px;display:flex}.link-period__head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.link-period__name{font-size:16px;font-weight:700}.avail-page{padding:20px 16px}.avail{flex-direction:column;gap:16px;display:flex}.avail--desktop{flex-flow:wrap;align-items:flex-start;gap:28px;max-width:1200px;margin:0 auto}.avail__side{flex-direction:column;flex:340px;gap:16px;min-width:0;display:flex}.avail__main{flex-direction:column;flex:999 560px;gap:16px;min-width:0;display:flex}.avail__months{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.avail-intro{flex-direction:column;gap:8px;display:flex}.avail-intro__period{font-size:14px}.avail-intro__hello{margin:0;font-size:24px;font-weight:700}.avail--desktop .avail-intro__hello{font-size:28px}.avail-intro__lead{margin:0;font-size:16px;line-height:1.5}.avail-roles{flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;display:flex}.avail-prefs{margin:6px 0 0;padding:0;font-size:14px;line-height:1.5;list-style:none}.avail-roles__item{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.chip{background:var(--accent-tint);color:var(--accent-tint-text);border-radius:999px;padding:4px 10px;font-weight:500}.text-button{min-height:var(--touch-min);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;margin:-8px 0;padding:0 2px;font-weight:500;text-decoration:underline;display:inline-flex}.text-button:hover{color:var(--accent-hover)}.avail-notice{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface);margin:0;padding:12px 16px;font-size:15px;line-height:1.5}.btn-outline-accent{border:1.5px solid var(--accent);background:var(--surface);height:52px;color:var(--accent);border-radius:var(--radius-panel);font:inherit;cursor:pointer;font-size:17px;font-weight:700}.avail-card{border-radius:var(--radius-panel);flex-direction:column;gap:12px;padding:16px;display:flex}.avail-card__title{margin:0;font-size:17px;font-weight:700}.avail-card p{margin:0}.avail-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.avail-range label,.avail-more__field{color:var(--muted);flex-direction:column;gap:4px;font-size:14px;display:flex}.avail-range input,.avail-more__field select{height:var(--touch-min);border:1px solid var(--control-border);border-radius:var(--radius);width:100%;font:inherit;color:var(--ink);background:var(--surface);padding:0 8px;font-size:15px}.btn-dark{height:var(--touch-min);background:var(--ink);color:#fff;border-radius:var(--radius);font:inherit;cursor:pointer;border:none;font-size:16px;font-weight:500}.month{flex-direction:column;gap:10px;display:flex}.month--card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);gap:12px;padding:16px}.month__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.month__head h2{margin:0;font-size:20px;font-weight:700}.month-switch{height:var(--touch-min);border:1px solid var(--control-border);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:0 14px;font-size:15px;font-weight:500}.month-switch--on{border-color:var(--away);background:var(--away);color:var(--away-text)}.month__sundays{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.sunday{border:1.5px solid var(--control-border);background:var(--surface);height:64px;color:var(--ink);border-radius:var(--radius-panel);font:inherit;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.sunday:disabled{cursor:default}.sunday__day{font-size:18px;font-weight:700}.sunday__sub{color:var(--muted);font-size:13px}.sunday--away{border-color:var(--away);background:var(--away);color:var(--away-text)}.sunday--away .sunday__day{text-decoration:line-through}.sunday--away .sunday__sub{color:var(--away-text);font-weight:500}.avail-more summary{min-height:var(--touch-min);cursor:pointer;align-items:center;font-size:16px;font-weight:700;display:flex}.avail-more__roles{border:none;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}.avail-more__roles legend{color:var(--muted);margin-bottom:4px;padding:0;font-size:14px}.avail-more__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.avail-more__list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:15px;display:flex}.avail-note{flex-direction:column;gap:6px;font-size:16px;font-weight:500;display:flex}.avail-note textarea{border:1px solid var(--control-border);border-radius:var(--radius);width:100%;font:inherit;color:var(--ink);background:var(--surface);resize:none;padding:10px;font-size:16px;font-weight:400}.avail-summary__text{flex-direction:column;gap:6px;font-size:16px;line-height:1.5;display:flex}.avail-summary--wide{flex-flow:wrap;justify-content:space-between;align-items:center;gap:16px}.btn-submit{background:var(--accent);color:#fff;border-radius:var(--radius-panel);height:52px;font:inherit;cursor:pointer;border:none;font-size:18px;font-weight:700}.btn-submit:hover{background:var(--accent-hover)}.avail-summary--wide .btn-submit{padding:0 40px}.btn-submit:disabled,.btn-outline-accent:disabled{opacity:.6;cursor:default}.avail-result{min-height:1em;margin:0}.avail-roster-link{max-width:1200px;margin:16px auto 0}@media (width>=768px){.avail-page{padding:28px 24px}}.responses-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page--mobile .responses-head{gap:8px}.page--mobile .responses-head .page-title{font-size:20px}.counters{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.counter{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);padding:14px 16px}.counter__label{color:var(--muted);font-size:14px}.counter__value{font-size:28px;font-weight:700}.counter__of{color:var(--muted);font-size:16px;font-weight:400}.counters--mobile{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.counters--mobile .counter{border-radius:var(--radius-card);padding:10px}.counters--mobile .counter__value{font-size:22px}.counters--mobile .counter__of,.counters--mobile .counter__label{font-size:13px}.data-table tbody th{color:var(--ink);background:var(--surface);font-size:15px;font-weight:400}.data-table .row-actions .btn{border-radius:var(--radius);font-size:15px;font-weight:500}.btn--dark,a.btn--dark{background:var(--ink);color:#fff;border:none}.vcard .btn{height:var(--touch-min);border-radius:var(--radius);justify-content:center;font-size:15px;font-weight:500}.vcard .btn--dark{font-weight:700}.vcard__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.response-note{white-space:pre-wrap;margin-top:4px}.on-behalf{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;max-width:1200px;margin:0 auto 16px;display:flex}.on-behalf__banner{background:var(--accent-tint);color:var(--accent-tint-text);border-radius:var(--radius-card);margin:0;padding:10px 16px;font-size:15px;font-weight:700}.sign-in{gap:16px}.btn--block{justify-content:center;width:100%}.sign-in .btn--block{border-radius:var(--radius-panel);height:52px;font-size:17px}.sign-in__google{border:1.5px solid var(--accent);color:var(--accent)}.sign-in__or{text-align:center;color:var(--muted);margin:0;font-size:14px}.sign-in .field input{min-height:48px;font-size:17px}.admin-bar__who{align-items:center;gap:12px;display:inline-flex}.admin-bar__signout{min-height:var(--touch-min);border:1px solid var(--muted);color:#fff;border-radius:var(--radius);font:inherit;cursor:pointer;background:0 0;padding:0 12px;font-size:15px}.help__layout{grid-template-columns:220px minmax(0,1fr);gap:40px;max-width:1200px;display:grid}.help__toc{flex-direction:column;align-self:start;gap:2px;font-size:15px;display:flex;position:sticky;top:16px}.help__toc-label{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:700}.help__toc a{border-radius:var(--radius);color:var(--ink);padding:8px 10px;text-decoration:none}.help__toc a:hover,.help__toc a:focus-visible{background:var(--accent-tint);color:var(--accent-tint-text)}.help__content{flex-direction:column;gap:48px;min-width:0;display:flex}.help__intro,.help-step{flex-direction:column;gap:16px;scroll-margin-top:16px;display:flex}.help__lead{max-width:68ch;color:var(--muted);margin:0;font-size:18px;line-height:1.55}.help-step__head{align-items:center;gap:12px;display:flex}.help-step__head h2{margin:0;font-size:22px;font-weight:700}.help-step__num{background:var(--accent);color:#fff;font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.help-text{flex-direction:column;gap:12px;max-width:68ch;font-size:16px;line-height:1.6;display:flex}.help-text p{margin:0}.help-text ol,.help-text ul{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.help-note{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface);max-width:68ch;margin:0;padding:12px 16px;font-size:15px;line-height:1.55}.help-note--warn{border-left-color:var(--warning-text)}.help-code{background:var(--accent-tint);color:var(--accent-tint-text);overflow-wrap:anywhere;border-radius:6px;padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.help-season{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.help-season li{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;font-size:15px;line-height:1.5;display:flex}.help-shot{flex-direction:column;gap:8px;min-width:0;margin:0;display:flex}.help-shot img{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);width:100%;height:auto;display:block}.help-shot figcaption{color:var(--muted);font-size:14px}.help-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.help-phone-row{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.help-phone{border:8px solid var(--ink);background:var(--surface);border-radius:22px;max-height:620px;overflow-y:auto}.help-phone img{border:0;border-radius:0}.help-checklist{flex-direction:column;gap:10px;max-width:80ch;margin:0;padding:0;list-style:none;display:flex}.help-checklist li{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);grid-template-columns:28px minmax(0,1fr);align-items:start;gap:12px;padding:14px 16px;display:grid}.help-checklist li.is-done{border-color:var(--success-text);background:var(--success)}.help-checklist input{width:22px;height:22px;accent-color:var(--accent);margin:2px 0 0}.help-checklist label{cursor:pointer;flex-direction:column;gap:4px;font-size:16px;line-height:1.5;display:flex}.help-checklist__expect{color:var(--muted);font-size:15px}.help-words{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);gap:0;max-width:80ch;margin:0;display:grid;overflow:hidden}.help-words div{border-bottom:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);gap:16px;padding:12px 16px;font-size:15px;line-height:1.5;display:grid}.help-words div:last-child{border-bottom:none}.help-words dt{font-weight:700}.help-words dd{margin:0}@media (width<=767.98px){.help__layout{grid-template-columns:minmax(0,1fr);gap:20px}.help__toc{flex-flow:wrap;gap:6px;position:static}.help__toc-label{width:100%}.help__toc a{min-height:var(--touch-min);border:1px solid var(--line);background:var(--surface);align-items:center;display:inline-flex}.help__content{gap:36px}.help-season,.help-pair,.help-phone-row{grid-template-columns:minmax(0,1fr)}.help-phone{max-width:320px}.help-words div{grid-template-columns:minmax(0,1fr);gap:2px}}.grid-edit td.d,.slot-list__row.d{outline:2px dashed var(--accent);outline-offset:-3px}.grid-edit td.d button{font-weight:700}.grid-edit td.c,.slot-list__row.c{outline:2px dotted var(--text-secondary);outline-offset:-3px;background:var(--surface-alt)}.unsaved-bar{z-index:20;padding:12px max(24px, env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(24px, env(safe-area-inset-left,0px));background:var(--surface);border-top:2px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #17202b14}.unsaved-bar__text{margin:0;font-size:15px}.unsaved-bar__actions{gap:8px;display:flex}.builder{padding-bottom:96px}.version-banner{border:1px solid var(--line);border-left:4px solid var(--text-secondary);border-radius:var(--radius-card);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.version-banner p{margin:0;font-size:15px;line-height:1.5}.version-list{flex-direction:column;gap:8px;max-height:60vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.version-list li{border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.version-list__main{flex-direction:column;gap:2px;min-width:0;display:flex}.version-list__note{overflow-wrap:anywhere;font-size:14px}.conflict-list{flex-direction:column;gap:12px;margin:0 0 16px;padding:0;list-style:none;display:flex}.conflict-list fieldset{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:4px;margin:0;padding:10px 12px;display:flex}.conflict-list legend{padding:0 4px;font-weight:700}@media (width<=767.98px){.unsaved-bar{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}.unsaved-bar__actions{flex:100%}.unsaved-bar__actions .btn{flex:1}}.responses-send{margin:0 0 12px;display:flex}.send-pick{max-height:280px;margin-top:12px;overflow-y:auto}.period-choose select{min-width:0;max-width:100%}.page--mobile .period-choose select{flex:1}.avail-periods{flex-wrap:nowrap;max-width:1200px;margin:0 auto 16px;padding-bottom:4px;overflow-x:auto}.swap-page{flex-direction:column;gap:16px;padding:20px 16px;display:flex}@media (width>=768px){.swap-page{gap:20px;max-width:1120px;margin:0 auto;padding:28px 24px}}.swap-head{flex-direction:column;gap:6px;display:flex}.swap-head h1{margin:0;font-size:24px;font-weight:700}@media (width>=768px){.swap-head h1{font-size:28px}}.swap-back{color:var(--accent);align-self:flex-start;font-size:15px;font-weight:500;text-decoration:none}.swap-back:hover{text-decoration:underline}.swap-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);flex-direction:column;gap:10px;padding:14px;display:flex}.swap-label{color:var(--muted);font-size:14px}.swap-mine{gap:6px;padding:16px}@media (width>=768px){.swap-mine{flex-flow:wrap;justify-content:space-between;align-items:center;gap:12px}}.swap-mine__text{flex-direction:column;gap:6px;display:flex}@media (width>=768px){.swap-mine__text{gap:4px}}.swap-mine__date{font-size:20px;font-weight:700}@media (width>=768px){.swap-mine__date{font-size:18px}}.swap-other-dates{flex-wrap:wrap;flex-basis:100%;gap:8px;display:flex}.role-chip{background:var(--accent-tint);color:var(--accent-tint-text);border-radius:999px;padding:4px 10px;font-size:15px;font-weight:500;display:inline-block}.swap-kind{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width>=768px){.swap-kind{display:flex}}.swap-kind button{border:1.5px solid var(--control-border);background:var(--surface);height:48px;color:var(--ink);border-radius:var(--radius-card);font:inherit;cursor:pointer;padding:0 24px;font-size:16px;font-weight:500}.swap-kind button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-tint-text);font-weight:700}.swap-choices{flex-direction:column;gap:16px;display:flex}.swap-people-head h2{margin:0 0 4px;font-size:17px;font-weight:700}.swap-people-head p{margin:0;font-size:14px}.swap-people{flex-direction:column;gap:10px;display:flex}@media (width>=768px){.swap-people{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}}.swap-person--picked{border:1.5px solid var(--accent)}.swap-person__name{font-size:17px;font-weight:700}.swap-person__pick{min-height:var(--touch-min);font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-size:17px;font-weight:700}.swap-person__pick[aria-pressed=true]:after{content:" ✓";color:var(--accent)}.swap-person__days{color:var(--text-secondary);margin:0;font-size:15px}.swap-no-email{background:var(--surface-alt);color:var(--text-secondary);border-radius:var(--radius);margin:0;padding:8px 12px;font-size:14px}.swap-dates{flex-wrap:wrap;gap:8px;display:flex}.date-chip{border:1.5px solid var(--control-border);background:var(--surface);height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:0 14px;font-size:15px}.date-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:700}.swap-summary{gap:12px;padding:16px}.swap-moves{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.swap-moves--stack{grid-template-columns:1fr}.swap-move{flex-direction:column;gap:2px;display:flex}.swap-move__date{color:var(--muted);font-size:14px}.swap-move__who{font-size:16px}.swap-move__from{color:var(--muted);text-decoration:line-through}.lines{white-space:pre-line}.swap-also{background:var(--warning);color:var(--warning-text);border-radius:var(--radius);margin:8px 0 0;padding:8px 12px;font-size:14px;font-weight:500}.swap-ok{background:var(--success);color:var(--success-text);border-radius:var(--radius);padding:8px 12px;font-size:15px;font-weight:500}.swap-note{color:var(--text-secondary);margin:0;font-size:15px;line-height:1.5}.swap-send{border-radius:var(--radius-panel);height:52px;font-size:18px}.swap-columns{flex-wrap:wrap;align-items:flex-start;gap:28px;display:flex}.swap-columns__main{flex-direction:column;flex:999 520px;gap:16px;min-width:0;display:flex}.swap-columns__side{flex:320px;min-width:0}.swap-answer{justify-content:center;padding:20px 16px;display:flex}.swap-answer__card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);flex-direction:column;gap:16px;width:100%;max-width:560px;padding:20px;display:flex}.swap-answer__card h1{margin:0;font-size:24px}.swap-answer__card p{margin:0}.answer-outcome{border-radius:var(--radius);background:var(--surface-alt);padding:10px 12px;font-weight:500}.answer-outcome--approved{background:var(--success);color:var(--success-text)}.builder__body{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.builder__body .builder__grid{flex:999 760px}.assistant{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);flex-direction:column;flex:340px;gap:14px;min-width:0;padding:16px;display:flex}.page--mobile .assistant{gap:12px;padding:14px}.assistant h2{margin:0;font-size:18px;font-weight:700}.assistant__ask{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;display:flex}.assistant__ask textarea{box-sizing:border-box;border:1px solid var(--control-border);border-radius:var(--radius);width:100%;font:inherit;color:var(--ink);background:var(--surface);resize:vertical;padding:10px;font-size:15px}.assistant__propose{border-color:var(--ink);font-weight:700}.assistant__result{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:14px;display:flex}.assistant__result p{margin:0;font-size:15px;line-height:1.5}.assistant__label{color:var(--muted);font-size:14px}.assistant__slot{border:0;flex-direction:column;gap:10px;min-width:0;margin:0;padding:0;display:flex}.assistant__slot legend{margin-bottom:10px;padding:0;font-size:15px;line-height:1.5}.assistant__option{min-height:var(--touch-min);box-sizing:border-box;border:1px solid var(--grid-line);border-radius:var(--radius-card);cursor:pointer;align-items:flex-start;gap:10px;padding:12px;display:flex}.assistant__option:has(input:checked){border:1.5px solid var(--accent);background:var(--accent-tint)}.assistant__option input{flex:none;width:18px;height:18px;margin-top:4px}.assistant__option>span{flex-direction:column;gap:2px;display:flex}.assistant__option strong{font-size:16px}.assistant__detail{color:var(--text-secondary);font-size:14px}.assistant__result p.assistant__muted{color:var(--muted);font-size:14px}.assistant__summary{background:var(--surface-alt);border-radius:var(--radius);flex-direction:column;gap:4px;margin:0;padding:10px 12px;font-size:15px;list-style:none;display:flex}.assistant__from{color:var(--muted);text-decoration:line-through}.assistant__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.assistant__actions .btn:only-child{grid-column:2}.assistant__result p.assistant__hint{color:var(--muted);font-size:13px}.assistant__changed{background:var(--warning);color:var(--warning-text);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.church-rules{flex-direction:column;gap:12px;padding:16px;display:flex}.church-rules h2{margin:0;font-size:18px}.church-rules p{margin:0}.church-rules__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.church-rules__list li{min-height:var(--touch-min);background:var(--surface-alt);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 12px;display:flex}.church-rules__remove{margin-left:auto}.church-rules__say{flex-direction:column;gap:10px;max-width:640px;display:flex}.church-rules__reading{border:1.5px solid var(--accent);background:var(--accent-tint);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:12px;display:flex}.church-rules__form{flex-direction:column;gap:12px;display:flex}.church-rules__form summary{min-height:var(--touch-min);cursor:pointer;align-items:center;font-weight:700;display:flex}.church-rules__form[open]{flex-direction:column;gap:12px;display:flex}.church-rules__fields{flex-wrap:wrap;gap:12px;display:flex}.church-rules__fields .field{flex:180px}.church-rules__fields select{width:100%;height:var(--touch-min);border:1px solid var(--control-border);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--ink);padding:0 8px;font-size:15px}.church-rules__form>.btn{align-self:flex-start}.role-pick__strict{margin-left:28px;font-size:14px}.builder__grid .grid-edit{min-width:calc(112px + var(--sundays,9) * 92px)}.builder__grid .grid-edit th[scope=row]{z-index:1;box-shadow:inset 1px 0 0 var(--grid-line), inset -1px 0 0 var(--grid-line);position:sticky;left:-1px}.grid-edit td.h{padding:2px}.grid-input,.slot-input{width:100%;min-height:var(--touch-min);box-sizing:border-box;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;color:inherit;line-height:1.3;font:inherit;text-align:center;background:0 0;border:1px solid #0000;border-radius:4px;padding:11px 6px;font-size:13px;display:block;overflow:hidden}.grid-input:hover{border-color:var(--grid-line)}.grid-input:focus,.slot-input:focus{border-color:var(--accent);background:var(--surface);color:var(--ink);outline:2px solid var(--accent);outline-offset:-2px}.slot-list__row--heading{cursor:default}.slot-list__row--heading .slot-list__role{color:var(--muted);flex:none}.slot-list__row--heading.season-fill .slot-list__role{color:#000}.slot-input{border-color:var(--line);background:var(--surface);text-align:right;flex:1;max-width:60%;font-size:16px}.builder__name{color:var(--text-secondary);font-weight:600}.rename-form{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.rename-form .field{min-width:200px}.name-search{box-sizing:border-box;min-height:var(--touch-min);border:1.5px solid var(--control-border);background:var(--surface);color:var(--ink);font:inherit;border-radius:8px;padding:0 12px;font-size:16px}.list-tools{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.list-tools .name-search{width:min(280px,100%)}.person-select{flex-direction:column;gap:6px;display:flex}.person-select .name-search,.picker__search{width:100%}.picker__custom{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.settings-card{margin-top:16px;padding:20px}@media screen{.print-root{display:none}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff}body:has(>.print-root)>#root{display:none}.print-root{color:#000;font-family:var(--font);display:block}.print-block{break-inside:avoid}.print-heading{text-align:center;height:7mm;margin:0;font-size:13pt;font-weight:700;line-height:7mm}.print-block:not(:first-child){break-before:page}.print-block h2{text-align:center;margin:0 0 2mm;font-size:15pt;font-weight:700}.print-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:9pt;line-height:1.2}.print-table th,.print-table td{height:min(9mm, calc(150mm / var(--print-rows,14)));text-align:center;vertical-align:middle;white-space:normal;overflow-wrap:anywhere;border:.75pt solid #000;padding:0 1mm;font-weight:400;line-height:1.1;overflow:hidden}.print-table th[scope=row]{width:24mm;font-weight:700}.print-table thead th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f1f3f6;font-weight:700}.print-table .lines{white-space:pre-line}.print-table .season-fill{color:#000}.print-table .pad{border:none}}@media screen{.paper-root{display:none}}@media print{@page paper{size:A4 portrait;margin:15mm}body:has(>.paper-root)>#root{display:none}.paper-root{color:#000;font-family:var(--font);font-size:16pt;line-height:1.4;display:block}.paper-form{page:paper;break-after:page}.paper-form:last-child{break-after:auto}.paper-form h1{text-align:center;margin:0;font-size:24pt}.paper-form p{margin:0 0 4mm}.paper-form__period{text-align:center;font-size:16pt}.paper-form__who{border-top:1pt solid #000;border-bottom:1pt solid #000;flex-wrap:wrap;justify-content:space-between;gap:4mm;padding:3mm 0;display:flex}.paper-form__months{grid-template-columns:repeat(3,1fr);gap:6mm;margin:4mm 0 8mm;display:grid}.paper-form__month h2{margin:0 0 2mm;font-size:18pt}.paper-form__month ul{margin:0;padding:0;list-style:none}.paper-form__month li{align-items:center;gap:3mm;min-height:11mm;display:flex}.paper-form__box{border:1.5pt solid #000;flex:none;width:7mm;height:7mm}.paper-form__week{font-size:12pt}.paper-form__note{flex-direction:column;gap:9mm;margin-bottom:8mm;display:flex}.paper-form__line{border-bottom:1pt solid #000}}
