:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#f6f1e9;--color-surface:#fffdf9;--color-surface-muted:#efe7db;--color-border:#ddd2c2;--color-text:#2a231d;--color-text-muted:#6b5f53;--color-accent:#b04a23;--color-accent-hover:#933b19;--color-accent-soft:#f6e0d3;--color-on-accent:#fff;--color-focus:#1f6f8b;--color-success:#3f6f45;--color-success-soft:#e2eedf;--color-warning:#8a5a00;--color-warning-soft:#f8ebcc;--color-danger:#a32b2b;--color-danger-soft:#f7dcd8;--color-danger-hover:#882020;--color-glow:#fbe7d6;--shadow-color:60 40 20;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--leading-tight:1.2;--leading-normal:1.5;--weight-normal:400;--weight-medium:550;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgb(var(--shadow-color) / .08), 0 1px 3px rgb(var(--shadow-color) / .06);--shadow-md:0 2px 4px rgb(var(--shadow-color) / .08), 0 6px 16px rgb(var(--shadow-color) / .08);--shadow-lg:0 8px 20px rgb(var(--shadow-color) / .12), 0 20px 40px rgb(var(--shadow-color) / .1);--duration-fast:.12s;--duration-normal:.18s;--duration-slow:.24s;--ease-out:cubic-bezier(.2, .8, .2, 1);--press-scale:.97;--size-touch:44px;--size-focus-ring:3px;--width-content:56rem;--height-tabbar:64px;--width-field:24rem;--pad-card:var(--space-5)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=639.98px){:root{--text-2xl:1.75rem;--pad-card:var(--space-4)}}@media (prefers-color-scheme:dark){:root{--color-bg:#1b1815;--color-surface:#25211d;--color-surface-muted:#2f2a25;--color-border:#433b33;--color-text:#f1e9de;--color-text-muted:#b9ab9b;--color-accent:#ec9467;--color-accent-hover:#f3ad87;--color-accent-soft:#45291c;--color-on-accent:#1b1815;--color-focus:#7cc6df;--color-success:#93c49a;--color-success-soft:#22352a;--color-warning:#e7b85a;--color-warning-soft:#3d3018;--color-danger:#f08a80;--color-danger-soft:#45201d;--color-danger-hover:#f6a79f;--color-glow:#2c211a;--shadow-color:0 0 0}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:.01ms;--duration-normal:.01ms;--duration-slow:.01ms}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:radial-gradient(ellipse 80rem 28rem at 50% -8rem, var(--color-glow), transparent 70%), var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{line-height:var(--leading-tight);overflow-wrap:anywhere}a{color:var(--color-accent);text-underline-offset:.2em}:focus-visible{outline:var(--size-focus-ring) solid var(--color-focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}button,.button{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--size-touch);min-height:var(--size-touch);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:var(--weight-medium);cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--color-surface-muted);border-color:var(--color-text-muted)}button:active,.button:active{transform:scale(var(--press-scale));box-shadow:none}.button--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.button--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-accent)}.button--danger:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.button--quiet{box-shadow:none;color:var(--color-accent);background:0 0;border-color:#0000}.button--quiet:hover{background:var(--color-accent-soft);border-color:#0000}button[aria-disabled=true],.button[aria-disabled=true],button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}button[aria-disabled=true]:hover,.button[aria-disabled=true]:hover{filter:none}.button--primary[aria-disabled=true]:hover{background:var(--color-accent);border-color:var(--color-accent)}.button--danger[aria-disabled=true]:hover{background:var(--color-danger);border-color:var(--color-danger)}input[type=text],input[type=search],input[type=date],input[type=time],input[type=number],input:not([type]),select,textarea{min-height:var(--size-touch);max-width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;box-shadow:inset 0 1px 2px rgb(var(--shadow-color) / .06);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}input:hover,select:hover,textarea:hover{border-color:var(--color-text-muted)}input:focus,select:focus,textarea:focus{border-color:var(--color-accent)}input::placeholder{color:var(--color-text-muted)}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}fieldset{min-width:0;padding:var(--space-3) var(--space-4) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);margin:0}legend{padding:0 var(--space-2);font-weight:var(--weight-medium);color:var(--color-text-muted);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em}input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--color-accent);cursor:pointer;margin:0}label{font-weight:var(--weight-medium)}.card{padding:var(--pad-card);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.chip{align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1.6;display:inline-flex}.chip--success{background:var(--color-success-soft);color:var(--color-success)}.chip--warning{background:var(--color-warning-soft);color:var(--color-warning)}.chip--danger{background:var(--color-danger-soft);color:var(--color-danger)}.confirm-action{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--color-danger-soft);animation:confirm-action-in var(--duration-fast) var(--ease-out);flex-wrap:wrap;display:inline-flex}.confirm-action__question{color:var(--color-danger);font-weight:var(--weight-bold)}.confirm-action button{min-width:var(--size-touch);min-height:var(--size-touch)}@keyframes confirm-action-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}.empty-state{justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-5);text-align:center;animation:empty-state-in var(--duration-slow) var(--ease-out) both;display:grid}.empty-state__mark{width:4.5rem;height:3.5rem;margin-bottom:var(--space-2);position:relative}.empty-state__mark span{border-radius:var(--radius-sm);background:var(--color-surface-muted);border:1px solid var(--color-border);position:absolute;inset:0}.empty-state__mark span:first-child{transform:rotate(-8deg)translate(-6px,2px)}.empty-state__mark span:nth-child(2){transform:rotate(5deg)translate(6px)}.empty-state__mark span:nth-child(3){background:var(--color-surface);box-shadow:var(--shadow-sm)}.empty-state__mark span:nth-child(3):before{content:"";background:var(--color-accent);border-radius:50%;width:10px;height:10px;margin-left:-5px;position:absolute;top:-5px;left:50%}.empty-state__title{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-tight);margin:0}.empty-state__body{max-width:32rem;color:var(--color-text-muted);overflow-wrap:anywhere;margin:0}.empty-state__action{margin-top:var(--space-3)}@keyframes empty-state-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.screen-heading{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0}.screen-heading:focus{outline:none}.screen-heading:focus-visible{outline:var(--size-focus-ring) solid var(--color-focus);outline-offset:var(--space-1);border-radius:var(--radius-sm)}.save-failed:not(:empty){padding:var(--space-3) var(--space-4);background:var(--color-warning-soft);color:var(--color-warning);font-weight:var(--weight-medium)}.save-failed p{margin:0}.recovery-notice{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-warning-soft);color:var(--color-warning);border-bottom:1px solid color-mix(in srgb, var(--color-warning) 35%, transparent);font-weight:var(--weight-medium);flex-wrap:wrap;display:flex}.recovery-notice p{flex:16rem;margin:0}.recovery-notice button{min-width:var(--size-touch);min-height:var(--size-touch)}.rota-slot{gap:var(--space-1);padding:var(--space-2) 0;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.rota-slot__role{color:var(--color-text-muted);overflow-wrap:anywhere;min-width:0}.rota-slot__select{width:100%;min-width:0;max-width:100%;min-height:var(--size-touch);font:inherit;font-weight:var(--weight-medium);text-overflow:ellipsis}.rota-slot__select:has(option[value=""]:checked){background:var(--color-bg);color:var(--color-text-muted);font-weight:var(--weight-normal);border-style:dashed}.rota-slot__role{font-size:var(--text-sm);font-weight:var(--weight-medium)}.rota-slot__problems{gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.rota-slot__badge{align-items:center;gap:var(--space-1);overflow-wrap:anywhere;min-width:0;max-width:100%;font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-warning);background:var(--color-warning-soft);padding:0 var(--space-2);border-radius:var(--radius-pill);display:inline-flex}.rota-slot__icon{border:2px solid;border-radius:50%;flex:none;place-items:center;width:1.1em;height:1.1em;font-size:.8em;line-height:1;display:inline-grid}.printable-rota{display:none}@media print{.shell__header,.shell__skip,.rota-screen>h1,.rota-month,.rota-actions>:not(.printable-rota),.rota-summary,.rota-grid{display:none!important}.rota-actions{display:block}.printable-rota{border-collapse:collapse;color:#000;width:100%;font-size:11pt;display:table}.printable-rota caption{text-align:left;margin-bottom:.5rem;font-size:14pt;font-weight:700}.printable-rota th,.printable-rota td{text-align:left;overflow-wrap:anywhere;vertical-align:top;border:1px solid #000;padding:.25rem .4rem}.printable-rota tr{break-inside:avoid}}.rota-summary{gap:var(--space-4);margin-block:var(--space-5);display:grid}.rota-summary__status{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:var(--weight-medium);overflow-wrap:anywhere;border:1px solid #0000;margin:0;display:flex}.rota-summary__status--ready{background:var(--color-success-soft);border-color:color-mix(in srgb, var(--color-success) 35%, transparent);color:var(--color-success)}.rota-summary__status--problems{background:var(--color-warning-soft);border-color:color-mix(in srgb, var(--color-warning) 35%, transparent);color:var(--color-warning)}.rota-summary__dot{border-radius:var(--radius-pill);background:currentColor;flex:none;width:10px;height:10px}.fairness{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.fairness__heading{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-lg)}.fairness__spread,.fairness__empty{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}.fairness__empty{margin:0}.fairness__link{min-height:var(--size-touch);min-width:var(--size-touch);font-weight:var(--weight-medium);align-items:center;display:inline-flex}.fairness__list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.fairness__row{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);grid-template-columns:minmax(0,10rem) minmax(0,1fr) 2.5ch;display:grid}.fairness__row:focus-visible{background:var(--color-surface-muted)}.fairness__name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fairness__track{border-radius:var(--radius-pill);background:var(--color-surface-muted);height:8px;overflow:hidden}.fairness__bar{border-radius:inherit;background:var(--color-accent);height:100%;transition:width var(--duration-normal) var(--ease-out);display:block}.fairness__count{text-align:end;font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}.fairness__more{margin-top:var(--space-3)}.rota-screen{gap:var(--space-5);display:grid}.rota-month{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-sm);display:flex}.rota-month__title{text-align:center;font-family:var(--font-display);font-size:var(--text-xl);overflow-wrap:anywhere;margin:0}.rota-month__step{min-width:var(--size-touch);min-height:var(--size-touch);border-radius:var(--radius-pill);font-size:var(--text-xl);padding:0}.rota-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.rota-actions button{min-height:var(--size-touch)}.rota-grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px){.rota-grid{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}}.rota-card{padding:var(--space-4);padding-top:var(--space-5);min-width:0;animation:rota-card-in var(--duration-slow) var(--ease-out) both;position:relative;overflow:hidden}.rota-card:before{content:"";background:var(--color-accent);opacity:.85;height:4px;position:absolute;inset:0 0 auto}.rota-card__date{margin:0 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-lg);overflow-wrap:anywhere}.rota-card__service{margin:0 0 var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--text-md);overflow-wrap:anywhere}.rota-card__time{color:var(--color-text-muted);font-weight:var(--weight-normal);font-variant-numeric:tabular-nums}.rota-card__slots{margin:0;padding:0;list-style:none}@keyframes rota-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.away-dates__panel{margin-top:var(--space-3);padding:var(--space-4);gap:var(--space-3);border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border);animation:away-dates-open var(--duration-normal) var(--ease-out);display:grid}.away-dates__panel[hidden]{display:none}.away-dates__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.away-dates__item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.away-dates__form{gap:var(--space-3);flex-wrap:wrap;align-items:flex-start;display:flex}.away-dates__field{gap:var(--space-1);min-width:0;display:grid}.away-dates__field input{min-height:var(--size-touch)}.away-dates__error{color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0}.away-dates__limit{color:var(--color-text-muted);font-size:var(--text-sm);align-self:center;margin:0}.away-dates__form .button,.away-dates__item .button{min-height:var(--size-touch);min-width:var(--size-touch)}.away-dates__form .button{align-self:flex-end}@keyframes away-dates-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.volunteers-screen{gap:var(--space-5);display:grid}.volunteers-screen__form{gap:var(--space-4);display:grid}.volunteers-screen__field{gap:var(--space-1);display:grid}.volunteers-screen__field input{min-height:var(--size-touch);width:100%;max-width:var(--width-field)}.volunteers-screen__roles{gap:0 var(--space-3);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.volunteers-screen__check{align-items:center;gap:var(--space-2);min-height:var(--size-touch);min-width:var(--size-touch);overflow-wrap:anywhere;cursor:pointer;display:flex}.volunteers-screen__check input{margin:0 var(--space-1);flex:none}.volunteers-screen__buttons,.volunteers-screen__actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.volunteers-screen__buttons .button,.volunteers-screen__actions .button{min-height:var(--size-touch);min-width:var(--size-touch)}.volunteers-screen__error{color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0}.volunteers-screen__note{color:var(--color-text-muted);background:var(--color-warning-soft);box-shadow:none;border-color:#0000;margin:0}.volunteers-screen__note a{min-height:var(--size-touch);font-weight:var(--weight-medium);align-items:center;display:inline-flex}.volunteers-screen__list,.volunteers-screen__chips{margin:0;padding:0;list-style:none}.volunteers-screen__list{gap:var(--space-3);display:grid}.volunteers-screen__item{gap:var(--space-3);transition:box-shadow var(--duration-normal) var(--ease-out);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.volunteers-screen__item.card:hover,.volunteers-screen__item.card:focus-within{box-shadow:var(--shadow-md)}.volunteers-screen__item>.volunteers-screen__form{flex:100%}.volunteers-screen__summary{gap:var(--space-2);overflow-wrap:anywhere;flex:12rem;min-width:0;display:grid}.volunteers-screen__name{font-family:var(--font-display);font-size:var(--text-lg)}.volunteers-screen__chips{gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.volunteers-screen__chip{max-width:100%;padding:2px var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);overflow-wrap:anywhere}.volunteers-screen__away{padding:2px var(--space-3);border-radius:var(--radius-pill);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--text-sm);font-weight:var(--weight-medium);justify-self:start}.volunteers-screen__away-slot{flex:100%}.volunteers-screen__away-slot:empty{display:none}.services-screen{gap:var(--space-5);display:grid}.services-screen__form{gap:var(--space-4);display:grid}.services-screen__field{gap:var(--space-1);display:grid}.services-screen__field input,.services-screen__field select{min-height:var(--size-touch);width:100%;max-width:var(--width-field)}.services-screen__needs{gap:var(--space-1);display:grid}.services-screen__need{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.services-screen__need+.services-screen__need{padding-top:var(--space-1);border-top:1px solid var(--color-border)}.services-screen__check{align-items:center;gap:var(--space-2);min-height:var(--size-touch);min-width:var(--size-touch);overflow-wrap:anywhere;cursor:pointer;display:inline-flex}.services-screen__check input{margin:0 var(--space-1);flex:none}.services-screen__stepper{align-items:center;gap:var(--space-1);border-radius:var(--radius-md);background:var(--color-surface-muted);padding:2px;display:inline-flex}.services-screen__stepper .button{min-width:var(--size-touch);min-height:var(--size-touch);font-size:var(--text-lg);padding:0}.services-screen__count{text-align:center;font-variant-numeric:tabular-nums;min-width:3ch;font-weight:var(--weight-bold)}.services-screen__buttons,.services-screen__actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.services-screen__buttons .button,.services-screen__actions .button{min-height:var(--size-touch);min-width:var(--size-touch)}.services-screen__error{color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0}.services-screen__note{color:var(--color-text-muted);background:var(--color-warning-soft);box-shadow:none;border-color:#0000;margin:0}.services-screen__note a{min-height:var(--size-touch);font-weight:var(--weight-medium);align-items:center;display:inline-flex}.services-screen__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.services-screen__item{gap:var(--space-3);transition:box-shadow var(--duration-normal) var(--ease-out);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.services-screen__item.card:hover,.services-screen__item.card:focus-within{box-shadow:var(--shadow-md)}.services-screen__item>.services-screen__form{flex:100%}.services-screen__summary{gap:var(--space-1);overflow-wrap:anywhere;flex:12rem;min-width:0;display:grid}.services-screen__when{color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.08em}.services-screen__name{font-family:var(--font-display);font-size:var(--text-lg)}.services-screen__needs-text{color:var(--color-text-muted);font-size:var(--text-sm)}.roles-screen{gap:var(--space-5);display:grid}.roles-screen__add{gap:var(--space-2);display:grid}.roles-screen__add-row,.roles-screen__rename{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.roles-screen__add-row input,.roles-screen__rename input{min-width:0;min-height:var(--size-touch);flex:12rem}.roles-screen__add button,.roles-screen__rename button,.roles-screen__actions .button{min-height:var(--size-touch);min-width:var(--size-touch)}.roles-screen__error{color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-medium);flex-basis:100%;margin:0}.roles-screen__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.roles-screen__row{gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.roles-screen__row:hover,.roles-screen__row:focus-within{box-shadow:var(--shadow-md)}.roles-screen__name{min-width:0;font-weight:var(--weight-medium);overflow-wrap:anywhere;flex:10rem}.roles-screen__name:before{content:"";width:8px;height:8px;margin-right:var(--space-3);border-radius:var(--radius-pill);background:var(--color-accent);vertical-align:.1em;display:inline-block}.roles-screen__actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.backup-screen{gap:var(--space-5);display:grid}.backup-screen__section{gap:var(--space-3);justify-items:start;min-width:0;display:grid}.backup-screen__section h2{font-family:var(--font-display);font-size:var(--text-xl);margin:0}.backup-screen__section p{max-width:40rem;color:var(--color-text-muted);margin:0}.backup-screen__section input[type=file]{min-height:var(--size-touch);max-width:100%;padding:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);cursor:pointer}.backup-screen__section input[type=file]:hover{border-color:var(--color-accent)}.backup-screen__section input[type=file]::file-selector-button{min-height:calc(var(--size-touch) - var(--space-4));margin-right:var(--space-3);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:var(--weight-medium);cursor:pointer}.backup-screen__section button{min-height:var(--size-touch);min-width:var(--size-touch)}.backup-screen__section p.backup-screen__error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);font-weight:var(--weight-medium)}.backup-screen__pending{gap:var(--space-3);width:100%;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-muted);justify-items:start;display:grid}.backup-screen__section .backup-screen__pending p{color:var(--color-text)}.shell{min-height:100dvh}.shell__skip{top:var(--space-2);left:var(--space-2);z-index:30;position:absolute;transform:translateY(-200%)}.shell__skip:focus{transform:none}.shell__header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.shell__bar{max-width:var(--width-content);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-5);margin:0 auto;display:flex}.shell__title{align-items:center;gap:var(--space-2);min-height:var(--size-touch);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.01em;margin:0;display:flex}.shell__pin{background:var(--color-accent);width:12px;height:12px;box-shadow:0 0 0 3px var(--color-accent-soft), var(--shadow-sm);border-radius:50%}.shell__tabs{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.shell__tab{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--size-touch);min-height:var(--size-touch);padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);font-weight:var(--weight-medium);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.shell__tab:active{transform:scale(var(--press-scale))}.shell__tab:hover{background:var(--color-surface-muted);color:var(--color-text)}.shell__tab[aria-current=page]{background:var(--color-accent-soft);color:var(--color-accent)}.shell__main{max-width:var(--width-content);padding:var(--space-6) var(--space-4) var(--space-7);margin:0 auto}.shell__main:focus{outline:none}@media (width<=639.98px){.shell__bar{justify-content:center}.shell__nav{z-index:20;background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);backdrop-filter:saturate(1.4)blur(12px);border-top:1px solid var(--color-border);box-shadow:var(--shadow-md);padding-bottom:env(safe-area-inset-bottom);position:fixed;inset:auto 0 0}.shell__tabs{height:var(--height-tabbar);gap:0}.shell__tabs>li{flex:1;display:flex}.shell__tab{padding:var(--space-1) 0;font-size:var(--text-xs);border-radius:0;flex-direction:column;flex:1;gap:2px}.shell__tab[aria-current=page]{background:0 0}.shell__tab[aria-current=page] .nav-icon{background:var(--color-accent-soft);border-radius:var(--radius-pill);box-sizing:content-box;padding:2px 14px}.shell__main{padding:var(--space-5) var(--space-4) calc(var(--height-tabbar) + var(--space-6) + env(safe-area-inset-bottom))}}@media (width>=640px){.shell__header{z-index:20;box-shadow:var(--shadow-sm);background:color-mix(in srgb, var(--color-surface) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);backdrop-filter:saturate(1.4)blur(12px);position:sticky;top:0}.shell__nav{margin-left:auto}}@media (width>=640px) and (width<=839.98px){.shell__tab .nav-icon{display:none}}
