.logo{flex:none;display:block}.logo__card{fill:var(--color-surface);stroke:var(--color-text)}.logo__bar-1{fill:var(--person-1)}.logo__bar-2{fill:var(--person-2)}.logo__bar-3{fill:var(--person-7)}.logo__pin{fill:var(--color-pin)}.logo__shine{fill:var(--color-surface);fill-opacity:.6}.sample-notice{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-4);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-7);border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;display:flex;position:relative}.sample-notice__pin{top:50%;left:var(--space-3);margin-top:-7px}.sample-notice__ask{display:contents}.sample-notice__text{font-size:var(--text-sm);flex:22rem;line-height:1.45}.sample-notice__text strong{font-family:var(--font-display);font-size:var(--text-md);letter-spacing:-.01em;font-weight:600}.sample-notice__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=34rem){.sample-notice{gap:var(--space-3);padding-left:var(--space-4);flex-wrap:nowrap}.sample-notice__pin{margin:0 0 0 -7px;top:-7px;left:50%}.sample-notice__text{flex:auto}.sample-notice__more{display:none}.sample-notice:has(.sample-notice__ask){padding:var(--space-4) var(--space-3) var(--space-3);flex-wrap:wrap}.sample-notice__ask .sample-notice__more{display:inline}.sample-notice__ask .sample-notice__actions,.sample-notice__ask .sample-notice__actions .button{flex:auto}}.empty-state{justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5) var(--space-7);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-md);text-align:center;display:grid;position:relative}.empty-state__pin{margin-left:-7px;top:-6px;left:50%}.empty-state__mark{gap:var(--space-1);width:5.5rem;margin-bottom:var(--space-2);display:grid}.empty-state__mark span{border-left:3px solid var(--person-1);background:var(--person-1-soft);border-radius:3px;width:60%;height:.625rem}.empty-state__mark span:nth-child(2){border-left-color:var(--person-2);background:var(--person-2-soft);width:75%;margin-left:25%}.empty-state__mark span:nth-child(3){border-left-color:var(--person-3);background:var(--person-3-soft);width:45%;margin-left:10%}.empty-state__title{font-size:var(--text-2xl)}.empty-state__text{max-width:36ch;color:var(--color-text-muted)}.empty-state__action{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}@keyframes shift-dialog-fade{0%{opacity:0}}@keyframes shift-dialog-rise{0%{opacity:0;transform:translateY(12px)rotate(-1deg)}}.shift-dialog__backdrop{z-index:50;padding:var(--space-4);background:var(--color-backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:shift-dialog-fade var(--duration-base) var(--ease-out);place-items:center;display:grid;position:fixed;inset:0}.shift-dialog{width:min(30rem,100%);max-height:100%;padding:var(--space-6) var(--space-5) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);animation:shift-dialog-rise var(--duration-base) var(--ease-out);position:relative;overflow:auto}.shift-dialog__pin{top:var(--space-3);margin-left:-7px;left:50%}.shift-dialog h2{margin-bottom:var(--space-4);font-size:var(--text-2xl)}.shift-dialog form{gap:var(--space-3) var(--space-4);grid-template-columns:1fr 1fr;display:grid}.shift-dialog form>*{grid-column:1/-1}.shift-dialog form>.shift-dialog__field{grid-column:auto}.shift-dialog__field{align-content:start;gap:var(--space-1);min-width:0;font-size:var(--text-sm);font-weight:var(--weight-medium);display:grid}.shift-dialog__field input,.shift-dialog__field select{min-width:0;font-size:var(--text-md);font-weight:var(--weight-regular)}.shift-dialog .field-error{color:var(--color-danger);font-size:var(--text-sm);font-weight:var(--weight-regular)}.shift-dialog__summary{min-height:1.5em;margin-top:calc(var(--space-1) * -1);color:var(--color-accent);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}.shift-dialog__actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.shift-dialog__delete{margin-right:auto}.shift-dialog__confirm{gap:var(--space-3);padding:var(--space-4);border-left:3px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);font-weight:var(--weight-medium);display:grid}.shift-dialog__confirm .shift-dialog__actions{border:0;margin:0;padding:0}@media (width<=34rem){.shift-dialog__backdrop{place-items:end center;padding:0}.shift-dialog{width:100%;max-height:94dvh;padding:var(--space-6) var(--space-4) var(--space-4);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-width:1px 0 0}.shift-dialog__actions .button{flex:auto}.shift-dialog__delete{margin-right:0;flex:100%!important}}.week-issues{justify-items:start;gap:var(--space-2);display:grid}.week-issues__toggle.button{gap:var(--space-2);border-color:var(--color-warning-border);background:var(--color-warning-soft);color:var(--color-warning);font-weight:var(--weight-bold)}.week-issues__toggle.button:hover{border-color:var(--color-warning)}.week-issues__clear{min-height:var(--target-min);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--color-success-soft);color:var(--color-success);font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:pre;align-items:center;display:inline-flex}.week-issues__chevron{transition:transform var(--duration-base) var(--ease-out)}.week-issues__toggle[aria-expanded=true] .week-issues__chevron{transform:rotate(180deg)}.week-issues__list{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-text);font-size:var(--text-sm);margin:0;list-style:none;display:grid}.week-issues__list[hidden]{display:none}.week-issues__list li:before{content:"⚠ " / "";color:var(--color-warning)}.print-rota{display:none}@media print{@page{size:A4 landscape;margin:7mm}body :not(:has(.print-rota)):not(.print-rota):not(.print-rota *){display:none!important}:is(body,body :has(.print-rota)){box-shadow:none!important;background:#fff!important;border:0!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;animation:none!important;display:block!important;position:static!important;overflow:visible!important}.print-rota{color:#000;background:#fff;width:100%;font-family:Inter,Arial,Helvetica,sans-serif;display:block}.print-rota *{color:#000!important;background:#fff!important}.print-rota__title{letter-spacing:-.02em;margin:0 0 3mm;font-family:Fraunces,Georgia,Times New Roman,serif;font-size:20pt;font-weight:600;line-height:1.1}.print-rota__table{table-layout:fixed;border-collapse:collapse;page-break-inside:avoid;break-inside:avoid;width:100%;line-height:1.15}.print-rota__table th,.print-rota__table td{vertical-align:top;text-align:left;border:.5pt solid #000;padding:1.2mm 1.6mm;overflow:hidden}.print-rota__table thead th{white-space:nowrap;border-bottom-width:1.25pt;font-size:8.5pt;font-weight:700}.print-rota__table tbody th{font-weight:700}.print-rota__table tr{break-inside:avoid}.print-rota__name{white-space:nowrap;text-overflow:ellipsis;width:36mm}.print-rota__hours{font-variant-numeric:tabular-nums;white-space:nowrap;width:20mm;font-weight:700;text-align:right!important}.print-rota__table ul{margin:0;padding:0;list-style:none}.print-rota__table li{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;overflow:hidden}.print-rota__times{font-weight:600}.print-rota--roomy .print-rota__table{font-size:10pt}.print-rota--roomy tbody tr{height:15mm}.print-rota--roomy tbody th{font-size:12pt}.print-rota--roomy li+li{margin-top:.6mm}.print-rota--roomy .print-rota__label{text-overflow:ellipsis;font-size:8pt;display:block;overflow:hidden}.print-rota--regular .print-rota__table{font-size:7.5pt}.print-rota--regular tbody tr{height:10mm}.print-rota--regular .print-rota__table td,.print-rota--regular .print-rota__table tbody th{padding:.6mm 1.2mm}.print-rota--regular tbody th{font-size:9pt}.print-rota--dense .print-rota__title{margin-bottom:1.5mm;font-size:13pt}.print-rota--dense .print-rota__table{font-size:5pt;line-height:1.05}.print-rota--dense .print-rota__table th,.print-rota--dense .print-rota__table td{border-width:.25pt}.print-rota--dense .print-rota__table thead th{padding:.6mm .8mm;font-size:6.5pt}.print-rota--dense tbody tr{height:5.7mm}.print-rota--dense .print-rota__table td,.print-rota--dense .print-rota__table tbody th{padding:.15mm .8mm}.print-rota--dense tbody th{font-size:6pt}.print-rota--dense .print-rota__name{width:34mm}.print-rota--dense .print-rota__hours{width:13mm}}.pending-notes{align-items:flex-start;gap:var(--space-4);padding:0 var(--space-2);flex-wrap:wrap;margin:0;list-style:none;display:flex}.pending-note{justify-content:space-between;align-items:center;gap:0 var(--space-5);max-width:min(100%,56rem);padding:var(--space-3) var(--space-4) 0;background:var(--color-note);color:var(--color-note-text);box-shadow:var(--shadow-paper);transition:transform var(--duration-base) var(--ease-out);flex-wrap:wrap;display:flex;position:relative;transform:rotate(-1.2deg)}.pending-note:nth-child(2n){transform:rotate(1deg)}.pending-note:hover,.pending-note:focus-within{transform:rotate(0)translateY(-2px)}.pending-note__pin{margin-left:-7px;top:-5px;left:50%}.pending-note__body{align-items:baseline;gap:2px var(--space-3);min-width:0;padding:var(--space-1) 0;flex-wrap:wrap;display:flex}.pending-note__quote{font-family:var(--font-display);font-size:var(--text-lg);overflow-wrap:anywhere;font-style:italic;font-weight:500;line-height:1.25}.pending-note__who{font-size:var(--text-sm);overflow-wrap:anywhere}.pending-note__link{min-height:var(--target-min);white-space:nowrap;color:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);text-underline-offset:3px;align-items:center;display:inline-flex}.pending-notes__more{padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-md);align-self:center}.board-screen{gap:var(--space-4);min-width:0}.board-screen>.screen__header{display:contents}.board-bar{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.board-bar__week,.board-bar__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.board-bar__step.button{width:var(--target-min);padding:0}.board-bar__range{min-width:8.25em;padding:0 var(--space-1);font-size:var(--text-2xl);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}.board-bar .week-issues{display:contents}.board-bar .week-issues__toggle,.board-bar .week-issues__clear{margin-right:auto}.board-bar .week-issues__list{flex-basis:100%;order:5}.board-cork{gap:var(--space-4);min-width:0;padding:clamp(var(--space-3), 2vw, var(--space-5));padding-top:clamp(var(--space-4), 2.4vw, var(--space-6));border-radius:var(--radius-lg);display:grid}.board-hint{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);box-shadow:var(--shadow-md);justify-self:start}.board-sheet{border-radius:var(--radius-sm);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-paper);position:relative}.board-sheet__pin-left{top:-6px;left:14px}.board-sheet__pin-right{top:-6px;right:14px}.board-scroll{overscroll-behavior-x:contain;border-radius:inherit;position:relative;overflow-x:auto}.board-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:64.5rem;font-size:var(--text-sm)}.board-grid th,.board-grid td{border-bottom:1px solid var(--color-border);vertical-align:top;text-align:left;padding:.375rem}.board-grid td{height:1px}.board-grid td+td,.board-grid th+td,.board-grid thead th+th{border-left:1px solid var(--color-border)}.board-grid tbody tr:last-child>*{border-bottom:0}.board-grid thead th{padding:var(--space-5) var(--space-3) var(--space-3);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;white-space:nowrap}.board-grid thead th.is-today{color:var(--color-accent);box-shadow:inset 0 -2px 0 var(--color-accent)}.board-grid td.is-today{background:color-mix(in srgb, var(--color-accent-soft) 38%, transparent)}.board-grid__name{z-index:1;background:var(--color-surface);width:7.5rem;min-width:7.5rem;max-width:7.5rem;box-shadow:1px 0 0 var(--color-border);position:sticky;left:0}.board-grid tbody .board-grid__name{padding:var(--space-4) var(--space-3);border-left:3px solid var(--chip);font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em;font-weight:600}.board-grid__person{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.board-grid__hours{width:8.5rem}.board-grid td:not(.board-total){min-width:6.95rem}.board-cell{gap:var(--space-1);margin:0 0 var(--space-1);padding:0;list-style:none;display:grid}.board-cell:empty{display:none}.chip{border-left:3px solid var(--chip);border-radius:var(--radius-sm);background:var(--chip-soft);color:var(--color-text);transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);overflow:hidden}.chip:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.chip:has(.chip-button:active){box-shadow:none;transform:translateY(0)}.chip:has(.chip-button:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.chip-button{all:unset;box-sizing:border-box;width:100%;min-height:var(--target-min);padding:var(--space-1) var(--space-2);cursor:pointer;flex-direction:column;justify-content:center;line-height:1.3;display:flex}.chip-times{font-variant-numeric:tabular-nums;font-weight:var(--weight-bold);white-space:nowrap}.chip-label{color:var(--color-text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip-flag,.chip-asked{font-size:var(--text-xs);font-weight:var(--weight-medium);margin-top:2px}.chip-flag{color:var(--color-warning)}.chip-asked{padding:0 var(--space-1);background:var(--color-note);color:var(--color-note-text);border-radius:3px;align-self:flex-start}.chip-more{padding-left:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs)}.board-add{all:unset;box-sizing:border-box;width:100%;min-width:var(--target-min);min-height:var(--target-min);border-radius:var(--radius-sm);color:color-mix(in srgb, var(--color-text-muted) 55%, transparent);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px dashed #0000;place-items:center;display:grid}.board-cell:empty+.board-add{border-color:var(--color-border)}.board-add:hover,.board-add:focus-visible{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.board-add:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.board-total{font-variant-numeric:tabular-nums;white-space:nowrap;padding:var(--space-4) var(--space-3)!important}.board-total__sum{color:var(--color-text-muted);display:block}.board-total__sum strong{color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-bold)}.board-total__over{color:var(--color-danger);font-size:var(--text-xs);font-weight:var(--weight-bold);margin-top:2px;display:block}.board-total__over:before{content:"▲ " / "";font-size:.8em}.board-total__sum.is-over strong{color:var(--color-danger)}.bar{height:5px;margin-top:var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-sunken);display:block;overflow:hidden}.bar>span{border-radius:inherit;background:var(--color-accent);height:100%;transition:width var(--duration-base) var(--ease-out);display:block}.is-over+.bar>span{background:var(--color-danger)}@media (width<=48rem){.board-bar__week{display:contents}.board-bar__range{min-width:0;font-size:var(--text-xl);flex:1 0 auto}.board-bar .week-issues__toggle,.board-bar .week-issues__clear{margin-right:0}.board-bar__actions{width:100%}.board-bar__actions .button{flex:auto}.board-cork{margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-2);border-radius:0}.board-grid__name{width:5.25rem;min-width:5.25rem;max-width:5.25rem}.board-grid tbody .board-grid__name{padding-inline:var(--space-2);font-size:var(--text-md)}.board-grid{min-width:62rem}}.staff-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=62rem){.staff-layout{column-gap:var(--space-7);grid-template-columns:minmax(0,1.35fr) minmax(20rem,1fr)}.staff-add{position:sticky;top:5.5rem}}.staff-list{margin:0;padding:0;list-style:none;overflow:hidden}.staff-row{align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);border-left:4px solid var(--chip);transition:background-color var(--duration-fast) var(--ease-out);flex-wrap:wrap;display:flex}.staff-row+.staff-row{border-top:1px solid var(--color-border)}.staff-row:hover{background:color-mix(in srgb, var(--color-surface-sunken) 45%, transparent)}.staff-row:has(.delete-confirm){background:var(--color-danger-soft)}.staff-row__text{flex:9rem;min-width:0;display:grid}.staff-row__name{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.2;overflow:hidden}.staff-row__limit{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.staff-week{justify-content:space-between;gap:2px var(--space-3);min-width:8rem;font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:0 10rem;grid-template-columns:auto auto;display:grid}.staff-week__label{color:var(--color-text-muted)}.staff-week__hours{font-weight:var(--weight-bold)}.staff-week.is-over .staff-week__hours{color:var(--color-danger)}.staff-week__bar{border-radius:var(--radius-pill);background:var(--color-surface-sunken);grid-column:1/-1;height:5px;display:block;overflow:hidden}.staff-week__bar>span{border-radius:inherit;background:var(--color-accent);height:100%;display:block}.staff-week.is-over .staff-week__bar>span{background:var(--color-danger)}.staff-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.staff-form{gap:var(--space-4);width:100%;display:grid}.staff-add{padding:var(--space-5)}.staff-add__title{font-size:var(--text-2xl)}.staff-fields{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));display:grid}.staff-field{align-content:start;gap:var(--space-1);min-width:0;display:grid}.staff-error{color:var(--color-danger);font-size:var(--text-sm)}.staff-note{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.delete-confirm{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;font-weight:var(--weight-medium);flex-wrap:wrap;display:flex}@media (width<=30rem){.staff-row{padding-left:var(--space-4)}.staff-week{flex:100%;order:3}.staff-add .staff-actions .button{flex:auto}}.swaps-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=62rem){.swaps-layout{column-gap:var(--space-7);grid-template-columns:minmax(0,1.35fr) minmax(20rem,1fr)}.swaps-waiting,.swaps-decided{grid-column:1}.swap-form{grid-area:1/2/span 2;position:sticky;top:5.5rem}}.swaps-waiting,.swaps-decided{gap:var(--space-4);min-width:0;display:grid}.swaps-heading{font-size:var(--text-2xl)}.swaps-none{padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);background:var(--color-success-soft);color:var(--color-success);font-size:var(--text-sm);font-weight:var(--weight-bold);justify-self:start}.swap-list{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.swap-card{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);display:grid}.swap-card--pending{border-top:4px solid var(--color-note-edge);box-shadow:var(--shadow-lg)}.swap-card__top{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.swap-card__kind{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.swap-card__when{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin-left:auto}.swap-card__text{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow-wrap:anywhere;font-weight:600;line-height:1.25}.swap-card__note{padding-left:var(--space-3);border-left:3px solid var(--color-border-strong);color:var(--color-text-muted);font-family:var(--font-display);overflow-wrap:anywhere;font-style:italic;font-weight:500}.swap-card__note:before{content:"“" / ""}.swap-card__note:after{content:"”" / ""}.swap-card__reason{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--text-sm);font-weight:var(--weight-medium)}.swap-card__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.swap-card__withdraw{margin-left:auto}.swap-list--decided{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);gap:0}.swap-list--decided .swap-card{gap:var(--space-2);padding:var(--space-4) var(--space-5);box-shadow:none;background:0 0;border:0;border-radius:0}.swap-list--decided .swap-card+.swap-card{border-top:1px solid var(--color-border)}.swap-list--decided .swap-card__text{font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-medium);letter-spacing:0}.swap-list--decided .swap-card__note{font-size:var(--text-sm)}.swap-badge{align-items:center;gap:var(--space-2);padding:2px var(--space-3) 2px var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);display:inline-flex}.swap-badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.swap-badge--pending{border-color:var(--color-warning-border);background:var(--color-warning-soft);color:var(--color-warning)}.swap-badge--approved{border-color:color-mix(in srgb, var(--color-success) 40%, transparent);background:var(--color-success-soft);color:var(--color-success)}.swap-badge--declined{border-color:color-mix(in srgb, var(--color-danger) 40%, transparent);background:var(--color-danger-soft);color:var(--color-danger)}.swap-preview{gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-sunken);display:grid}.swap-preview__table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.swap-preview__table caption{padding-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);text-align:left}.swap-preview__table th,.swap-preview__table td{padding:var(--space-2) var(--space-2) var(--space-2) 0;text-align:left}.swap-preview__table thead th{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.swap-preview__table tbody tr{border-top:1px solid var(--color-border-strong)}.swap-preview__table tbody th{font-weight:var(--weight-bold)}.swap-preview__week{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-regular);display:block}.swap-preview__after{font-weight:var(--weight-bold)}.swap-preview__hours.is-over{color:var(--color-danger)}.swap-preview__ok{color:var(--color-success);font-size:var(--text-sm);font-weight:var(--weight-bold)}.swap-preview__issues{gap:var(--space-1);color:var(--color-warning);font-size:var(--text-sm);font-weight:var(--weight-medium);margin:0;padding:0;list-style:none;display:grid}.swap-form{gap:var(--space-4);padding:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));display:grid}.swap-form__head,.swap-kind,.swap-form>.button{grid-column:1/-1}.swap-form>.swap-field:has(input[type=text]){grid-column:1/-1}.swap-form__head{gap:var(--space-1);display:grid}.swap-form__head h2{font-size:var(--text-2xl)}.swap-form__head p{color:var(--color-text-muted);font-size:var(--text-sm)}.swap-field{align-content:start;gap:var(--space-1);border:0;min-width:0;margin:0;padding:0;display:grid}.swap-kind{gap:var(--space-2);flex-wrap:wrap;display:flex}.swap-kind legend{margin-bottom:var(--space-1);padding:0}.swap-kind label{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4) 0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);display:inline-flex}.swap-kind label:hover{background:var(--color-surface-sunken)}.swap-kind label:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}.swap-kind label:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.swap-kind input{width:20px;height:20px;margin:0}.swap-kind input:focus-visible{outline:none}.swap-kind .swap-error{flex-basis:100%}.swap-error{color:var(--color-danger);font-size:var(--text-sm)}.swap-count{color:var(--color-text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-self:end}.swap-form>.button{justify-self:start}@media (width<=30rem){.swap-card{padding:var(--space-4)}.swap-card__actions .button{flex:auto}.swap-card__withdraw{margin-left:0}.swap-form>.button{justify-self:stretch}}.settings-layout{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:start;display:grid}.settings-screen__section{gap:var(--space-4);padding:var(--space-5);display:grid}.settings-screen__section h2{font-size:var(--text-2xl)}.settings-screen__section h3{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.settings-screen__intro{max-width:46ch;color:var(--color-text-muted)}.settings-form{justify-items:start;gap:var(--space-4);display:grid}.settings-field{gap:var(--space-1);width:min(100%,16rem);display:grid}.settings-error{color:var(--color-danger);font-size:var(--text-sm)}.settings-screen__hint{color:var(--color-text-muted);font-size:var(--text-sm)}.settings-screen__alert{padding:var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-text);border-left-width:4px}.settings-screen__backup-controls{gap:var(--space-4);display:grid}.settings-screen__backup-export,.settings-screen__backup-import{justify-items:start;gap:var(--space-2);display:grid}.settings-screen__backup-import{padding-top:var(--space-4);border-top:1px solid var(--color-border)}.settings-screen__backup-input{width:100%;padding:var(--space-2);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken)}.settings-screen__confirm,.settings-screen__errors{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);border-left-width:4px;display:grid}.settings-screen__section .settings-screen__confirm h3,.settings-screen__section .settings-screen__errors h3{color:var(--color-text);font-size:var(--text-md);letter-spacing:0;text-transform:none}.settings-screen__section .settings-screen__errors h3{color:var(--color-danger)}.settings-screen__backup-summary{font-weight:var(--weight-regular)}.settings-screen__backup-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.settings-screen__errors ul{gap:var(--space-1);padding-left:var(--space-5);margin:0;display:grid}.shell{min-height:100dvh}.shell__skip{left:var(--space-3);z-index:10;min-height:var(--target-min);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);font-weight:var(--weight-medium);align-items:center;display:inline-flex;position:absolute;top:-100px}.shell__skip:focus{top:var(--space-2)}.shell__header{z-index:5;border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(10px);backdrop-filter:saturate(1.2)blur(10px);position:sticky;top:0}.shell__bar{justify-content:space-between;align-items:center;gap:0 var(--space-4);max-width:var(--content-max);padding:var(--space-2) clamp(var(--space-4), 3vw, var(--space-6));flex-wrap:wrap;margin:0 auto;display:flex}.shell__brand{align-items:center;gap:var(--space-2);min-height:var(--target-min);color:var(--color-text);text-decoration:none;display:inline-flex}.shell__name{font-family:var(--font-display);font-size:var(--text-xl);font-variation-settings:"SOFT" 50, "opsz" 48;letter-spacing:-.02em;font-weight:600;line-height:1}.shell__brand .logo{transition:transform var(--duration-base) var(--ease-out)}.shell__brand:hover .logo{transform:rotate(-6deg)}.shell__nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.shell__link{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--target-min);min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:color var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex;position:relative}.shell__link:before{content:"";left:var(--space-3);right:var(--space-3);border-radius:var(--radius-pill);background:var(--color-accent);height:2px;transition:transform var(--duration-base) var(--ease-out);position:absolute;bottom:7px;transform:scaleX(0)}.shell__link:hover{color:var(--color-text)}.shell__link:hover:before{transform:scaleX(.5)}.shell__link[aria-current=page]{color:var(--color-text)}.shell__link[aria-current=page]:before{transform:scaleX(1)}.shell__link[data-count]:after{content:attr(data-count);border-radius:var(--radius-sm);background:var(--color-note);min-width:1.25rem;height:1.25rem;color:var(--color-note-text);font-size:var(--text-xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;place-items:center;padding:0 .3rem;line-height:1;display:inline-grid;transform:rotate(4deg);box-shadow:0 1px 1px #3c2d1e40}.shell__main{max-width:var(--content-max);padding:var(--space-5) clamp(var(--space-4), 3vw, var(--space-6)) var(--space-8);margin:0 auto}@media (width<=34rem){.shell__header{position:static}.shell__bar{padding-bottom:0}.shell__nav{width:calc(100% + var(--space-4));margin-inline:calc(var(--space-2) * -1)}.shell__nav li{flex:1}.shell__link{width:100%;padding:0 var(--space-1)}.shell__link:before{left:var(--space-2);right:var(--space-2);bottom:0}.shell__main{padding-top:var(--space-5)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-sans:"Inter", "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-display:"Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-display:clamp(2rem, 1.6rem + 1.6vw, 2.75rem);--leading-tight:1.15;--leading-normal:1.5;--weight-regular:400;--weight-medium:550;--weight-bold:650;--tracking-tight:-.025em;--tracking-caps:.08em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--content-max:78rem;--content-narrow:44rem;--target-min:44px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--color-bg:#f6f1e8;--color-surface:#fffdf9;--color-surface-sunken:#ece5d9;--color-text:#22201c;--color-text-muted:#675e54;--color-border:#e0d8cb;--color-border-strong:#c9bfb0;--color-accent:#2c6a62;--color-accent-hover:#22554e;--color-accent-soft:#dcebe7;--color-on-accent:#fff;--color-focus:#2c6a62;--color-warning:#8a4b00;--color-warning-soft:#fcecd3;--color-warning-border:#e7b56a;--color-danger:#a3302a;--color-danger-soft:#f8e1de;--color-on-danger:#fff;--color-success:#2f6b3a;--color-success-soft:#dff0e0;--color-cork:#c49a6c;--color-cork-deep:#a87c4f;--color-note:#fbe58a;--color-note-edge:#e9cf5f;--color-note-text:#2e2a17;--color-pin:#2c6a62;--color-backdrop:#221c1480;--person-1:#3d5fc4;--person-1-soft:#e3e9fa;--person-2:#1f8a6e;--person-2-soft:#dbf1ea;--person-3:#c0437a;--person-3-soft:#f9e1ec;--person-4:#6b7a1f;--person-4-soft:#ecf0d6;--person-5:#7a4fc7;--person-5-soft:#ece4fa;--person-6:#0f7fa8;--person-6-soft:#dcf0f8;--person-7:#b4552a;--person-7-soft:#f9e5da;--person-8:#8a5a7a;--person-8-soft:#f1e4ed;--shadow-sm:0 1px 2px #3c2d1e12;--shadow-md:0 1px 1px #3c2d1e0f, 0 6px 16px #3c2d1e14;--shadow-lg:0 1px 1px #3c2d1e0f, 0 8px 20px #3c2d1e1a, 0 24px 48px #3c2d1e24;--shadow-paper:0 1px 1px #3c2d1e1a, 0 6px 14px #3c2d1e29, 0 18px 36px #3c2d1e1f;--shadow-inset:inset 0 2px 8px #0000002e;--duration-fast:.12s;--duration-base:.22s;--ease-out:cubic-bezier(.2, .7, .3, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#181614;--color-surface:#221f1c;--color-surface-sunken:#1c1a17;--color-text:#eee8e1;--color-text-muted:#a99f94;--color-border:#37322d;--color-border-strong:#4d463f;--color-accent:#6cc2b5;--color-accent-hover:#8ad3c8;--color-accent-soft:#1f3833;--color-on-accent:#10201d;--color-focus:#8ad3c8;--color-warning:#f2b860;--color-warning-soft:#3a2a12;--color-warning-border:#8a6326;--color-danger:#f08a80;--color-danger-soft:#3d1f1c;--color-on-danger:#2a100d;--color-success:#86cf94;--color-success-soft:#1c3322;--color-cork:#5a4632;--color-cork-deep:#46362a;--color-note:#4a4220;--color-note-edge:#6b5f2c;--color-note-text:#f3ecc9;--color-pin:#6cc2b5;--color-backdrop:#0009;--person-1:#8aa4f0;--person-1-soft:#232b45;--person-2:#5fcfaf;--person-2-soft:#17352d;--person-3:#ec89b4;--person-3-soft:#3f2130;--person-4:#bccb6a;--person-4-soft:#2e3317;--person-5:#b398f0;--person-5-soft:#2f2645;--person-6:#62c1e6;--person-6-soft:#15323e;--person-7:#f0a074;--person-7-soft:#3e2618;--person-8:#d3a3c4;--person-8-soft:#362532;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 6px #0000004d, 0 8px 24px #00000040;--shadow-lg:0 12px 40px #00000080;--shadow-paper:0 1px 1px #0000004d, 0 8px 24px #00000059;--shadow-inset:inset 0 2px 8px #0006}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s}*,: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%}body{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{line-height:var(--leading-tight);margin:0}h1,h2{font-family:var(--font-display);font-variation-settings:"SOFT" 50, "opsz" 96;letter-spacing:var(--tracking-tight);font-weight:600}h1{font-size:var(--text-display)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-md);font-weight:var(--weight-bold)}h1:focus,h2:focus,h3:focus{outline:none}p{margin:0}a{color:var(--color-accent)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--color-accent-soft)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--target-min);min-height:var(--target-min);padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);line-height:1.2;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--color-text-muted);background:var(--color-surface-sunken)}.button:active:not([aria-disabled=true]){transform:translateY(1px)scale(.98)}.button--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.button--primary:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover)}.button--outline{background:0 0}.button--danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-danger)}.button--danger:hover{border-color:color-mix(in srgb, var(--color-danger) 85%, var(--color-text));background:color-mix(in srgb, var(--color-danger) 85%, var(--color-text))}.button--quiet-danger{color:var(--color-danger);background:0 0;border-color:#0000}.button--quiet-danger:hover{border-color:var(--color-danger);background:var(--color-danger-soft)}.button[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.button[aria-disabled=true]:hover{border-color:var(--color-border-strong);background:var(--color-surface)}.button--outline[aria-disabled=true]:hover{background:0 0}input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea{width:100%;min-height:var(--target-min);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-variant-numeric:tabular-nums;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}select{appearance:none;padding-right:var(--space-7);background-image:linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);background-position:calc(100% - 1.125rem),calc(100% - .8125rem);background-repeat:no-repeat;background-size:.3125rem .3125rem,.3125rem .3125rem}input:not([type=radio]):not([type=checkbox]):not([type=file]):hover,select:hover,textarea:hover{border-color:var(--color-text-muted)}input:not([type=radio]):not([type=checkbox]):not([type=file]):focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 30%, transparent);outline:none}[aria-invalid=true]{border-color:var(--color-danger)!important}input[type=radio],input[type=checkbox]{accent-color:var(--color-accent)}input[type=file]{max-width:100%;font-size:var(--text-sm)}input[type=file]::file-selector-button{min-height:var(--target-min);margin-right:var(--space-3);padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}input[type=file]::file-selector-button:hover{background:var(--color-surface-sunken)}label,legend{font-size:var(--text-sm);font-weight:var(--weight-medium)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}}.screen{gap:var(--space-5);min-width:0;animation:screen-in var(--duration-base) var(--ease-out);display:grid}.screen__header{gap:var(--space-1);display:grid}.screen__lead{max-width:52ch;color:var(--color-text-muted)}.paper{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.cork{background-color:var(--color-cork);background-image:radial-gradient(circle at 2px 3px, color-mix(in srgb, var(--color-cork-deep) 40%, transparent) 1px, transparent 1.6px), radial-gradient(circle at 7px 6px, color-mix(in srgb, var(--color-cork-deep) 32%, transparent) 1.5px, transparent 2.1px), repeating-linear-gradient(37deg, color-mix(in srgb, var(--color-cork-deep) 25%, transparent) 0 1px, transparent 1px 5px);box-shadow:var(--shadow-inset);background-size:7px 7px,11px 11px,auto}.pin{z-index:3;background:radial-gradient(circle at 36% 34%, #ffffffa6 0 14%, transparent 16%), var(--color-pin);pointer-events:none;border-radius:50%;width:14px;height:14px;position:absolute;box-shadow:0 2px 3px #281c1066}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}
