.shell{--shell-bg: #f4f5fa;--shell-border: #eceef4;--shell-ink: #14142b;--shell-muted: #6b7280;--shell-purple: #6b37b7;--sidebar-width: 260px;--sidebar-rail: 72px;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh;background:var(--shell-bg);color:var(--shell-ink);color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;transition:grid-template-columns .2s ease}.shell.is-collapsed{grid-template-columns:var(--sidebar-rail) minmax(0,1fr)}.shell__backdrop{display:none}.shell__main{min-width:0}.shell__content{padding:2rem}.page-title{margin:0 0 1.5rem;font-size:1.375rem;font-weight:700;line-height:1.2}.sidebar{position:sticky;top:0;height:100vh;overflow:hidden;background:#fff;border-right:1px solid var(--shell-border)}.sidebar__inner{box-sizing:border-box;width:var(--sidebar-width);height:100%;padding:1.25rem 1rem;overflow-y:auto}.sidebar__brand{overflow:hidden;margin:.25rem .5rem 1.75rem}.sidebar__logo{display:block;width:254px;max-width:none;height:auto;margin-left:-52px}.sidebar__mark{display:none;width:32px;height:32px}.sidebar__list{display:grid;gap:.25rem;margin:0;padding:0;list-style:none}.sidebar__link{position:relative;display:flex;align-items:center;gap:.75rem;height:42px;padding:0 .875rem;border-radius:8px;color:#3f4356;font-size:.875rem;font-weight:500;text-decoration:none}.sidebar__link:hover{background:#f4f1fa}.sidebar__link--active,.sidebar__link--active:hover{background:var(--shell-purple);color:#fff}.sidebar__link:focus-visible{outline:2px solid var(--shell-purple);outline-offset:2px}.sidebar__label{flex:1}.sidebar__link svg:last-child:not(:first-child){width:15px;height:15px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1rem;height:64px;padding:0 1.5rem;background:#fff;border-bottom:1px solid var(--shell-border)}.topbar__menu,.topbar__bell,.topbar__avatar{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;cursor:pointer}.topbar__menu{border-radius:8px;background:none;color:var(--shell-muted)}.topbar__menu:hover{background:var(--shell-bg)}.topbar__menu svg{width:20px;height:20px}.topbar__menu:focus-visible,.topbar__bell:focus-visible,.topbar__avatar:focus-visible{outline:2px solid var(--shell-purple);outline-offset:2px}.topbar__search{display:flex;align-items:center;gap:.5rem;flex:1;max-width:340px;height:38px;padding:0 .875rem;border:1px solid var(--shell-border);border-radius:8px;background:var(--shell-bg);color:var(--shell-muted)}.topbar__search:focus-within{border-color:var(--shell-purple);background:#fff}.topbar__search svg{width:16px;height:16px;flex:none}.topbar__search input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--shell-ink);font:inherit;font-size:.8125rem}.topbar__actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}.topbar__bell{border-radius:50%;background:var(--shell-bg);color:var(--shell-muted)}.topbar__dot{position:absolute;top:6px;right:8px;width:8px;height:8px;border:1.5px solid #ffffff;border-radius:50%;background:#ef4444}.topbar__avatar{border-radius:50%;background:var(--shell-purple);color:#fff}.account{position:relative}.account__menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;min-width:220px;padding:.5rem;border:1px solid var(--shell-border);border-radius:10px;background:#fff;box-shadow:0 8px 24px #14142b1f}.account__email{margin-bottom:.375rem;padding:.5rem .625rem .625rem;border-bottom:1px solid var(--shell-border);color:var(--shell-muted);font-size:.8125rem;word-break:break-all}.account__item{display:block;width:100%;padding:.5rem .625rem;border:0;border-radius:6px;background:none;color:var(--shell-ink);font:inherit;font-size:.875rem;text-align:left;cursor:pointer}.account__item:hover,.account__item:focus-visible{outline:none;background:var(--shell-bg)}.notifications{position:relative}.notifications__panel{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(360px,calc(100vw - 2rem));border:1px solid var(--shell-border);border-radius:10px;background:#fff;box-shadow:0 8px 24px #14142b1f}.notifications__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .875rem;border-bottom:1px solid var(--shell-border)}.notifications__title{color:var(--shell-ink);font-size:.875rem;font-weight:600}.notifications__link{padding:0;border:0;background:none;color:var(--shell-purple);font:inherit;font-size:.75rem;font-weight:600;text-align:left;cursor:pointer}.notifications__link:hover{text-decoration:underline}.notifications__message{margin:0;padding:1.5rem .875rem;color:var(--shell-muted);font-size:.8125rem;text-align:center}.notifications__message--error{color:#b91c1c}.notifications__list{max-height:360px;margin:0;padding:0;overflow-y:auto;list-style:none}.notifications__item{display:flex;flex-direction:column;gap:2px;width:100%;padding:.625rem .875rem;border:0;border-bottom:1px solid var(--shell-border);background:none;font:inherit;text-align:left;cursor:default}.notifications__list li:last-child .notifications__item{border-bottom:0}.notifications__item.is-unread{background:#efe6fc;box-shadow:inset 3px 0 0 var(--shell-purple);cursor:pointer}.notifications__item.is-unread:hover{background:#e5d8fa}.notifications__item-title{color:var(--shell-ink);font-size:.8125rem;font-weight:600}.notifications__item-body{color:#4b5563;font-size:.8125rem}.notifications__item-time{color:var(--shell-muted);font-size:.6875rem}.notifications__footer{display:flex;flex-direction:column;gap:.25rem;padding:.625rem .875rem;border-top:1px solid var(--shell-border)}.notifications__footer--center{align-items:center}.notifications__footer-note{color:var(--shell-muted);font-size:.75rem}@media (min-width: 901px){.shell.is-collapsed .sidebar__inner{width:var(--sidebar-rail);padding-inline:.75rem}.shell.is-collapsed .sidebar__brand{width:32px;margin-inline:auto}.shell.is-collapsed .sidebar__logo{display:none}.shell.is-collapsed .sidebar__mark{display:block}.shell.is-collapsed .sidebar__link{justify-content:center;padding:0}.shell.is-collapsed .sidebar__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.shell.is-collapsed .sidebar__link svg:last-child:not(:first-child){display:none}}@media (max-width: 900px){.shell,.shell.is-collapsed{grid-template-columns:minmax(0,1fr)}.shell.is-collapsed .sidebar{visibility:hidden}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:var(--sidebar-width);transform:translate(-100%);transition:transform .2s ease,visibility .2s}.shell:not(.is-collapsed) .sidebar{transform:none;box-shadow:0 0 40px #14142b33}.shell:not(.is-collapsed) .shell__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:block;border:0;background:#14142b66}.shell__content{padding:1.25rem 1rem}}.signin{--signin-purple: #6b37b7;--signin-purple-dark: #5a2d9c;--signin-ink: #14142b;--signin-muted: #6b7280;--signin-field-bg: #f3f4f8;--signin-field-border: #e5e7ee;--signin-error: #dc2626;display:grid;grid-template-columns:45% 1fr;min-height:100vh;background:#fff;color:var(--signin-ink);color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.signin__art{position:relative;overflow:hidden;background:#5b2fa3}.signin__banner{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover}.signin__panel{display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}.signin__content{width:100%;max-width:320px}.signin__logo{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:1.75rem}.signin__logo-part{display:block;background:url(/logo.png) no-repeat;background-size:291px 43px}.signin__logo-part--kree{width:86px;height:32px;background-position:-69px -3px}.signin__logo-part--fitstream{width:107px;height:18px;background-position:-173px -16px}.signin__title{margin:0 0 .5rem;font-size:1.6rem;font-weight:700;line-height:1.2}.signin__subtitle{margin:0 0 1.5rem;font-size:.875rem;color:var(--signin-muted)}.field{position:relative;margin-bottom:1rem}.field__icon{position:absolute;top:22px;left:14px;display:flex;transform:translateY(-50%);color:var(--signin-muted);pointer-events:none}.field__input{box-sizing:border-box;width:100%;height:44px;padding:0 44px 0 42px;border:1px solid var(--signin-field-border);border-radius:8px;background:var(--signin-field-bg);color:var(--signin-ink);font:inherit;font-size:.875rem}.field__input::placeholder{color:var(--signin-muted)}.field__input:focus{outline:none;border-color:var(--signin-purple);background:#fff;box-shadow:0 0 0 3px #6b37b726}.field__input[aria-invalid=true]{border-color:var(--signin-error)}.field__toggle{position:absolute;top:22px;right:6px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;transform:translateY(-50%);border:0;border-radius:6px;background:none;color:var(--signin-muted);cursor:pointer}.field__toggle:hover{color:var(--signin-ink)}.field__toggle:focus-visible,.signin__link:focus-visible,.signin__submit:focus-visible{outline:2px solid var(--signin-purple);outline-offset:2px}.field__error{margin:.35rem .125rem 0;font-size:.75rem;color:var(--signin-error)}.signin__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.25rem 0 1.5rem;font-size:.8125rem}.signin__remember{display:inline-flex;align-items:center;gap:.5rem;color:var(--signin-muted);cursor:pointer}.signin__remember input{width:16px;height:16px;margin:0;accent-color:var(--signin-purple)}.signin__link{padding:0;border:0;background:none;color:var(--signin-purple);font:inherit;font-weight:500;text-decoration:none;cursor:pointer}.signin__alert{margin:0 0 1rem;padding:.75rem .875rem;border:1px solid transparent;border-radius:8px;font-size:.8125rem;line-height:1.4}.signin__alert--error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.signin__alert--success{border-color:#bbf7d0;background:#ecfdf3;color:#166534}.signin__alert a{color:inherit;font-weight:600}.signin__footer{margin:1.25rem 0 0;color:var(--signin-muted);font-size:.8125rem;text-align:center}.signin__muted{color:var(--signin-muted)}.signin__emphasis{color:var(--signin-ink);font-weight:600;word-break:break-all}.otp{display:flex;gap:.625rem;margin-bottom:1rem}.otp__box{flex:1;min-width:0;height:52px;border:1px solid var(--signin-field-border);border-radius:8px;background:var(--signin-field-bg);color:var(--signin-ink);font:inherit;font-size:1.25rem;font-weight:600;text-align:center}.otp__box:focus{outline:none;border-color:var(--signin-purple);background:#fff;box-shadow:0 0 0 3px #6b37b726}.otp__box[aria-invalid=true]{border-color:var(--signin-error)}.signin__link:hover{text-decoration:underline}.signin__submit{width:100%;height:44px;border:0;border-radius:8px;background:var(--signin-purple);color:#fff;font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer}.signin__submit:hover{background:var(--signin-purple-dark)}.signin__submit:disabled{opacity:.7;cursor:not-allowed}.signin__submit--spaced{margin-top:.5rem}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 900px){.signin{grid-template-columns:1fr}.signin__art{display:none}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border:1px solid var(--tone-border);border-radius:10px;background:linear-gradient(90deg,var(--tone-bg),#ffffff 85%)}.stat-card--cyan{--tone-bg: #e1f5fd;--tone-border: #d3eefa;--tone-solid: #12b5f0}.stat-card--green{--tone-bg: #e2f6ea;--tone-border: #d3f0df;--tone-solid: #3fb572}.stat-card--purple{--tone-bg: #efe6fb;--tone-border: #e5d8f8;--tone-solid: #7a2fe0}.stat-card--red{--tone-bg: #fde8e8;--tone-border: #fadcdc;--tone-solid: #e60f0f}.stat-card__label{font-size:.875rem;font-weight:500}.stat-card__value{margin-top:.5rem;font-size:1.375rem;font-weight:700;line-height:1}.stat-card__value--muted{color:var(--shell-muted);font-size:.9375rem;font-weight:600}.stat-card__icon{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--tone-solid);color:#fff}.stat-card__icon svg{width:22px;height:22px}.panel{padding:0 1.5rem 1.5rem;border-radius:12px;background:#fff;box-shadow:0 1px 2px #14142b0d}.panel__header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel__tab{display:inline-flex;align-items:center;gap:.75rem;margin:0 0 0 .5rem;padding:1rem 1rem .75rem;border-top:2px solid var(--shell-purple);background:linear-gradient(180deg,#f3edfb,#fff);font-size:.9375rem;font-weight:600}.panel__count{padding:2px 10px;border-radius:999px;background:#6b37b7;color:#fff;font-size:.75rem;font-weight:600}.panel__link{display:inline-flex;align-items:center;gap:.25rem;padding-bottom:.75rem;color:var(--shell-purple);font-size:.8125rem;font-weight:500;text-decoration:none}.panel__link:hover{text-decoration:underline}.panel__link svg{width:14px;height:14px}.table-wrap{overflow-x:auto}.data-table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;font-size:.875rem}.data-table th{padding:.875rem 1rem;background:var(--shell-bg);font-size:.8125rem;font-weight:600;text-align:left}.data-table th:first-child{border-radius:8px 0 0 8px}.data-table th:last-child{border-radius:0 8px 8px 0}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--shell-border);color:#4b5563}.data-table tbody tr:last-child td{border-bottom:0}.user-cell{display:inline-flex;align-items:center;gap:.75rem}.user-cell__name{color:var(--shell-ink);font-weight:500}.avatar{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;color:#3f2a63;font-size:.6875rem;font-weight:700}.data-table th.col-center,.data-table td.col-center{text-align:center}.sort-header{display:inline-flex;align-items:center;gap:.375rem;padding:0;border:0;background:transparent;font:inherit;color:inherit;white-space:nowrap;cursor:pointer}.sort-header__arrows{display:inline-flex;color:#c3c6d1}.sort-header__arrows.is-asc .sort-header__up,.sort-header__arrows.is-desc .sort-header__down{color:var(--shell-purple)}.pill{display:inline-block;padding:3px 10px;border:1px solid transparent;border-radius:4px;font-size:.75rem;font-weight:500}.pill--active{border-color:#45b369;background:#dcf5e5;color:#2f9e5f}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-bottom:1.5rem}.page-header .page-title{margin:0}.breadcrumb{display:flex;align-items:center;gap:.5rem;color:var(--shell-muted);font-size:.8125rem}.breadcrumb a{display:inline-flex;align-items:center;gap:.375rem;color:var(--shell-ink);text-decoration:none}.breadcrumb a:hover{color:var(--shell-purple)}.breadcrumb svg{width:14px;height:14px}.users-panel{padding:1.25rem 1.5rem 1.5rem}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1.25rem}.toolbar__length{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem}.toolbar__search{display:flex;align-items:center;gap:.5rem;width:280px;max-width:100%;height:36px;padding:0 .75rem;border:1px solid var(--shell-border);border-radius:8px;background:#fff;color:var(--shell-muted)}.toolbar__search:focus-within{border-color:var(--shell-purple);box-shadow:0 0 0 3px #6b37b726}.toolbar__search svg{width:16px;height:16px;flex:none}.toolbar__search input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--shell-ink);font:inherit;font-size:.8125rem}.toolbar__action{margin-left:auto}.select{height:36px;padding:0 2rem 0 .75rem;border:1px solid var(--shell-border);border-radius:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .625rem center;color:var(--shell-ink);font:inherit;font-size:.8125rem;cursor:pointer}.select:focus{outline:none;border-color:var(--shell-purple);box-shadow:0 0 0 3px #6b37b726}.button-primary{display:inline-flex;align-items:center;gap:.5rem;height:38px;padding:0 1rem;border:0;border-radius:8px;background:var(--shell-purple);color:#fff;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer}.button-primary svg{width:16px;height:16px}.button-primary:disabled{opacity:.55;cursor:not-allowed}.table-wrap.is-loading{opacity:.6;transition:opacity .15s ease}.data-table--users{min-width:1040px;font-size:.8125rem}.data-table--devices{min-width:480px;font-size:.8125rem}.data-table--exercises{min-width:620px;font-size:.8125rem}.exercise-cell{display:flex;flex-direction:column;gap:2px}.exercise-cell__name{color:var(--shell-ink);font-weight:500}.exercise-cell__code{color:var(--shell-muted);font-size:.6875rem;letter-spacing:.02em}.data-table--users th,.data-table--users td,.data-table--devices th,.data-table--devices td,.data-table--exercises th,.data-table--exercises td{padding-inline:.625rem;white-space:nowrap}.data-table--users .col-check,.data-table--devices .col-check,.data-table--exercises .col-check{width:44px;padding-right:0}.data-table--users tr.is-selected td,.data-table--devices tr.is-selected td,.data-table--exercises tr.is-selected td{background:#faf7fe}.data-table--notifications{min-width:640px;font-size:.8125rem}.data-table--notifications th,.data-table--notifications td{padding-inline:.625rem}.data-table--notifications .col-nowrap{white-space:nowrap}.data-table--notifications tr.is-unread td{background:#faf7fe}.notification-cell{display:flex;flex-direction:column;gap:2px}.notification-cell__title{color:var(--shell-ink);font-weight:600}.pill--unread{border-color:var(--shell-purple);background:#efe6fc;color:var(--shell-purple)}.check{width:16px;height:16px;margin:0;accent-color:var(--shell-purple);cursor:pointer}.check:disabled{cursor:not-allowed}.pill--inactive{border-color:#9ca3af;background:#e5e7eb;color:#4b5563}.actions{display:inline-flex;gap:.5rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:50%;cursor:pointer}.icon-button svg{width:14px;height:14px}.icon-button:disabled{opacity:.55;cursor:not-allowed}.icon-button--view{background:#e3edff;color:#3b6ef5}.icon-button--edit{background:#dcf5e5;color:#2f9e5f}.icon-button--delete{background:#ffe6dc;color:#ef6b3a}.table-message{padding:2.5rem 1rem;color:var(--shell-muted);text-align:center}.table-message--error{color:#b91c1c}.table-message__retry{padding:0;border:0;background:none;color:var(--shell-purple);font:inherit;font-weight:600;cursor:pointer}.table-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-top:1rem}.table-footer__summary{margin:0;color:var(--shell-muted);font-size:.75rem}.pager{display:flex;align-items:center;gap:.375rem}.pager__button{min-width:28px;height:28px;padding:0 .5rem;border:0;border-radius:6px;background:transparent;color:var(--shell-muted);font:inherit;font-size:.8125rem;cursor:pointer}.pager__button:hover:not(:disabled){background:var(--shell-bg)}.pager__button:disabled{opacity:.4;cursor:not-allowed}.pager__button--active,.pager__button--active:hover:not(:disabled){background:var(--shell-purple);color:#fff}.pager__button:focus-visible,.select:focus-visible,.table-message__retry:focus-visible{outline:2px solid var(--shell-purple);outline-offset:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#14142b73}.modal-panel{width:100%;max-width:420px;max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:12px;background:#fff;box-shadow:0 20px 45px #14142b2e}.modal-panel__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--shell-border);position:sticky;top:0;z-index:2;background:#fff}.modal-panel__title{margin:0;font-size:1rem;font-weight:600;color:var(--shell-ink)}.modal-panel__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--shell-muted);cursor:pointer}.modal-panel__close:hover{background:var(--shell-bg)}.user-form{display:flex;flex-direction:column;gap:1rem;padding:1.25rem 1.5rem 1.5rem}.user-form__field,.user-form__picker{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem;color:var(--shell-ink)}.user-form__field input,.user-form__field select{height:38px;padding:0 .75rem;border:1px solid var(--shell-border);border-radius:8px;background:#fff;color:var(--shell-ink);font:inherit;font-size:.8125rem}.user-form__field input:focus,.user-form__field select:focus{outline:none;border-color:var(--shell-purple);box-shadow:0 0 0 3px #6b37b726}.user-form__field input[aria-invalid=true],.user-form__field select[aria-invalid=true]{border-color:#ef6b3a}.user-form__required{margin-left:.125rem;color:#dc2626}.user-form__label-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.unit-toggle{display:inline-flex;border:1px solid var(--shell-border);border-radius:6px;overflow:hidden}.unit-toggle__option{padding:.125rem .5rem;border:0;background:#fff;color:var(--shell-muted);font:inherit;font-size:.6875rem;font-weight:600;cursor:pointer}.unit-toggle__option.is-active{background:var(--shell-purple);color:#fff}.height-ft-in{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.height-ft-in input{min-width:0}.user-form__hint{color:var(--shell-muted);font-size:.75rem}.user-form__error{color:#b91c1c;font-size:.75rem;font-style:normal}.user-form__alert{margin:0;padding:.625rem .75rem;border-radius:8px;background:#fde8e8;color:#b91c1c;font-size:.8125rem}.user-form__divider,.user-view__divider{margin:.25rem 0;padding-top:.75rem;border-top:1px solid var(--shell-border);color:var(--shell-muted);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.user-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.user-form__checkbox{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--shell-ink)}.user-form__checkbox input{width:16px;height:16px;accent-color:var(--shell-purple)}.weekday-picker{display:flex;flex-wrap:wrap;gap:.375rem}.weekday-picker__day{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--shell-border);border-radius:8px;background:#fff;color:var(--shell-ink);font:inherit;font-size:.75rem;font-weight:600;cursor:pointer}.weekday-picker__day:disabled{opacity:.4;cursor:not-allowed}.weekday-picker__day.is-selected{border-color:var(--shell-purple);background:var(--shell-purple);color:#fff}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:0 1.5rem 1.5rem}.user-form .modal-actions{padding:0}.button-secondary{display:inline-flex;align-items:center;height:38px;padding:0 1rem;border:1px solid var(--shell-border);border-radius:8px;background:#fff;color:var(--shell-ink);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer}.button-secondary:disabled{opacity:.55;cursor:not-allowed}.button-danger{display:inline-flex;align-items:center;height:38px;padding:0 1rem;border:0;border-radius:8px;background:#ef6b3a;color:#fff;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer}.button-danger:disabled{opacity:.55;cursor:not-allowed}.user-view{display:flex;flex-direction:column;gap:.75rem;margin:0;padding:1.25rem 1.5rem 1.5rem}.user-view__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.8125rem}.user-view__row dt{color:var(--shell-muted)}.user-view__row dd{margin:0;color:var(--shell-ink);font-weight:500;text-align:right}.confirm-dialog__message{margin:0;padding:1.25rem 1.5rem 0;color:var(--shell-ink);font-size:.875rem}.confirm-dialog__message+.user-form__alert{margin:1rem 1.5rem 0}.confirm-dialog__message~.modal-actions{margin-top:1.25rem}:root{color-scheme:light dark;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif}body{margin:0;min-height:100vh}.auth-status{padding:3rem 1rem;text-align:center;color:#6b7280}.card{border:1px solid #3333;border-radius:8px;padding:1rem;margin-bottom:.75rem}.status-ok{color:#16a34a}.status-error{color:#dc2626}
