:root{--font-display:"Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, sans-serif;--fs-hero:1.5rem;--fs-title:1.125rem;--fs-body:.9375rem;--fs-meta:.8125rem;--fs-label:.6875rem;--lh-tight:1.2;--lh-normal:1.45;--lh-loose:1.6;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--ink-1:#1c1917;--ink-2:#44403c;--ink-3:#78716c;--ink-inverse:#fff;--line:#1c191714;--surface-1:#fcfcfb;--surface-2:#f5f5f4;--surface-3:#efedec;--accent:#b85c38;--accent-soft:#b85c381f;--accent-contrast:#fff;--warn:#d97706;--success:#16a34a;--r-sm:8px;--r-md:12px;--r-lg:16px;--elevation-0:none;--elevation-1:0 1px 0 var(--line);--elevation-2:0 1px 3px #0000000a, 0 0 0 1px var(--line);--ease-out:cubic-bezier(.22, 1, .36, 1);--duration-fast:.14s;--duration-normal:.22s;--duration-slow:.36s}:root[data-theme=dark]{--ink-1:#fafaf9;--ink-2:#d6d3d1;--ink-3:#a8a29e;--line:#fafaf914;--surface-1:#292524;--surface-2:#1c1917;--surface-3:#353230;--accent:#cd7350;--accent-soft:#cd735033;--accent-contrast:#2a1710;--warn:#f59e0b;--success:#22c55e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink-1:#fafaf9;--ink-2:#d6d3d1;--ink-3:#a8a29e;--line:#fafaf914;--surface-1:#292524;--surface-2:#1c1917;--surface-3:#353230;--accent:#cd7350;--accent-soft:#cd735033;--accent-contrast:#2a1710;--warn:#f59e0b;--success:#22c55e}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700}.eyebrow{font-size:var(--fs-label);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0 0 var(--space-1)}.section-header{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.section-header__title{font-size:var(--fs-hero);font-weight:var(--fw-semibold);color:var(--ink-1);line-height:var(--lh-tight);margin:0}.section-header__meta{font-size:var(--fs-meta);color:var(--ink-3);margin:0}.card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--space-4)}.card--hero{border-radius:var(--r-lg);padding:var(--space-5);box-shadow:var(--elevation-2);border:none}.list-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);display:flex}.list-row:last-child{border-bottom:none}.list-row__lead{flex:none}.list-row__body{flex:auto;min-width:0}.list-row__trail{color:var(--ink-3);font-size:var(--fs-meta);flex:none}.stat-chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--r-sm);background:var(--surface-3);font-size:var(--fs-meta);font-weight:var(--fw-medium);color:var(--ink-2);display:inline-flex}.stat-chip--warn{color:var(--warn)}.stat-chip--success{color:var(--success)}.dot{background:var(--dot-color,var(--ink-3));border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.progress{background:var(--surface-3);border-radius:var(--r-sm);width:100%;height:4px;overflow:hidden}.progress__fill{background:var(--accent);height:100%;transition:width var(--duration-normal) var(--ease-out)}.hairline{border-top:1px solid var(--line)}.plan-hybrid{gap:var(--space-5);flex-direction:column;display:flex}.plan-hero{gap:var(--space-3);flex-direction:column;display:flex}.plan-hero__task{font-size:var(--fs-hero);font-weight:var(--fw-semibold);color:var(--ink-1);line-height:var(--lh-tight);margin:0}.plan-hero__meta{font-size:var(--fs-meta);color:var(--ink-3);margin:0}.plan-hero__checklist{margin-top:var(--space-2)}.plan-hero__checklist>summary{cursor:pointer;color:var(--accent);font-size:var(--fs-meta);font-weight:var(--fw-medium)}.plan-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin:0;padding:0;list-style:none;display:grid}.plan-grid__item{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);display:flex}.plan-grid__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.plan-grid__name{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--ink-1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.plan-grid__task{font-size:var(--fs-meta);color:var(--ink-2)}.plan-grid__status{font-size:var(--fs-meta);color:var(--ink-2);margin-top:var(--space-1)}.plan-grid__item[data-status=done] .plan-grid__status{color:var(--ink-3)}.plan-grid__item[data-status=done] .plan-grid__status:before{content:"✓  ";color:var(--success);font-weight:var(--fw-semibold)}.plan-grid__item[data-status=overdue] .plan-grid__status{color:var(--warn);font-weight:var(--fw-medium)}.plan-grid__item[data-status=overdue] .plan-grid__status:before{content:"! ";font-weight:var(--fw-semibold)}.plan-grid__item[data-status=absent]{opacity:.55}.plan-grid__item[data-status=absent] .plan-grid__status{color:var(--ink-3)}@media (max-width:480px){.plan-grid{grid-template-columns:1fr}}.history-list{flex-direction:column;display:flex}.history-row{border-bottom:1px solid var(--line);padding:var(--space-3) 0}.history-row:last-child{border-bottom:none}.history-row>summary{cursor:pointer;justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-1) 0;list-style:none;display:flex}.history-row>summary::-webkit-details-marker{display:none}.history-row__label{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--ink-1)}.history-row__meta{font-size:var(--fs-meta);color:var(--ink-3)}.history-row__counts{gap:var(--space-2);font-size:var(--fs-meta);color:var(--ink-3);display:inline-flex}.history-row__body{padding:var(--space-3) 0 var(--space-3) var(--space-5);border-left:2px solid var(--line);margin-top:var(--space-2);gap:var(--space-4);flex-direction:column;display:flex}.history-section{gap:var(--space-2);flex-direction:column;display:flex}.history-section__title{font-size:var(--fs-label);font-weight:var(--fw-semibold);color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-1)}.history-assignment,.history-penalty{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px dashed var(--line);display:flex}.history-assignment:last-child,.history-penalty:last-child{border-bottom:none}.history-assignment__resident{font-size:var(--fs-meta);font-weight:var(--fw-semibold);color:var(--ink-1);margin:0}.history-assignment__task{font-size:var(--fs-meta);color:var(--ink-2);margin:0}.history-assignment__meta{font-size:var(--fs-label);color:var(--ink-3);margin:0}.rotation-preview__scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.rotation-preview__grid{grid-template-columns:140px repeat(var(--rotation-week-count,4), minmax(110px, 1fr));border-top:1px solid var(--line);gap:0;min-width:max-content;display:grid}.rotation-preview__head,.rotation-preview__name,.rotation-preview__cell{padding:var(--space-3);border-bottom:1px solid var(--line);font-size:var(--fs-meta)}.rotation-preview__head{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:var(--fw-semibold)}.rotation-preview__name{align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);color:var(--ink-1);display:inline-flex}.rotation-preview__cell{color:var(--ink-2)}.rotation-preview__row--me .rotation-preview__name,.rotation-preview__row--me .rotation-preview__cell{background:var(--accent-soft)}.rotation-calendar{padding:var(--space-2) 0;-webkit-overflow-scrolling:touch;flex-direction:row;gap:0;display:flex;overflow-x:auto}@media (min-width:900px){.rotation-calendar{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:2px;display:grid;overflow-x:visible}.rotation-calendar__week{border-right:1px solid var(--line)}.rotation-calendar__week:nth-child(5n),.rotation-calendar__week:last-child{border-right:none}}.rotation-calendar__week{padding:var(--space-2) var(--space-4);border-right:1px solid var(--line);color:var(--ink-2);font-size:var(--fs-meta);white-space:nowrap;flex-direction:column;flex:none;gap:2px;display:flex}.rotation-calendar__week:last-child{border-right:none}.rotation-calendar__week-label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:var(--fw-medium)}.rotation-calendar__week-task{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--ink-2)}.rotation-calendar__week--current .rotation-calendar__week-task{color:var(--ink-1)}.rotation-calendar__week--current .rotation-calendar__week-label{color:var(--accent)}.rotation-calendar__week--past{opacity:.55}.plan-grid__item{position:relative}.presence-dot{background:var(--ink-3);border:2px solid var(--surface-1);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.presence-dot--online{background:var(--success)}.presence-dot--overlay{position:absolute;bottom:-2px;right:-2px}.profil-hero{gap:var(--space-4);grid-template-columns:auto 1fr;align-items:flex-start;display:grid}.profil-hero__avatar-wrap{flex-shrink:0;position:relative}.profil-hero__info{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.profil-hero__name{font-size:var(--fs-hero);font-weight:var(--fw-semibold);color:var(--ink-1);line-height:var(--lh-tight);margin:0}.profil-hero__meta{font-size:var(--fs-meta);color:var(--ink-3);margin:0}.profil-hero__bio{font-size:var(--fs-body);color:var(--ink-2);line-height:var(--lh-normal);margin:var(--space-2) 0 0;white-space:pre-wrap}.profil-hero__bio-edit{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.profil-hero__bio-input{font:inherit;font-size:var(--fs-body);color:var(--ink-1);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--space-2) var(--space-3);resize:vertical;min-height:60px;line-height:var(--lh-normal);width:100%}.profil-hero__bio-input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.profil-hero__bio-actions{gap:var(--space-2);display:flex}.profil-feed{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.profil-feed__item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);display:flex}.profil-feed__item:last-child{border-bottom:none}.profil-feed__item--fresh{animation:fade-in var(--duration-fast,.14s) var(--ease-out,cubic-bezier(.2, 0, 0, 1))}.profil-feed__lead{color:var(--ink-3);flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.profil-feed__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.profil-feed__body-text{font-size:var(--fs-body);color:var(--ink-1);margin:0}.profil-feed__body-meta{font-size:var(--fs-meta);color:var(--ink-3);margin:0}.profil-feed__trail{font-size:var(--fs-meta);color:var(--ink-3);flex-shrink:0}.profil-feed__more{margin-top:var(--space-3);font-size:var(--fs-meta);color:var(--accent);cursor:pointer;padding:var(--space-2);font-weight:var(--fw-medium);background:0 0;border:none}.profil-feed__more:hover{text-decoration:underline}.profil-feed__more:disabled{color:var(--ink-3);cursor:default;text-decoration:none}.profil-compose{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.profil-compose__input{font:inherit;font-size:var(--fs-body);color:var(--ink-1);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--space-3);resize:vertical;min-height:72px;line-height:var(--lh-normal);width:100%}.profil-compose__input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.profil-compose__actions{justify-content:flex-end;display:flex}@media (max-width:480px){.profil-hero{gap:var(--space-3)}}.stats-quick-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}@media (min-width:900px){.stats-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.stats-quick-grid__card{gap:var(--space-1);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--space-4);flex-direction:column;display:flex}.stats-quick-grid__label{font-size:var(--fs-label);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-medium);margin:0}.stat-number{font-size:2rem;font-weight:var(--fw-semibold);color:var(--ink-1);letter-spacing:-.01em;margin:0;line-height:1.1}.stat-number--warn{color:var(--warn)}.rank-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rank-list__row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;display:grid}.rank-list__row:last-child{border-bottom:none}.rank-list__medal{font-size:var(--fs-title);text-align:center;min-width:28px}.rank-list__name{align-items:center;gap:var(--space-2);color:var(--ink-1);font-weight:var(--fw-semibold);min-width:0;text-decoration:none;display:inline-flex}.rank-list__name:hover{text-decoration:underline}.rank-list__amount{font-size:var(--fs-body);color:var(--ink-1);font-weight:var(--fw-semibold);flex-shrink:0}.reliability-grid{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-1);grid-template-columns:minmax(120px,180px) repeat(6,minmax(88px,1fr));gap:0;display:grid;overflow:auto hidden}@media (min-width:900px){.reliability-grid{grid-template-columns:minmax(160px,240px) repeat(6,minmax(110px,1fr));overflow-x:visible}}.reliability-grid__head,.reliability-grid__name,.reliability-grid__cell{padding:var(--space-3);border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:var(--fs-meta)}.reliability-grid>:nth-child(7n){border-right:none}.reliability-grid__head{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:var(--fw-semibold);background:var(--surface-2)}.reliability-grid__name{align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);color:var(--ink-1);display:inline-flex}.reliability-grid__cell{color:var(--ink-2);font-variant-numeric:tabular-nums}.reliability-grid__cell--stripe,.reliability-grid__name--stripe{background:var(--surface-2)}.reliability-grid__row--me .reliability-grid__name,.reliability-grid__row--me .reliability-grid__cell{background:var(--accent-soft)}.stats-filter-form{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:flex-end;display:flex}.stats-filter-form__field{gap:var(--space-1);flex-direction:column;min-width:140px;display:flex}.stats-filter-form__label{font-size:var(--fs-label);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-medium)}.stats-filter-form__divider{color:var(--ink-3);font-size:var(--fs-meta);padding-bottom:var(--space-2)}.week-calendar{width:100%;max-width:100%;overflow-x:visible}.week-calendar__header{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.week-calendar__today{font-size:var(--fs-meta);color:var(--ink-3);margin:0}.week-calendar__today strong{color:var(--ink-1);font-weight:var(--fw-semibold)}.week-calendar__track{gap:var(--space-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scroll-padding-inline:var(--space-3);overscroll-behavior-x:contain;padding:2px;display:flex;overflow-x:auto}.week-calendar__track::-webkit-scrollbar{display:none}.week-calendar__card{min-width:90px;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);text-align:center;border:1px solid var(--line);background:var(--surface-2);scroll-snap-align:start;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);flex-direction:column;flex-shrink:0;gap:2px;display:flex}.week-calendar__card--active{border-color:var(--accent);background:var(--accent-soft)}.week-calendar__card--done{background:var(--surface-2);border-color:var(--line)}.week-calendar__card--absent{background:var(--surface-2);opacity:.6}.week-calendar__card--overdue{border-color:var(--warn);background:#b453090f}.week-calendar__card--upcoming{background:var(--surface-2);opacity:.55}.week-calendar__kw{font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.week-calendar__task{font-size:var(--fs-meta);font-weight:var(--fw-semibold);color:var(--ink-2)}.week-calendar__card--active .week-calendar__task{color:var(--ink-1)}.week-calendar__badge{font-size:var(--fs-label);color:var(--success)}.week-calendar__deadline{font-size:var(--fs-label);color:var(--accent)}.week-calendar__card--clickable{cursor:pointer}.week-calendar__card--clickable:hover{background:var(--surface-3);border-color:var(--ink-3)}.week-calendar__card--active.week-calendar__card--clickable:hover{background:var(--accent-soft);border-color:var(--accent)}.week-calendar__card--selected{border-color:var(--accent)!important;background:var(--accent-soft)!important}.week-detail{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-4);margin-top:var(--space-2);animation:fade-in .15s var(--ease-out);box-shadow:var(--elevation-2)}.week-detail__loading{text-align:center;color:var(--ink-3);font-size:var(--fs-meta);padding:var(--space-3)}.week-detail__header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.week-detail__title{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--ink-1)}.week-detail__close{color:var(--ink-3);font-size:var(--fs-body);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--r-sm);min-width:44px;min-height:44px;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.week-detail__close:hover{background:var(--surface-3)}.week-detail__row{padding:var(--space-2) 0;border-top:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.week-detail__label{font-size:var(--fs-label);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-medium)}.week-detail__value{font-size:var(--fs-meta);color:var(--ink-2);font-weight:var(--fw-medium)}.week-detail__badge{font-size:var(--fs-label);border-radius:var(--r-sm);font-weight:var(--fw-semibold);padding:2px 8px}.week-detail__badge--ok{background:var(--status-ok-bg);color:var(--status-ok-text)}.week-detail__badge--warn{background:var(--status-warn-bg);color:var(--status-warn-text)}.week-detail__badge--alert{background:var(--status-alert-bg);color:var(--status-alert-text)}.week-detail__checklist{margin-top:var(--space-2);flex-direction:column;gap:2px;display:flex}.week-detail__check{align-items:center;gap:var(--space-2);font-size:var(--fs-meta);color:var(--ink-2);padding:3px 0;display:flex}.week-detail__check--btn{appearance:none;padding:6px var(--space-2);border-radius:var(--r-sm);text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0}.week-detail__check--btn:hover:not(:disabled){background:var(--surface-3)}.week-detail__check--btn:disabled{cursor:default;opacity:.7}.week-detail__check--done{color:var(--ink-3);opacity:.7;text-decoration:line-through}.week-detail__footer{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.week-detail__reactions{gap:var(--space-3);font-size:var(--fs-meta);color:var(--ink-3);display:flex}.week-detail__link{font-size:var(--fs-meta);font-weight:var(--fw-medium);color:var(--accent);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.week-detail__link:hover{text-decoration:underline}
.button:active,.btn:active{transform:scale(.985)}@media (hover:hover) and (pointer:fine){.link-card,.assignment-card{transition-property:border-color,background-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out)}.link-card:hover,.assignment-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:0 0 0 3px var(--accent-soft);transform:translateY(-1px)}.resident-card{transition-property:box-shadow,transform,background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out)}.resident-card:hover{transform:translateY(-1px)}.data-table tbody tr,.week-detail__check{transition:background-color var(--duration-fast) var(--ease-out)}.week-detail__check:not(:disabled):hover{background:var(--surface-hover)}}

