.sidebar{width:var(--sidebar-width);height:100vh;position:sticky;top:0;display:flex;flex-direction:column;background-color:#1e2235;flex-shrink:0;overflow-y:auto;overflow-x:hidden;z-index:var(--z-sidebar)}.sidebar__header{padding:28px 24px 24px;display:flex;align-items:center;flex-shrink:0}.sidebar__logo{display:flex;align-items:center;gap:14px}.sidebar__logo-mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#8b7ff5,#6c63e0);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;letter-spacing:-.02em;flex-shrink:0}.sidebar__logo-text{font-family:var(--font-family);font-size:20px;font-weight:700;color:#fff;letter-spacing:-.3px}.sidebar__section-label{font-family:var(--font-family);font-size:11px;font-weight:600;color:#6e7394;text-transform:uppercase;letter-spacing:.8px;padding:28px 24px 10px}.sidebar__nav{display:flex;flex-direction:column;gap:2px;padding:0;flex:1}.sidebar__nav-item{display:flex;align-items:center;gap:12px;padding:9px 14px;margin:0 12px;border-radius:10px;color:#b0b4cc;font-family:var(--font-family);font-size:14px;font-weight:500;transition:all .15s ease;min-height:40px;text-decoration:none;cursor:pointer;position:relative}.sidebar__nav-item:hover{background-color:#ffffff0d;color:#c8cce0}.sidebar__nav-item--active{background:#6c63e01f;color:#a5a0f5;font-weight:600;box-shadow:none}.sidebar__nav-item--active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#6c63e0}.sidebar__nav-item--active:hover{background:#6c63e026;color:#b5b0f7;box-shadow:none}.sidebar__nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.7}.sidebar__nav-item--active .sidebar__nav-icon{opacity:1}.sidebar__nav-item--parent{display:flex;align-items:center;gap:12px;padding:9px 14px;margin:0 12px;border-radius:10px;color:#b0b4cc;font-family:var(--font-family);font-size:14px;font-weight:500;transition:all .15s ease;min-height:40px;cursor:pointer;border:none;background:none;width:calc(100% - 24px);text-align:left}.sidebar__nav-item--parent:hover{background-color:#ffffff0d;color:#c8cce0}.sidebar__nav-item--parent-active{color:#c8cce0}.sidebar__nav-chevron{margin-left:auto;opacity:.4;transition:transform .15s ease;flex-shrink:0}.sidebar__nav-chevron--open{transform:rotate(180deg)}.sidebar__nav-children{display:flex;flex-direction:column;gap:1px}.sidebar__nav-item--child{padding-left:44px;font-size:13px}.sidebar__nav-badge{margin-left:auto;background-color:#c2410c;color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;min-width:20px;text-align:center;line-height:1.2}.sidebar__footer{padding:20px 12px;border-top:1px solid rgba(255,255,255,.05);margin-top:auto;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.sidebar__user{display:flex;align-items:center;gap:12px;padding:8px 14px;border-radius:10px;transition:background-color .15s ease}.sidebar__user:hover{background-color:#ffffff0d}.sidebar__user-avatar{width:34px;height:34px;border-radius:10px;background-color:#6c63e026;display:flex;align-items:center;justify-content:center;color:#a5a0f5;font-size:13px;font-weight:600;flex-shrink:0}.sidebar__user-name{font-family:var(--font-family);font-size:14px;color:#c8cce0;font-weight:500}.sidebar__user-role{font-size:12px;color:#6e7394;font-weight:500}.sidebar__logout{display:flex;align-items:center;gap:12px;width:100%;padding:9px 14px;border-radius:10px;color:#9498b5;font-family:var(--font-family);font-size:14px;font-weight:500;min-height:40px;transition:all .15s ease;border:none;background:none;cursor:pointer;text-align:left}.sidebar__logout:hover{background-color:#c2410c14;color:#f87171}.sidebar__version{font-family:var(--font-family);font-size:11px;color:#5c6080;padding:4px 14px 0;font-weight:500}.more-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.more-menu__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:more-menu-fade-in var(--transition-normal) var(--easing)}.more-menu__sheet{position:absolute;bottom:0;left:0;right:0;background:var(--color-bg-surface);border-radius:var(--radius-modal) var(--radius-modal) 0 0;box-shadow:var(--shadow-dropdown);padding:var(--space-sm) var(--space-lg) var(--space-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));animation:more-menu-slide-up var(--transition-normal) var(--easing)}.more-menu__handle{width:36px;height:4px;background:var(--color-border-prominent);border-radius:2px;margin:0 auto var(--space-lg)}.more-menu__nav{display:flex;flex-direction:column;gap:var(--space-xs)}.more-menu__item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-md);border-radius:var(--radius-button);color:var(--color-text-secondary);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);min-height:var(--touch-recommended);transition:background-color var(--transition-fast),color var(--transition-fast)}.more-menu__item:active{background-color:var(--color-neutral-bg)}.more-menu__item--active{color:var(--color-accent);font-weight:var(--font-weight-medium);background-color:var(--color-accent-light)}.more-menu__group{display:flex;flex-direction:column}.more-menu__group-toggle{width:100%;cursor:pointer}.more-menu__chevron{margin-left:auto;transition:transform var(--transition-fast);color:var(--color-text-muted)}.more-menu__chevron--open{transform:rotate(180deg)}.more-menu__item--child{padding-left:calc(var(--space-md) + 20px + var(--space-md))}.more-menu__divider{height:1px;background:var(--color-border-subtle);margin:var(--space-sm) 0}.more-menu__logout{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-md);border-radius:var(--radius-button);color:var(--color-danger);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);min-height:var(--touch-recommended);transition:background-color var(--transition-fast)}.more-menu__logout:active{background-color:var(--color-danger-bg)}@keyframes more-menu-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes more-menu-fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.more-menu__sheet,.more-menu__backdrop{animation:none}}.bottom-tabs{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;height:var(--bottom-tabs-height);background-color:var(--color-bg-surface);border-top:1px solid var(--color-border-subtle);box-shadow:0 -2px 8px #0000000a;padding-bottom:env(safe-area-inset-bottom,0);z-index:100}.bottom-tabs__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;min-height:var(--touch-min);color:var(--color-text-muted);transition:color var(--transition-fast);padding:var(--space-xs) 0}.bottom-tabs__item--active{color:var(--color-accent)}.bottom-tabs__label{font-size:10px;font-weight:var(--font-weight-medium)}.app-layout{display:flex;min-height:100vh;background-color:var(--color-bg-page)}.app-layout__main{flex:1;min-width:0;padding:var(--space-2xl) var(--space-xl)}.app-layout__content{width:100%}@media(max-width:1024px){.app-layout__main{padding:var(--space-xl)}}@media(max-width:768px){.app-layout__main{padding:var(--space-lg);padding-bottom:calc(var(--bottom-tabs-height) + var(--space-lg) + env(safe-area-inset-bottom,0))}}.card{background-color:var(--color-bg-surface);border:0;border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.card-header{padding:var(--card-padding);padding-bottom:0}.card-header--with-border{padding-bottom:var(--card-padding);border-bottom:1px solid var(--color-border)}.card-body{padding:var(--card-padding)}.card-footer{padding:var(--card-padding);padding-top:0}.card-footer--with-border{padding-top:var(--card-padding);border-top:1px solid var(--color-border)}.card-title{font-size:var(--font-size-card-title);font-weight:var(--font-weight-medium);color:var(--color-text-heading);margin:0;line-height:28px}.card-subtitle{font-size:var(--font-size-body-small);color:var(--color-text-primary);margin-top:4px}.card--padding-default{padding:var(--card-padding)}.card--padding-compact{padding:var(--space-lg)}.card--padding-none{padding:0}@media(max-width:768px){.card--padding-compact{padding:var(--space-md)}}.card--hoverable{transition:box-shadow var(--transition-normal),transform var(--transition-normal);cursor:pointer}.card--hoverable:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.stat-card{display:flex;align-items:center;gap:var(--space-lg);padding:var(--card-padding)}.stat-card__icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card__icon--primary{background-color:var(--color-accent-light);color:var(--color-accent)}.stat-card__icon--success{background-color:var(--color-success-bg);color:var(--color-success)}.stat-card__icon--danger{background-color:var(--color-danger-bg);color:var(--color-danger)}.stat-card__icon--warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.stat-card__icon--info{background-color:var(--color-info-bg);color:var(--color-info)}.stat-card__content{flex:1;min-width:0}.stat-card__value{font-size:var(--font-size-stat);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);line-height:1.2}.stat-card__label{font-size:var(--font-size-body-small);color:var(--color-text-primary);margin-top:2px}.badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--radius-badge);font-size:var(--font-size-badge);font-weight:var(--font-weight-medium);white-space:nowrap;line-height:1}.badge--success{background-color:var(--color-success-bg);color:var(--color-success-text)}.badge--danger{background-color:var(--color-danger-bg);color:var(--color-danger-text)}.badge--warning{background-color:var(--color-warning-bg);color:var(--color-warning-text)}.badge--info{background-color:var(--color-info-bg);color:var(--color-info-text)}.badge--primary{background-color:var(--color-accent-light);color:var(--color-accent-text)}.badge--neutral{background-color:#4b465c14;color:var(--color-neutral-text)}.badge--success-solid{background-color:var(--color-success);color:#fff}.badge--danger-solid{background-color:var(--color-danger);color:#fff}.badge--warning-solid{background-color:var(--color-warning);color:#fff}.badge--primary-solid{background-color:var(--color-accent);color:#fff}.badge--pill{border-radius:999px;padding:2px 8px;font-size:11px;min-width:20px;text-align:center}.badge--dot{width:8px;height:8px;padding:0;border-radius:50%;font-size:0}.badge--outline-primary{background-color:transparent;color:var(--color-accent-text);border:1px solid var(--color-accent)}.badge--outline-success{background-color:transparent;color:var(--color-success-text);border:1px solid var(--color-success)}.badge--outline-danger{background-color:transparent;color:var(--color-danger-text);border:1px solid var(--color-danger)}.badge--outline-warning{background-color:transparent;color:var(--color-warning-text);border:1px solid var(--color-warning)}.badge--outline-info{background-color:transparent;color:var(--color-info-text);border:1px solid var(--color-info)}.spinner{display:inline-block;border-radius:50%;border:3px solid var(--color-accent-light);border-top-color:var(--color-accent);animation:spinner-rotate .6s linear infinite}.spinner--small{width:18px;height:18px;border-width:2px}.spinner--default{width:28px;height:28px;border-width:3px}.spinner--large{width:40px;height:40px;border-width:3px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.page-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-3xl) 0;min-height:200px}.page-spinner__message{font-size:var(--font-size-body);color:var(--color-text-muted);margin:0}.overlay-spinner{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;z-index:var(--z-overlay);animation:overlay-in .2s ease}.dashboard-error{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-danger);font-size:var(--font-size-body);padding:var(--card-padding);background:var(--color-danger-bg);border-radius:var(--radius-card)}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-cards);margin-top:var(--space-xl)}.dashboard-cards{display:flex;flex-wrap:wrap;gap:var(--gap-cards);margin-top:var(--space-2xl)}.dashboard-cards>.dashboard-card{flex:1 1 0;min-width:240px}.dashboard-card{box-shadow:var(--shadow-sm)}.dashboard-card__header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--card-padding);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading)}.dashboard-card__header .badge{margin-left:auto}.dashboard-card__body{padding:var(--space-lg) var(--card-padding) var(--card-padding)}.dashboard-card__divider{height:1px;background:var(--color-border);margin:var(--space-lg) 0}.stat-card-standalone{display:flex;align-items:center;gap:var(--space-lg);padding:var(--card-padding)}.stat-card-standalone__icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-standalone__icon--warning{background:var(--color-warning-bg);color:var(--color-warning)}.stat-card-standalone__icon--success{background:var(--color-success-bg);color:var(--color-success)}.stat-card-standalone__icon--primary{background:var(--color-accent-bg);color:var(--color-accent)}.stat-card-standalone__icon--info{background:var(--color-info-bg);color:var(--color-info)}.stat-card-standalone__icon--danger{background:var(--color-danger-bg);color:var(--color-danger)}.stat-card-standalone__info{display:flex;flex-direction:column}.stat-card-standalone__value{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-emphasis);line-height:1.2}.stat-card-standalone__unit{font-size:var(--font-size-body-small);font-weight:var(--font-weight-regular);color:var(--color-text-secondary);margin-left:2px}.stat-card-standalone__label{font-size:var(--font-size-body-small);color:var(--color-text-secondary);margin-top:2px}.stat-card-standalone--clickable{cursor:pointer;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.stat-card-standalone--clickable:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.attendance-stats{display:flex;justify-content:space-around;text-align:center;padding:var(--space-sm) 0}.attendance-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.attendance-stat__icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.attendance-stat__icon--info{background:var(--color-info-bg);color:var(--color-info)}.attendance-stat__icon--success{background:var(--color-success-bg);color:var(--color-success)}.attendance-stat__icon--danger{background:var(--color-danger-bg);color:var(--color-danger)}.attendance-stat__info{display:flex;flex-direction:column}.attendance-stat__value{font-size:20px;font-weight:var(--font-weight-semibold);color:var(--color-text-emphasis);line-height:1.2}.attendance-stat__label{font-size:12px;color:var(--color-text-secondary)}.dashboard-card--warning{box-shadow:var(--shadow-sm),inset 0 0 0 1px #ff9f434d}.dashboard-card--warning .dashboard-card__header{color:var(--color-warning)}.dashboard-card--danger{box-shadow:var(--shadow-sm),inset 0 0 0 1px #ff4c514d}.dashboard-card--danger .dashboard-card__header{color:var(--color-danger)}.dashboard-card--birthday{box-shadow:var(--shadow-sm),inset 0 0 0 1px #00bad14d}.dashboard-card--birthday .dashboard-card__header{color:var(--color-info)}.dashboard-card--success .dashboard-card__header{color:var(--color-success)}.dashboard-external-debts-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--card-padding);background:#ff9f4326;border-bottom:1px solid rgba(255,159,67,.3);color:#ff9f43;font-size:var(--font-size-small);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s ease}.dashboard-external-debts-banner:hover{background:#ff9f4340}.missed-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl) 0}.missed-empty__icon{color:var(--color-success)}.missed-empty__text{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0}.debts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl) 0}.debts-empty__icon{color:var(--color-success)}.debts-empty__text{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0}.missed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.missed-list__item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md) var(--space-sm);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.missed-list__item:last-child{border-bottom:none}.missed-list__item:hover{background:var(--color-bg-hover)}.missed-list__icon{color:var(--color-warning);flex-shrink:0;margin-top:2px}.missed-list__content{display:flex;flex-direction:column;min-width:0}.missed-list__client{font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.missed-list__meta{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.missed-show-all{display:block;width:100%;padding:var(--space-md) 0 0;margin-top:var(--space-sm);border:0;border-top:1px solid var(--color-border);background:none;color:var(--color-accent);font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);cursor:pointer;text-align:center;font-family:inherit}.missed-show-all:hover{color:var(--color-accent-hover)}.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.alert-list__item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-sm);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.alert-list__item:last-child{border-bottom:none}.alert-list__item--clickable{cursor:pointer}.alert-list__item--clickable:hover{background:var(--color-bg-hover)}.alert-list__icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.alert-list__icon--danger{background:#ff4c511f;color:var(--color-danger)}.alert-list__icon--birthday{background:#00bad11f;color:var(--color-info)}.alert-list__content{display:flex;flex-direction:column;min-width:0}.alert-list__name{font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-list__tag{font-size:11px;font-weight:var(--font-weight-regular);color:var(--color-text-secondary);background:var(--color-bg-muted);padding:1px 6px;border-radius:var(--radius-sm);margin-left:var(--space-xs)}.alert-list__meta{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-list__debt-info{display:flex;align-items:center;gap:var(--space-sm)}.alert-list__amount{font-size:var(--font-size-body-small);font-weight:var(--font-weight-semibold);color:var(--color-danger)}.alert-list__days{font-size:12px;font-weight:var(--font-weight-medium);color:var(--color-text-heading);background:#ff4c511a;padding:1px 8px;border-radius:var(--radius-sm)}@media(max-width:768px){.dashboard-stats{grid-template-columns:1fr}.dashboard-cards>.dashboard-card{flex-basis:100%}}.input-wrapper{display:flex;flex-direction:column;gap:0}.input-label{font-size:13px;font-weight:var(--font-weight-regular);color:var(--color-text-heading);margin-bottom:4px;line-height:1.375}.input-label--required:after{content:" *";color:var(--color-danger)}.input-field{height:38px;padding:6px 14px;font-family:var(--font-family);font-size:var(--font-size-body);line-height:1.625;color:var(--color-text-heading);background-color:transparent;border:1px solid var(--color-border-input);border-radius:var(--radius-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.input-field::placeholder{color:var(--color-placeholder);opacity:1}.input-field:hover:not(:disabled):not(:focus){border-color:var(--color-border-prominent)}.input-field:focus{border-color:var(--color-accent);box-shadow:var(--shadow-input-focus);outline:none;color:var(--color-text-heading)}.input-field:disabled{background-color:var(--color-bg-muted);color:var(--color-text-disabled);cursor:not-allowed;opacity:1}.input-field--error{border-color:var(--color-danger)}.input-field--error:focus{border-color:var(--color-danger);box-shadow:0 .125rem .375rem #ff4c514d}.input-error-message{font-size:var(--font-size-body-small);color:var(--color-danger);margin-top:4px;line-height:1.375}.input-field--textarea{height:auto;min-height:80px;resize:vertical;padding:8px 14px}.input-icon-wrapper{position:relative}.input-icon-wrapper .input-field{padding-left:38px}.input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;width:16px;height:16px}.input-icon-wrapper .input-field:focus~.input-icon,.input-icon-wrapper .input-field:focus+.input-icon{color:var(--color-accent)}.input-help{font-size:var(--font-size-body-small);color:var(--color-text-muted);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border-radius:var(--radius-button);font-family:var(--font-family);font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);padding:5px 14px;min-height:38px;line-height:1.375;transition:all var(--transition-fast);cursor:pointer;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;text-transform:none;letter-spacing:normal}.btn:focus-visible{outline:none;box-shadow:0 0 0 .2rem rgba(var(--color-accent-focus-shadow-rgb),.5)}.btn:disabled{opacity:.65;cursor:not-allowed;box-shadow:none!important}.btn--primary{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent);box-shadow:var(--shadow-btn-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-active);box-shadow:none}.btn--primary:active:not(:disabled){background-color:var(--color-accent-hover);border-color:#564db4}.btn--primary:focus-visible{box-shadow:0 0 0 .2rem rgba(var(--color-accent-focus-shadow-rgb),.5)}.btn--secondary{background-color:transparent;border-color:var(--color-accent);color:var(--color-accent)}.btn--secondary:hover:not(:disabled){background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn--secondary:active:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-active);color:#fff}.btn--flat{background-color:var(--color-accent-light);color:var(--color-accent);border-color:transparent}.btn--flat:hover:not(:disabled){background-color:var(--color-accent);color:#fff}.btn--flat:active:not(:disabled){background-color:var(--color-accent-hover);color:#fff}.btn--danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger);box-shadow:var(--shadow-btn-danger)}.btn--danger:hover:not(:disabled){background-color:#e64449;border-color:#cc3d41;box-shadow:none}.btn--danger:active:not(:disabled){background-color:#e64449;border-color:#b33639}.btn--danger-flat{background-color:var(--color-danger-bg);color:var(--color-danger);border-color:transparent}.btn--danger-flat:hover:not(:disabled){background-color:var(--color-danger);color:#fff}.btn--success{background-color:var(--color-success);color:#fff;border-color:var(--color-success);box-shadow:var(--shadow-btn-success)}.btn--success:hover:not(:disabled){background-color:#24b263;border-color:#1f9e58;box-shadow:none}.btn--ghost{background-color:transparent;color:var(--color-text-primary);border-color:transparent}.btn--ghost:hover:not(:disabled){background-color:var(--color-row-hover);color:var(--color-text-heading)}.btn--ghost:active:not(:disabled){background-color:#2f2b3d14}.btn--small{min-height:30px;padding:4px 12px;font-size:var(--font-size-body-small)}.btn--large{min-height:46px;padding:8px 20px;font-size:var(--font-size-body);border-radius:var(--radius-sm)}.btn--full-width{width:100%}.btn--icon{width:34px;height:34px;min-height:unset;padding:0;border-radius:var(--radius-xs);background:transparent;color:var(--color-text-muted);border:none}.btn--icon:hover:not(:disabled){background-color:var(--color-row-hover);color:var(--color-text-heading)}.btn--icon:active:not(:disabled){background-color:#2f2b3d1f}@media(max-width:768px){.btn{min-height:42px;padding:8px 16px}.btn--small{min-height:36px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-page);padding:var(--space-xl)}.login-page__container{width:100%;max-width:400px}.login-page__header{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-2xl);text-align:center}.login-page__logo-mark{width:52px;height:52px;border-radius:var(--radius-card);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:var(--font-weight-semibold);letter-spacing:-.02em;margin-bottom:var(--space-sm);box-shadow:0 4px 14px #4f46e540}.login-page__title{font-size:22px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading)}.login-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted)}.login-page__card{padding:var(--space-2xl)}.login-page__error{background-color:var(--color-danger-bg);color:var(--color-danger-text);border:1px solid rgba(220,38,38,.2);border-radius:var(--radius-input);padding:var(--space-md) var(--space-lg);font-size:var(--font-size-body);margin-bottom:var(--space-xl);line-height:1.5}.login-page__form{display:flex;flex-direction:column;gap:20px}.login-page__form .btn{margin-top:var(--space-sm)}@media(max-width:768px){.login-page{align-items:flex-start;padding-top:12vh;padding-left:var(--space-lg);padding-right:var(--space-lg)}.login-page__card{padding:var(--space-xl)}.login-page__title{font-size:20px}}.select-wrapper{display:flex;flex-direction:column;gap:0}.select-label{font-size:13px;font-weight:var(--font-weight-regular);color:var(--color-text-heading);margin-bottom:4px;line-height:1.375}.select-label--required:after{content:" *";color:var(--color-danger)}.select-field{height:38px;padding:6px 41px 6px 14px;font-family:var(--font-family);font-size:var(--font-size-body);line-height:1.625;color:var(--color-text-heading);background-color:transparent;border:1px solid var(--color-border-input);border-radius:var(--radius-input);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236d6b77' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:18px}.select-field:hover:not(:disabled):not(:focus){border-color:var(--color-border-prominent)}.select-field:focus{border-color:var(--color-accent);box-shadow:var(--shadow-input-focus);outline:none}.select-field:disabled{background-color:var(--color-bg-muted);color:var(--color-text-disabled);cursor:not-allowed;opacity:1}.select-field--error{border-color:var(--color-danger)}.select-field--error:focus{border-color:var(--color-danger);box-shadow:0 .125rem .375rem #ff4c514d}.select-error-message{font-size:var(--font-size-body-small);color:var(--color-danger);margin-top:4px}.select-field option[value=""]{color:var(--color-placeholder)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#2f2b3d80;z-index:var(--z-overlay);animation:overlay-in .2s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--z-modal);width:560px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background-color:var(--color-bg-surface);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);animation:modal-in .2s var(--easing);overflow:hidden;display:flex;flex-direction:column}.modal--lg{width:660px}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0}.modal__title{font-size:var(--font-size-card-title);font-weight:var(--font-weight-medium);color:var(--color-text-heading);margin:0}.modal__close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-xs)}.modal__close:hover{background-color:var(--color-row-hover);color:var(--color-text-heading)}.modal__body{padding:24px;color:var(--color-text-primary);font-size:var(--font-size-body);line-height:1.5;overflow-y:auto;flex:1;min-height:0}.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:0 24px 24px}.modal-form{display:flex;flex-direction:column;gap:var(--space-lg)}.modal-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.modal-form__row--full{display:grid;grid-template-columns:1fr}.modal-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-sm);font-size:var(--font-size-body-small)}@media(max-width:480px){.modal-form__row{grid-template-columns:1fr}.modal--lg{width:100%}}.panel{position:fixed;top:0;right:0;bottom:0;z-index:var(--z-panel);width:420px;max-width:100vw;background-color:var(--color-bg-surface);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;animation:panel-in .3s var(--easing)}@keyframes panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}.panel__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.panel__title{font-size:var(--font-size-card-title);font-weight:var(--font-weight-medium);color:var(--color-text-heading);margin:0}.panel__close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-xs)}.panel__close:hover{background-color:var(--color-row-hover);color:var(--color-text-heading)}.panel__body{flex:1;overflow-y:auto;padding:24px}.panel__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:16px 24px;border-top:1px solid var(--color-border);flex-shrink:0}.panel__form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.panel__form-row--full{grid-template-columns:1fr}.panel__section-title{font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-text-heading);text-transform:uppercase;letter-spacing:.2px;margin-top:var(--space-xl);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.panel__section-title:first-child{margin-top:0}@media(max-width:768px){.panel{width:100vw}}.toggle{position:relative;display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle__track{width:32px;height:20px;border-radius:4px;background-color:#2f2b3d1f;transition:background-color var(--transition-fast);position:relative;flex-shrink:0;border:none;padding:0;cursor:pointer;outline:none}.toggle__thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:2px;background-color:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--transition-fast)}.toggle__track--on{background-color:var(--color-accent)}.toggle__track--on .toggle__thumb{transform:translate(12px)}.toggle__track:focus-visible{box-shadow:0 0 0 3px var(--color-accent-ring)}.toggle__track:disabled{opacity:.5;cursor:not-allowed}.toggle__label{font-size:var(--font-size-body);color:var(--color-text-primary)}.checkbox{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox__input{width:18px;height:18px;border:2px solid var(--color-gray-400);border-radius:var(--radius-xs);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:all var(--transition-fast);position:relative;flex-shrink:0;background-color:var(--color-bg-surface)}.checkbox__input:checked{background-color:var(--color-accent);border-color:var(--color-accent)}.checkbox__input:checked:after{content:"";position:absolute;top:2px;left:5px;width:5px;height:9px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox__input:focus-visible{box-shadow:0 0 0 3px var(--color-accent-ring)}.checkbox__input:disabled{opacity:.5;cursor:not-allowed}.checkbox__label{font-size:var(--font-size-body);color:var(--color-text-primary)}.radio{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.radio__input{width:18px;height:18px;border:2px solid var(--color-gray-400);border-radius:50%;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:all var(--transition-fast);position:relative;flex-shrink:0;background-color:var(--color-bg-surface)}.radio__input:checked{border-color:var(--color-accent);border-width:5px}.radio__input:focus-visible{box-shadow:0 0 0 3px var(--color-accent-ring)}.radio__input:disabled{opacity:.5;cursor:not-allowed}.radio__label{font-size:var(--font-size-body);color:var(--color-text-primary)}.tooltip-wrapper{position:relative;display:inline-flex;align-items:center}.tooltip-content{position:absolute;z-index:var(--z-toast);bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:5px 10px;background-color:#2f2b3d;color:#fff;font-size:12px;font-weight:var(--font-weight-regular);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #4b465c33;opacity:0;visibility:hidden;transition:opacity .15s var(--easing),visibility .15s var(--easing)}.tooltip-wrapper:hover>.tooltip-content{opacity:1;visibility:visible;animation:tooltip-in .15s var(--easing)}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.table-wrapper{overflow:hidden}.table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--font-size-body);color:var(--color-text-primary)}.table th{padding:12px 16px;font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-text-heading);text-transform:uppercase;letter-spacing:.2px;line-height:1.375;border-bottom:1px solid var(--color-border);background-color:var(--color-neutral-bg);text-align:left}.table-header-cell--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.table-header-cell--sortable:hover,.table-header-cell--active{color:var(--color-accent)}.table-header-cell__content{display:inline-flex;align-items:center;gap:4px}.table-sort-icon{font-size:10px;line-height:1;opacity:.35;transition:opacity var(--transition-fast)}.table-header-cell--active .table-sort-icon{opacity:1}.table-header-cell--sortable:hover .table-sort-icon{opacity:.7}.table td{padding:10px 16px;font-size:var(--font-size-body);color:var(--color-text-primary);border-bottom:1px solid var(--color-border);vertical-align:middle;line-height:1.375}.table tbody tr:last-child td{border-bottom:none}.table--hoverable tbody tr{transition:background-color var(--transition-fast)}.table--hoverable tbody tr:hover{background-color:var(--color-row-hover)}.table__cell--link{color:var(--color-accent);font-weight:var(--font-weight-medium);cursor:pointer}.table__cell--link:hover{text-decoration:underline;color:var(--color-accent-hover)}.table__actions{display:flex;align-items:center;gap:var(--space-xs)}.table-empty__cell{text-align:center;padding:48px 24px;color:var(--color-text-muted);font-size:var(--font-size-body);border-bottom:none}.col-name{width:auto}.col-shrink{width:120px;white-space:nowrap}.col-numeric{text-align:right;font-variant-numeric:tabular-nums}.col-actions{width:100px;white-space:nowrap;text-align:right}.table--compact th{padding:10px 12px}.table--compact td{padding:8px 12px}@media(max-width:768px){.table th,.table td{padding:10px 12px}.table th{font-size:12px}.table-cell--hide-mobile{display:none}}.pricing-page{max-width:var(--content-max-width);margin:0 auto}.pricing-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0 0 var(--space-2xl)}.pricing-page__loading{padding:var(--space-3xl);text-align:center;color:var(--color-text-muted)}.pricing-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.pricing-section{margin-bottom:var(--space-2xl)}.pricing-section__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-md)}.pricing-section__title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.pricing-price{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.pricing-currency{font-weight:var(--font-weight-regular);color:var(--color-text-muted);font-size:var(--font-size-small);margin-left:2px}.pricing-col--muted{color:var(--color-text-secondary)}.pricing-sessions{font-weight:var(--font-weight-semibold);font-size:15px}.pricing-sessions__label{font-weight:var(--font-weight-regular);font-size:var(--font-size-body);color:var(--color-text-muted)}.pricing-row--inactive{opacity:.45}.pricing-actions{display:flex;align-items:center;gap:var(--space-sm);justify-content:flex-end;white-space:nowrap}.pricing-actions__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);padding:0;flex-shrink:0}.pricing-actions__icon-btn:hover{background-color:var(--color-neutral-bg);color:var(--color-text-primary)}.pricing-actions__icon-btn:active{background-color:var(--color-border-subtle)}.pricing-actions__icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.pricing-empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.pricing-cards{display:flex;flex-direction:column;background-color:var(--color-bg-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.card.pricing-card{border-radius:0;box-shadow:none;padding:var(--card-padding);transition:opacity var(--transition-fast)}.card.pricing-card+.card.pricing-card{border-top:1px solid var(--color-border)}.card.pricing-card--inactive{opacity:.45}.pricing-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.pricing-card__name{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);line-height:1.3;flex:1;min-width:0}.pricing-card__details{display:flex;flex-direction:column;gap:4px}.pricing-card__row{display:flex;justify-content:space-between;align-items:center}.pricing-card__label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.pricing-card__value{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.pricing-card__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.pricing-form{display:flex;flex-direction:column;gap:var(--space-lg)}.pricing-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:480px){.pricing-form__row{grid-template-columns:1fr}}.pricing-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;font-size:var(--font-size-small)}.pricing-form__checkbox{display:flex;align-items:center}.pricing-form__checkbox-label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-body);color:var(--color-text-primary);cursor:pointer}.pricing-form__checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.pricing-form__actions{padding-top:var(--space-xs)}.pagination-wrapper{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);margin-top:var(--space-xl)}.pagination{display:flex;align-items:center;gap:6px}.pagination__item{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid transparent;border-radius:6px;background-color:var(--color-gray-75);color:var(--color-text-heading);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);font-family:inherit;cursor:pointer;transition:all var(--transition-fast);padding:0;line-height:1}.pagination__item:hover:not(:disabled):not(.pagination__item--active){background-color:var(--color-gray-100);color:var(--color-text-emphasis)}.pagination__item--active{background-color:var(--color-accent);color:#fff;box-shadow:0 2px 4px #7367f066;cursor:default}.pagination__item:disabled{background-color:var(--color-gray-75);color:var(--color-text-disabled);cursor:not-allowed;opacity:.5}.pagination__item--nav{background-color:var(--color-gray-75)}.pagination__ellipsis{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:var(--color-text-muted);font-size:var(--font-size-body);-webkit-user-select:none;user-select:none}.pagination__info{font-size:var(--font-size-small);color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.pagination__item:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.pagination__item--active:focus-visible{box-shadow:0 2px 4px #7367f066,0 0 0 3px var(--color-accent-ring)}@media(max-width:480px){.pagination-wrapper{flex-direction:column;gap:var(--space-sm)}.pagination__item{width:34px;height:34px;font-size:13px}.pagination__ellipsis{width:34px;height:34px}.pagination{gap:4px}}.clients-page{max-width:var(--content-max-width);margin:0 auto}.clients-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.clients-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.clients-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.clients-data--fetching{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.clients-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.clients-toolbar{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.clients-toolbar__search{flex:1;min-width:200px;max-width:320px}.clients-toolbar__filters{display:flex;gap:var(--space-sm)}.clients-toolbar__filter{min-width:140px}.clients-search-wrapper{position:relative}.clients-search-wrapper__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;z-index:1}.clients-search-wrapper .input-field{padding-left:36px}@media(max-width:768px){.clients-page__header{flex-direction:column;gap:var(--space-md)}.clients-page__header .btn{width:100%}.clients-toolbar{flex-direction:column;align-items:stretch}.clients-toolbar__search{min-width:unset;max-width:none}.clients-toolbar__filters{display:flex;gap:var(--space-md)}.clients-toolbar__filter{flex:1;min-width:0}}.clients-row--clickable{cursor:pointer}.clients-row--inactive{opacity:.45}.clients-name__link{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-fast);line-height:1.3}.clients-name__link:hover{color:var(--color-accent)}.clients-col--muted{color:var(--color-text-secondary)}.clients-actions{display:flex;align-items:center;gap:var(--space-sm);justify-content:flex-end;white-space:nowrap}.clients-actions__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);padding:0;flex-shrink:0}.clients-actions__icon-btn:hover{background-color:var(--color-neutral-bg);color:var(--color-text-primary)}.clients-actions__icon-btn:active{background-color:var(--color-border-subtle)}.clients-actions__icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.clients-empty{padding:var(--space-3xl) var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.clients-cards{display:flex;flex-direction:column;gap:var(--space-lg)}.clients-card{transition:opacity var(--transition-fast);cursor:pointer;border-left:3px solid var(--color-accent)}.clients-card--inactive{opacity:.45}.clients-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.clients-card__name{font-size:15px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:1.3;flex:1;min-width:0}.clients-card__details{display:flex;flex-direction:column;gap:var(--space-sm)}.clients-card__row{display:flex;justify-content:space-between;align-items:center}.clients-card__label{font-size:var(--font-size-body-small);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.clients-card__value{font-size:var(--font-size-body);color:var(--color-text-secondary);font-weight:var(--font-weight-regular)}.clients-card__actions{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-subtle)}.clients-form{display:flex;flex-direction:column;gap:var(--space-lg)}.clients-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.clients-form__row--full{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(max-width:480px){.clients-form__row{grid-template-columns:1fr}}.clients-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;font-size:var(--font-size-small)}.clients-form__actions{padding-top:var(--space-xs)}.confirm-dialog__message{margin:0;color:var(--color-text-primary);font-size:var(--font-size-body);line-height:1.6;white-space:pre-line}.billing-tab{display:flex;flex-direction:column;gap:var(--space-lg)}.billing-tab__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body)}.billing-tab__empty{color:var(--color-text-muted);font-size:var(--font-size-body);text-align:center;padding:var(--space-2xl) 0;margin:0}.billing-tab__pro-bono-message{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xl);color:var(--color-info-text);font-size:var(--font-size-body)}.billing-tab__pro-bono-message p{margin:0}.billing-tab__billings{display:flex;flex-direction:column;gap:var(--space-md)}.billing-tab__billing-card{overflow:hidden}.billing-tab__billing-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.billing-tab__billing-header:hover{background:var(--color-bg-subtle)}.billing-tab__billing-expand{display:flex;align-items:center;color:var(--color-text-muted);flex-shrink:0}.billing-tab__billing-period{font-weight:var(--font-weight-medium);color:var(--color-text-heading);min-width:140px}.billing-tab__billing-amount{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-heading);margin-left:auto;margin-right:var(--space-md);white-space:nowrap}.billing-tab__remaining-hint{font-size:var(--font-size-body-small);font-weight:var(--font-weight-regular);color:var(--color-warning);margin-left:var(--space-xs)}.billing-tab__billing-badges{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.billing-tab__paid-badge-wrapper{position:relative;display:inline-flex}.billing-tab__void-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);background:var(--color-danger);color:#fff;border:none;border-radius:var(--radius-badge);font-size:var(--font-size-badge);font-weight:var(--font-weight-medium);cursor:pointer;opacity:0;transition:opacity var(--transition-fast);white-space:nowrap;padding:0 var(--space-sm)}.billing-tab__paid-badge-wrapper:hover .billing-tab__void-badge{opacity:1}.billing-tab__billing-actions{display:flex;align-items:center;gap:var(--space-sm);margin-left:var(--space-sm);flex-shrink:0}.billing-tab__invoice-checkbox{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-body-small);color:var(--color-text-primary);cursor:pointer;white-space:nowrap}.billing-tab__invoice-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.billing-tab__billing-details{border-top:1px solid var(--color-border-subtle);padding:var(--space-md) var(--space-lg);background:var(--color-bg-subtle)}.billing-tab__appointment-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) 0;font-size:var(--font-size-body-small);color:var(--color-text-primary)}.billing-tab__appt-date{min-width:55px;font-variant-numeric:tabular-nums;color:var(--color-text-heading);font-weight:var(--font-weight-medium)}.billing-tab__appt-time{min-width:40px;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.billing-tab__appt-client{min-width:100px;font-weight:var(--font-weight-medium);color:var(--color-text-heading)}.billing-tab__appt-service{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.billing-tab__line-items{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px dashed var(--color-border-subtle)}.billing-tab__line-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) 0;font-size:var(--font-size-body-small)}.billing-tab__line-formula{color:var(--color-text-muted)}.billing-tab__line-amount{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;color:var(--color-text-heading)}.billing-tab__invoice-bar{display:flex;justify-content:flex-end;padding:var(--space-md) 0}@media(max-width:768px){.billing-tab__billing-header{flex-wrap:wrap;padding:var(--space-sm) var(--space-md)}.billing-tab__billing-period{min-width:auto;font-size:var(--font-size-body-small)}.billing-tab__billing-amount{font-size:var(--font-size-body-small)}.billing-tab__billing-actions{margin-left:0;flex-wrap:wrap}.billing-tab__appointment-row{flex-wrap:wrap;gap:var(--space-xs)}.billing-tab__appt-date,.billing-tab__appt-time{min-width:auto}}.payments-tab{display:flex;flex-direction:column;gap:var(--space-xl)}.payments-tab__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body)}.payments-tab__section-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0 0 var(--space-lg)}.payments-tab__empty{color:var(--color-text-muted);font-size:var(--font-size-body);text-align:center;padding:var(--space-2xl) 0;margin:0}.payments-tab__summary-bar{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-md) var(--space-lg);background:var(--color-bg-subtle);border-radius:var(--radius-card)}.payments-tab__summary-item{display:flex;align-items:center;gap:var(--space-xs)}.payments-tab__summary-label{font-size:var(--font-size-body);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.payments-tab__summary-value{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-heading)}.payments-tab__summary-value--paid{color:var(--color-success)}.payments-tab__summary-bar>.button{margin-left:auto}.payments-tab__table{width:100%;border-collapse:collapse;font-size:var(--font-size-body)}.payments-tab__table th{text-align:left;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body-small);text-transform:uppercase;letter-spacing:.04em}.payments-tab__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary)}.payments-tab__table tr:last-child td{border-bottom:none}.payments-tab__description{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payments-tab__tx-amount{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.payments-tab__tx-amount--debit{color:var(--color-danger)}.payments-tab__tx-amount--credit{color:var(--color-success)}.payments-tab__pagination{display:flex;justify-content:center;padding:var(--space-md) 0}@media(max-width:768px){.payments-tab__summary-bar{flex-wrap:wrap;gap:var(--space-md);padding:var(--space-sm) var(--space-md)}.payments-tab__summary-bar>.button{margin-left:0;width:100%}.payments-tab__table{font-size:var(--font-size-body-small)}.payments-tab__table th,.payments-tab__table td{padding:var(--space-xs) var(--space-sm)}.payments-tab__table th:nth-child(3),.payments-tab__table td:nth-child(3){display:none}.payments-tab__void-label{display:none}}.invoices-tab{display:flex;flex-direction:column;gap:var(--space-xl)}.invoices-tab__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body)}.invoices-tab__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.invoices-tab__title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.invoices-tab__empty{color:var(--color-text-muted);font-size:var(--font-size-body);text-align:center;padding:var(--space-2xl) 0;margin:0}.invoices-tab__table{width:100%;border-collapse:collapse;font-size:var(--font-size-body)}.invoices-tab__table th{text-align:left;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body-small);text-transform:uppercase;letter-spacing:.04em}.invoices-tab__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary)}.invoices-tab__table tr:last-child td{border-bottom:none}.invoices-tab__number{font-weight:var(--font-weight-semibold);color:var(--color-accent)}.invoices-tab__amount{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.invoices-tab__issue-body{display:flex;flex-direction:column;gap:var(--space-sm)}.invoices-tab__issue-label{font-size:var(--font-size-body);color:var(--color-text-heading);margin:0 0 var(--space-sm);font-weight:var(--font-weight-medium)}.invoices-tab__issue-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-subtle);border-radius:var(--radius-button);cursor:pointer;font-size:var(--font-size-body);transition:background var(--transition-fast)}.invoices-tab__issue-item:hover{background:var(--color-bg-subtle)}.invoices-tab__issue-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.invoices-tab__issue-item span{flex:1;color:var(--color-text-primary)}.invoices-tab__issue-item strong{font-variant-numeric:tabular-nums;color:var(--color-text-heading)}.invoices-tab__issue-total{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border-subtle);font-size:var(--font-size-body);color:var(--color-text-heading)}.invoices-tab__issue-total strong{font-variant-numeric:tabular-nums}.invoices-tab__row-actions{display:flex;gap:var(--space-xs)}@media(max-width:768px){.invoices-tab__table{font-size:var(--font-size-body-small)}.invoices-tab__table th,.invoices-tab__table td{padding:var(--space-xs) var(--space-sm)}}.schedule-tab{display:flex;flex-direction:column;gap:var(--space-xl)}.schedule-tab__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body)}.schedule-tab__header{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-lg)}.schedule-tab__title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.schedule-tab__subtitle{font-size:var(--font-size-body-small);color:var(--color-text-muted)}.schedule-tab__empty{color:var(--color-text-muted);font-size:var(--font-size-body);text-align:center;padding:var(--space-2xl) 0;margin:0}.schedule-tab__table{width:100%;border-collapse:collapse;font-size:var(--font-size-body)}.schedule-tab__table th{text-align:left;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body-small);text-transform:uppercase;letter-spacing:.04em}.schedule-tab__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary)}.schedule-tab__table tr:last-child td{border-bottom:none}.schedule-tab__table tbody tr{transition:background var(--transition-fast)}.schedule-tab__table tbody tr:hover{background:var(--color-bg-subtle)}td.schedule-tab__date{font-weight:600;color:#00bad1;white-space:nowrap}td.schedule-tab__time{font-weight:600;color:#7367f0;font-variant-numeric:tabular-nums}td.schedule-tab__client{font-weight:500;color:#444050}td.schedule-tab__therapist{color:#a5a2ad}@media(max-width:768px){.schedule-tab__table{font-size:var(--font-size-body-small)}.schedule-tab__table th,.schedule-tab__table td{padding:var(--space-xs) var(--space-sm)}}.client-detail{max-width:var(--content-max-width);margin:0 auto}.client-detail__loading{padding:var(--space-3xl);text-align:center;color:var(--color-text-muted)}.client-detail__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.client-detail__back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted);text-decoration:none;margin-bottom:var(--space-lg);cursor:pointer;background:none;border:none;padding:2px 0;transition:color var(--transition-fast)}.client-detail__back:hover{color:var(--color-accent)}.client-profile__top{display:flex;align-items:flex-start;gap:var(--space-xl);padding:var(--card-padding)}.client-profile__avatar{width:80px;height:80px;border-radius:var(--radius-avatar);background:linear-gradient(135deg,rgba(115,103,240,.85),var(--color-accent));color:#fff;font-size:28px;font-weight:var(--font-weight-semibold);display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:1px}.client-profile__info{flex:1;min-width:0}.client-profile__name-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.client-profile__name{font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);color:var(--color-text-emphasis);margin:0;line-height:var(--line-height-heading)}.client-profile__details{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-sm) var(--space-2xl);margin:0}.client-profile__detail{display:flex;align-items:baseline;gap:var(--space-sm);font-size:var(--font-size-body-small);line-height:var(--line-height-body)}.client-profile__detail dt{color:var(--color-text-heading);font-weight:var(--font-weight-semibold);white-space:nowrap}.client-profile__detail dt:after{content:":"}.client-profile__detail dd{color:var(--color-text-primary);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis}.client-profile__actions{display:flex;gap:var(--space-sm);flex-shrink:0}.client-profile__divider{border:none;border-top:1px solid var(--color-border-subtle);margin:0}.client-profile__stats{display:grid;grid-template-columns:repeat(4,1fr);padding:var(--space-lg) 0}.client-profile__stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-xs) var(--space-md);border-right:1px solid var(--color-border-subtle)}.client-profile__stat:last-child{border-right:none}.client-profile__stat-value{font-size:var(--font-size-stat);font-weight:var(--font-weight-semibold);color:var(--color-text-emphasis);line-height:1.2;font-variant-numeric:tabular-nums}.client-profile__stat-label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-medium)}.client-detail__tabs{display:flex;gap:0;margin-top:var(--space-xl);margin-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.client-detail__tab{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.client-detail__tab:hover{color:var(--color-accent);border-bottom-color:var(--color-accent-lighter)}.client-detail__tab--active,.client-detail__tab--active:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.client-detail__tab-icon{width:18px;height:18px}.client-detail__placeholder{padding:var(--space-3xl) 0;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.client-detail__group-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background-color:var(--color-info-bg);color:var(--color-info-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-lg)}.client-detail__group-link{color:var(--color-accent);font-weight:var(--font-weight-medium);text-decoration:none;white-space:nowrap}.client-detail__group-link:hover{text-decoration:underline}.client-profile__group-link{color:var(--color-accent);font-weight:var(--font-weight-medium);text-decoration:none}.client-profile__group-link:hover{text-decoration:underline}.client-detail__billing-type-hint{margin:var(--space-xs) 0 0;font-size:var(--font-size-small);color:var(--color-warning-text);line-height:var(--line-height-body)}@media(max-width:768px){.client-profile__top{flex-direction:column;align-items:center;text-align:center}.client-profile__name-row{justify-content:center;flex-wrap:wrap}.client-profile__meta{justify-content:center}.client-profile__actions{justify-content:center;width:100%}.client-profile__details{grid-template-columns:1fr}.client-profile__stats{grid-template-columns:repeat(2,1fr)}.client-profile__stat:nth-child(2){border-right:none}.client-detail__group-banner{flex-direction:column;text-align:center}}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:0 0 var(--space-lg);flex-wrap:wrap}.cal-toolbar__left{display:flex;align-items:center;gap:var(--space-sm)}.cal-toolbar__nav{display:flex;align-items:center;gap:2px}.cal-toolbar__nav-btn,.cal-toolbar__today-btn{height:34px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);line-height:1;font-family:inherit}.cal-toolbar__nav-btn{width:34px;border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}.cal-toolbar__nav-btn:hover{background-color:var(--color-bg-hover);color:var(--color-accent);border-color:var(--color-accent)}.cal-toolbar__today-btn{padding:0 12px;font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-accent);background:transparent;border:1px solid var(--color-accent);white-space:nowrap}.cal-toolbar__today-btn:hover{background-color:var(--color-accent-lighter)}.cal-toolbar__date-range{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-emphasis);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs);transition:background-color var(--transition-fast);line-height:1;font-family:inherit}.cal-toolbar__date-range:hover{background-color:var(--color-bg-hover)}.cal-toolbar__right{display:flex;align-items:center;gap:var(--space-sm)}.cal-toolbar__view-switcher{display:flex;align-items:center;background:var(--color-bg-muted);border-radius:var(--radius-sm);padding:3px;gap:2px}.cal-toolbar__view-btn{padding:5px 14px;font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-text-primary);background:transparent;border:none;border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;line-height:1;font-family:inherit}.cal-toolbar__view-btn:hover{background-color:var(--color-accent-lighter);color:var(--color-accent)}.cal-toolbar__view-btn--active{background-color:var(--color-accent);color:#fff;box-shadow:var(--shadow-btn-primary)}.cal-toolbar__view-btn--active:hover{background-color:var(--color-accent);color:#fff}@media(max-width:768px){.cal-toolbar{flex-direction:column;align-items:stretch;gap:var(--space-sm);padding:0 0 var(--space-md)}.cal-toolbar__left{justify-content:flex-start}.cal-toolbar__right{justify-content:flex-start;flex-wrap:wrap}.cal-toolbar__date-range{font-size:15px}.cal-toolbar__copy-label{display:none}}.cal-event{position:relative;height:100%;border:1px solid rgba(0,0,0,.08);border-left:3px solid;border-radius:var(--radius-xs);padding:1px 4px;overflow:hidden;cursor:pointer;line-height:1.2}.cal-event__content{display:flex;align-items:center;gap:4px;min-width:0}.cal-event__title{font-size:12px;font-weight:var(--font-weight-medium);color:var(--color-text-emphasis);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event__therapist{font-size:10px;color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}.cal-event__note-icon{line-height:0;flex-shrink:0}.cal-event__actions{display:none;position:absolute;top:0;right:0;bottom:0;align-items:center;background:var(--color-bg-surface);border-radius:var(--radius-xs);box-shadow:var(--shadow-sm);padding:0 4px;gap:2px;z-index:10}.cal-event:hover .cal-event__actions{display:flex}.cal-event:hover .cal-event__note-icon{display:none}.cal-event__action-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-xs);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.cal-event__action-btn--note:hover{color:var(--color-info);background-color:#00bad11f}.cal-event__action-btn--add:hover{color:var(--color-success);background-color:#28c76f1f}.cal-event__action-btn--edit:hover{color:var(--color-accent);background-color:var(--color-bg-hover)}.cal-event__lock-icon{color:var(--color-text-secondary);line-height:0;flex-shrink:0}@media(max-width:768px){.cal-event__actions{display:none!important}.cal-event:hover .cal-event__note-icon{display:inline}}.alert{display:flex;align-items:flex-start;gap:var(--space-sm);padding:11px 15px;font-size:var(--font-size-body);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);line-height:var(--line-height-body);position:relative}.alert__icon{flex-shrink:0;width:20px;height:20px;margin-top:1px}.alert__content{flex:1;min-width:0}.alert__close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-xs);color:inherit;opacity:.7;padding:0;margin-left:auto}.alert__close:hover{opacity:1}.alert--basic.alert--primary{background-color:var(--color-alert-primary-bg);color:var(--color-alert-primary-text);border:1px solid var(--color-alert-primary-bg)}.alert--basic.alert--success{background-color:var(--color-alert-success-bg);color:var(--color-alert-success-text);border:1px solid var(--color-alert-success-bg)}.alert--basic.alert--danger{background-color:var(--color-alert-danger-bg);color:var(--color-alert-danger-text);border:1px solid var(--color-alert-danger-bg)}.alert--basic.alert--warning{background-color:var(--color-alert-warning-bg);color:var(--color-alert-warning-text);border:1px solid var(--color-alert-warning-bg)}.alert--basic.alert--info{background-color:var(--color-alert-info-bg);color:var(--color-alert-info-text);border:1px solid var(--color-alert-info-bg)}.alert--solid.alert--primary{background-color:var(--color-accent);color:#fff;border:1px solid var(--color-accent)}.alert--solid.alert--success{background-color:var(--color-success);color:#fff;border:1px solid var(--color-success)}.alert--solid.alert--danger{background-color:var(--color-danger);color:#fff;border:1px solid var(--color-danger)}.alert--solid.alert--warning{background-color:var(--color-warning);color:#fff;border:1px solid var(--color-warning)}.alert--solid.alert--info{background-color:var(--color-info);color:#fff;border:1px solid var(--color-info)}.alert--outline.alert--primary{background-color:transparent;color:var(--color-alert-primary-text);border:1px solid var(--color-accent)}.alert--outline.alert--success{background-color:transparent;color:var(--color-alert-success-text);border:1px solid var(--color-success)}.alert--outline.alert--danger{background-color:transparent;color:var(--color-alert-danger-text);border:1px solid var(--color-danger)}.alert--outline.alert--warning{background-color:transparent;color:var(--color-alert-warning-text);border:1px solid var(--color-warning)}.alert--outline.alert--info{background-color:transparent;color:var(--color-alert-info-text);border:1px solid var(--color-info)}.client-select{position:relative}.client-select__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-body);font-family:var(--font-family);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast);min-height:40px;text-align:left}.client-select__trigger:hover{border-color:var(--color-accent)}.client-select__trigger:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #7367f01a}.client-select__trigger--error{border-color:var(--color-danger)}.client-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-select__trigger:not(:has(.client-select__clear)) .client-select__value{color:var(--color-text-secondary)}.client-select__trigger:has(.client-select__clear) .client-select__value{color:var(--color-text-primary)}.client-select__chevron{flex-shrink:0;color:var(--color-text-secondary)}.client-select__clear{flex-shrink:0;color:var(--color-text-secondary);border-radius:var(--radius-xs);padding:2px;transition:color var(--transition-fast)}.client-select__clear:hover{color:var(--color-danger)}.client-select__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-dropdown);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-dropdown);display:flex;flex-direction:column}.client-select__search{position:relative;padding:var(--space-sm);border-bottom:1px solid var(--color-border)}.client-select__search-icon{position:absolute;left:20px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.client-select__search-input{width:100%;padding:6px 8px 6px 30px;font-size:var(--font-size-body-small);font-family:var(--font-family);color:var(--color-text-primary);background:var(--color-bg-muted);border:1px solid transparent;border-radius:var(--radius-xs);outline:none;transition:border-color var(--transition-fast)}.client-select__search-input:focus{border-color:var(--color-accent);background:var(--color-bg-surface)}.client-select__filter-toggle{display:block;width:100%;padding:6px var(--space-md);font-size:var(--font-size-body-small);font-family:var(--font-family);color:var(--color-accent);background:transparent;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.client-select__filter-toggle:hover{background-color:var(--color-bg-hover)}.client-select__list{max-height:240px;overflow-y:auto}.client-select__empty{padding:var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-body-small);text-align:center}.client-select__option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;background:transparent;cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.client-select__option:hover{background-color:var(--color-bg-hover)}.client-select__option--selected{background-color:var(--color-accent-lighter)}.client-select__option-info{display:flex;flex-direction:column;min-width:0}.client-select__option-name{font-size:var(--font-size-body);color:var(--color-text-emphasis);font-weight:var(--font-weight-medium)}.client-select__option-parent{font-size:var(--font-size-body-small);color:var(--color-text-secondary)}.client-select__option-stats{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.client-select__option-count{font-size:var(--font-size-body-small);color:var(--color-text-secondary)}.color-picker{display:flex;align-items:center;gap:var(--space-sm)}.color-picker__swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);outline:none}.color-picker__swatch:hover{transform:scale(1.15)}.color-picker__swatch--active{border-color:var(--color-text-emphasis);box-shadow:0 0 0 2px var(--color-bg-surface),0 0 0 4px var(--color-text-secondary)}.appt-form{display:flex;flex-direction:column;gap:var(--space-lg)}.appt-form__type-toggle{display:flex;align-items:center;background:var(--color-bg-muted);border-radius:var(--radius-sm);padding:3px;gap:2px}.appt-form__type-btn{flex:1;padding:8px 12px;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-primary);background:transparent;border:none;border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast);text-align:center}.appt-form__type-btn:hover{background-color:var(--color-accent-lighter);color:var(--color-accent)}.appt-form__type-btn--active{background-color:var(--color-accent);color:#fff;box-shadow:var(--shadow-btn-primary)}.appt-form__type-btn--active:hover{background-color:var(--color-accent);color:#fff}.appt-form__textarea{resize:vertical;min-height:72px;font-family:var(--font-family)}.appt-form__color-section{display:flex;flex-direction:column;gap:var(--space-sm)}.appt-form__duration-hint{display:flex;align-items:center;font-size:var(--font-size-caption);color:var(--color-text-muted);padding-top:26px}.appt-form__footer{justify-content:space-between!important}.appt-form__footer-right{display:flex;align-items:center;gap:var(--space-sm);margin-left:auto}.appt-form__delete-btn{margin-right:auto}.appt-form__confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2f2b3d80;display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-panel) + 1)}.appt-form__confirm-dialog{background:var(--color-bg-surface);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);padding:var(--card-padding);max-width:380px;width:90%}.appt-form__confirm-text{font-size:var(--font-size-body);color:var(--color-text-heading);margin-bottom:var(--space-xl);line-height:var(--line-height-body)}.appt-form__confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.unscheduled-panel{background:var(--color-warning-bg);border-left:4px solid var(--color-warning);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);overflow:hidden}.unscheduled-panel__header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md) var(--space-lg);border:none;background:transparent;cursor:pointer;color:var(--color-warning-text);font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}.unscheduled-panel__header:hover{background:#ff9f4314}.unscheduled-panel__header-left{display:flex;align-items:center;gap:var(--space-sm)}.unscheduled-panel__body{padding:0 var(--space-lg) var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.unscheduled-panel__row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-bg-surface);border-radius:var(--radius-xs)}.unscheduled-panel__client-info{display:flex;flex-direction:column;gap:1px}.unscheduled-panel__client-name{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-emphasis)}.unscheduled-panel__client-stats{font-size:var(--font-size-body-small);color:var(--color-text-secondary)}.unscheduled-panel__deficit{color:var(--color-danger);font-weight:var(--font-weight-medium);margin-left:var(--space-xs)}.unscheduled-panel__add-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;background:var(--color-accent);color:#fff;border-radius:var(--radius-xs);cursor:pointer;transition:background-color var(--transition-fast);box-shadow:var(--shadow-btn-primary)}.unscheduled-panel__add-btn:hover{background:var(--color-accent-hover)}@media(max-width:768px){.unscheduled-panel__row{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.unscheduled-panel__add-btn{align-self:flex-end}}.copy-week-form{display:flex;flex-direction:column;gap:var(--space-lg)}.copy-week-form__source{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-muted);border-radius:var(--radius-sm)}.copy-week-form__label{font-size:var(--font-size-body-small);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.copy-week-form__value{font-size:var(--font-size-body);color:var(--color-text-emphasis);font-weight:var(--font-weight-semibold)}.copy-week-form__warning{padding:var(--space-md);background:var(--color-danger-bg);border-radius:var(--radius-sm);border-left:4px solid var(--color-danger)}.copy-week-form__warning-text{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0 0 var(--space-sm) 0;line-height:1.6}.copy-week-form__warning-note{font-size:var(--font-size-body-small);color:var(--color-danger);font-weight:var(--font-weight-semibold);margin:0}.copy-week-form__error{font-size:var(--font-size-body-small);color:var(--color-danger);margin:0}:root{--fc-border-color: var(--color-border);--fc-page-bg-color: var(--color-bg-page);--fc-neutral-bg-color: var(--color-bg-muted);--fc-today-bg-color: rgba(115, 103, 240, .04);--fc-now-indicator-color: var(--color-accent);--fc-event-border-color: transparent;--fc-event-bg-color: var(--color-info-bg);--fc-event-text-color: var(--color-text-emphasis);--fc-small-font-size: var(--font-size-body-small)}.fc{font-family:var(--font-family)}.fc .fc-scrollgrid{border-color:var(--color-border)}.fc .fc-scrollgrid-section>td{border-color:var(--color-border)}.fc th{font-size:var(--font-size-body-small);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);text-transform:uppercase;letter-spacing:var(--letter-spacing-th);padding:10px 0;border-color:var(--color-border)}.fc td{border-color:var(--color-border)}.fc .fc-col-header-cell{background-color:var(--color-bg-muted)}.fc .fc-col-header-cell-cushion{color:var(--color-text-heading);text-decoration:none;padding:8px 4px}.fc .fc-timegrid-slot-label{font-size:12px;color:var(--color-text-secondary);vertical-align:top;padding-top:2px}.fc .fc-timegrid-slot{height:2.5em}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-now-indicator-line{border-color:var(--color-accent);border-width:2px 0 0 0}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--color-accent);border-width:5px 0 5px 8px}.fc .fc-timegrid-col-events{margin:0 3px}.fc .fc-timegrid-event-harness{margin-right:3px}.fc .fc-timegrid-event{border-radius:var(--radius-xs);border:none;box-shadow:none;cursor:pointer;transition:box-shadow var(--transition-fast);overflow:hidden;min-height:18px!important;top:3px!important;bottom:3px!important}.fc .fc-timegrid-event:hover{box-shadow:var(--shadow-sm)}.fc .fc-timegrid-event .fc-event-main{padding:0;overflow:hidden}.fc .fc-event,.fc .fc-h-event{border:none;background:transparent}.fc .fc-list{border-color:var(--color-border)}.fc .fc-list-day-cushion{background-color:var(--color-bg-muted)}.fc .fc-list-day-text,.fc .fc-list-day-side-text{color:var(--color-text-heading);font-weight:var(--font-weight-semibold);font-size:var(--font-size-body-small);text-decoration:none}.fc .fc-list-event td{border-color:var(--color-border);padding:10px 14px}.fc .fc-list-event:hover td{background-color:var(--color-bg-hover)}.fc .fc-list-event-dot{border-radius:50%}.fc .fc-list-event-title{color:var(--color-text-primary);font-size:var(--font-size-body)}.fc .fc-list-event-time{color:var(--color-text-secondary);font-size:var(--font-size-body-small)}.fc .fc-header-toolbar{display:none!important}.fc .fc-event-dragging{opacity:.85;box-shadow:var(--shadow-md)}.fc .fc-event-resizing{opacity:.85}@media(max-width:768px){.fc .fc-timegrid-slot{height:2em}.fc .fc-timegrid-slot-label{font-size:11px}.fc th{font-size:11px;padding:6px 0}}.schedule-page{display:flex;flex-direction:column;height:calc(100vh - var(--space-2xl) * 2);min-height:500px}.schedule-page__calendar{position:relative;flex:1;min-height:0;overflow:hidden}.schedule-page__loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:rgba(var(--body-bg-rgb, 30, 30, 46),.1);z-index:10;border-radius:var(--radius-lg)}@media(max-width:1024px){.schedule-page{height:calc(100vh - var(--space-xl) * 2)}}@media(max-width:768px){.schedule-page{height:calc(100vh - var(--space-lg) * 2 - var(--bottom-tabs-height))}}.drag-ghost{position:fixed;pointer-events:none;z-index:9999;padding:2px 8px;border-radius:var(--radius-xs);border-left:3px solid var(--color-accent);background:var(--color-accent-light);font-size:11px;font-weight:500;color:var(--color-text-emphasis);opacity:.9;box-shadow:var(--shadow-md);white-space:nowrap;transform:translate(8px,-50%)}.note-modal__content{white-space:pre-wrap;font-size:var(--font-size-body);color:var(--color-text-primary);line-height:1.6}.attendance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap}.attendance-toolbar__nav{display:flex;align-items:center;gap:var(--space-xs)}.attendance-toolbar__date{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin-left:var(--space-sm);text-transform:capitalize}.attendance-toolbar__summary{display:flex;align-items:center;gap:var(--space-lg);padding:8px 16px;background:var(--color-bg-muted);border-radius:var(--radius-sm)}.attendance-stat{display:flex;align-items:center;gap:6px}.attendance-stat+.attendance-stat{padding-left:var(--space-lg);border-left:1px solid var(--color-border)}.attendance-stat__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.attendance-stat__dot--success{background-color:var(--color-success)}.attendance-stat__dot--danger{background-color:var(--color-danger)}.attendance-stat__dot--warning{background-color:var(--color-warning)}.attendance-stat__value{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);line-height:1}.attendance-stat__label{font-size:var(--font-size-body-small);color:var(--color-text-secondary);line-height:1}@media(max-width:768px){.attendance-toolbar{flex-direction:column;align-items:stretch;gap:var(--space-md)}.attendance-toolbar__nav{justify-content:center}.attendance-toolbar__summary{justify-content:center;gap:var(--space-lg);flex-wrap:wrap}}.charge-popover-wrapper{position:relative;display:inline-flex}@keyframes popover-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.charge-popover{position:absolute;z-index:var(--z-dropdown);min-width:220px;background:var(--color-bg-surface);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);animation:popover-enter var(--transition-fast) ease-out}.charge-popover--below{top:calc(100% + 8px);left:50%;translate:-50% 0}.charge-popover--above{bottom:calc(100% + 8px);left:50%;translate:-50% 0}.charge-popover--above .charge-popover__arrow{top:auto;bottom:-4px;transform:translate(-50%) rotate(45deg);box-shadow:2px 2px 4px #2f2b3d14}.charge-popover__arrow{position:absolute;top:-4px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:var(--color-bg-surface);box-shadow:-2px -2px 4px #2f2b3d14}.charge-popover--above .charge-popover__arrow{background:var(--color-bg-surface)}.charge-popover__header{background:var(--color-bg-muted);color:var(--color-text-heading);font-size:var(--font-size-body-small);font-weight:var(--font-weight-semibold);padding:10px 18px;border-radius:7px 7px 0 0;border-bottom:1px solid var(--color-border)}.charge-popover__body{padding:14px 18px 16px}.charge-popover__options{display:flex;gap:8px}.charge-popover__option{flex:1;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 12px;font-family:var(--font-family);font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-text-primary);background:var(--color-bg-muted);border:none;border-radius:var(--radius-button);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.charge-popover__option:hover{background:var(--color-accent-light);color:var(--color-accent-text)}.charge-popover__option:active{transform:scale(.97)}@media(max-width:767px){.charge-popover{scroll-margin-bottom:80px}.charge-popover__option{min-height:var(--touch-min)}}.attendance-row--attended{box-shadow:inset 4px 0 0 var(--color-success)}.attendance-row--not-attended{box-shadow:inset 4px 0 0 var(--color-danger)}.attendance-row--pending{box-shadow:inset 4px 0 0 var(--color-border)}.attendance-row{transition:background-color var(--transition-fast)}.attendance-row:hover{background-color:var(--color-row-hover)}.attendance-row td{padding:14px var(--space-lg);vertical-align:middle;font-size:var(--font-size-body);color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.attendance-row td:first-child{padding-left:var(--space-xl)}.attendance-row__time{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);white-space:nowrap;width:60px}.attendance-row__client{font-weight:var(--font-weight-medium);color:var(--color-text-emphasis);white-space:nowrap}.attendance-row__client-link{color:var(--color-text-primary);text-decoration:none;font-weight:var(--font-weight-semibold);transition:color var(--transition-fast)}.attendance-row__client-link:hover{color:var(--color-accent)}.attendance-row__select{font-family:var(--font-family);font-size:var(--font-size-body-small);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-input);padding:4px 8px;width:100%;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.attendance-row__select:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-input-focus)}.attendance-row__status-buttons{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.attendance-row__status-buttons>:first-child .btn,.attendance-row__status-buttons>:first-child.btn{border-radius:calc(var(--radius-sm) - 1px) 0 0 calc(var(--radius-sm) - 1px)!important}.attendance-row__status-buttons>:last-child .btn,.attendance-row__status-buttons>:last-child.btn{border-radius:0 calc(var(--radius-sm) - 1px) calc(var(--radius-sm) - 1px) 0!important}.attendance-status-btn{font-size:var(--font-size-body-small)!important;padding:5px 12px!important;white-space:nowrap;border-radius:0!important;border:none!important;box-shadow:none!important;color:var(--color-text-secondary)!important;background:transparent!important;font-weight:var(--font-weight-medium)!important;transition:all var(--transition-fast)!important;position:relative}.attendance-status-btn+.attendance-status-btn:before,.attendance-status-btn+.charge-popover-wrapper .attendance-status-btn:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--color-border)}.attendance-status-btn:hover{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important}.attendance-status-btn--active-pending{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important;font-weight:var(--font-weight-semibold)!important}.attendance-status-btn--active-attended{color:var(--color-text-heading)!important;background:#28c76f14!important;font-weight:var(--font-weight-semibold)!important}.attendance-status-btn--active-not-attended{color:var(--color-text-heading)!important;background:#ff4c5114!important;font-weight:var(--font-weight-semibold)!important}.attendance-row__charge-buttons{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.attendance-charge-btn{font-size:var(--font-size-body-small)!important;padding:5px 10px!important;white-space:nowrap;border-radius:0!important;border:none!important;box-shadow:none!important;color:var(--color-text-secondary)!important;background:transparent!important;font-weight:var(--font-weight-medium)!important;transition:all var(--transition-fast)!important;position:relative}.attendance-charge-btn+.attendance-charge-btn:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--color-border)}.attendance-charge-btn:hover{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important}.attendance-charge-btn--active{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important;font-weight:var(--font-weight-semibold)!important}.attendance-row__reason-input{font-family:var(--font-family);font-size:var(--font-size-body-small);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-input);padding:4px 8px;width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.attendance-row__reason-input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-input-focus)}.attendance-row__reason-input::placeholder{color:var(--color-placeholder)}.attendance-row__field-wrap{display:flex;align-items:center;gap:6px}.attendance-row__field-wrap .attendance-row__select{flex:1;min-width:0}.attendance-row__field-spinner{flex-shrink:0}.attendance-card{background:var(--color-bg-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-lg);border-left:4px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-md)}.attendance-card--attended{border-left-color:var(--color-success)}.attendance-card--pending{border-left-color:var(--color-border)}.attendance-card--not-attended{border-left-color:var(--color-danger)}.attendance-card__header{display:flex;align-items:center;gap:var(--space-md)}.attendance-card__time{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading)}.attendance-card__client{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-emphasis)}.attendance-card__client-link{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-fast)}.attendance-card__client-link:hover{color:var(--color-accent)}.attendance-card__fields{display:flex;flex-direction:column;gap:var(--space-sm)}.attendance-card__field{display:flex;flex-direction:column;gap:2px}.attendance-card__label{font-size:var(--font-size-body-small);color:var(--color-text-secondary);font-weight:var(--font-weight-regular)}.attendance-card__select{font-family:var(--font-family);font-size:var(--font-size-body-small);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-input);padding:8px;min-height:var(--touch-min);width:100%;cursor:pointer}.attendance-card__select:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-input-focus)}.attendance-card__status-buttons{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.attendance-card__status-btn{flex:1;min-height:var(--touch-min)!important;font-size:var(--font-size-body-small)!important;justify-content:center;border-radius:0!important;border:none!important;box-shadow:none!important;color:var(--color-text-secondary)!important;background:transparent!important;font-weight:var(--font-weight-medium)!important;position:relative}.attendance-card__status-btn+.attendance-card__status-btn:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--color-border)}.attendance-card__status-btn:hover{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important}.attendance-card__status-btn--active-pending{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important;font-weight:var(--font-weight-semibold)!important}.attendance-card__status-btn--active-attended{color:var(--color-text-heading)!important;background:#28c76f14!important;font-weight:var(--font-weight-semibold)!important}.attendance-card__status-btn--active-not-attended{color:var(--color-text-heading)!important;background:#ff4c5114!important;font-weight:var(--font-weight-semibold)!important}.attendance-card__charge-picker{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);animation:charge-picker-enter var(--transition-fast) ease-out}@keyframes charge-picker-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.attendance-card__charge-picker-label{font-size:var(--font-size-body-small);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);white-space:nowrap}.attendance-card__charge-picker-options{display:flex;gap:var(--space-sm);flex:1}.attendance-card__charge-picker-options .attendance-card__charge-btn{background:var(--color-bg-surface)!important;color:var(--color-text-primary)!important;border:1px solid var(--color-border)!important}.attendance-card__charge-picker-options .attendance-card__charge-btn:active{background:var(--color-bg-muted)!important;color:var(--color-text-heading)!important}.attendance-card__charge-buttons{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.attendance-card__charge-btn{flex:1;min-height:var(--touch-min)!important;font-size:var(--font-size-body-small)!important;justify-content:center;border-radius:0!important;border:none!important;box-shadow:none!important;color:var(--color-text-secondary)!important;background:transparent!important;font-weight:var(--font-weight-medium)!important;position:relative}.attendance-card__charge-btn+.attendance-card__charge-btn:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--color-border)}.attendance-card__charge-btn:hover{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important}.attendance-card__charge-btn--active{color:var(--color-text-heading)!important;background:var(--color-bg-muted)!important;font-weight:var(--font-weight-semibold)!important}.attendance-card__reason-input{font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text-primary);background:var(--color-bg-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-input);padding:10px 12px;min-height:var(--touch-min);width:100%}.attendance-card__reason-input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-input-focus)}.attendance-card__reason-input::placeholder{color:var(--color-placeholder)}.attendance-card__field-wrap{display:flex;align-items:center;gap:6px}.attendance-card__field-wrap .attendance-card__select,.attendance-card__field-wrap .attendance-card__status-buttons{flex:1;min-width:0}.attendance-card__field-spinner{flex-shrink:0}.attendance-page{display:flex;flex-direction:column;gap:var(--gap-sections)}.attendance-page__header{display:flex;align-items:center;justify-content:space-between}.attendance-table-wrapper{overflow:visible}.attendance-table{width:100%;border-collapse:collapse;table-layout:fixed}.attendance-table th{padding:14px var(--space-lg);text-align:left;font-size:var(--font-size-th);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);letter-spacing:var(--letter-spacing-th);text-transform:uppercase;background:var(--color-bg-muted);border-bottom:2px solid var(--color-border);white-space:nowrap}.attendance-table th:first-child{padding-left:var(--space-xl)}.attendance-empty{text-align:center;color:var(--color-text-secondary);padding:var(--space-3xl) 0;font-size:var(--font-size-body)}.attendance-data--fetching{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.attendance-cards{display:flex;flex-direction:column;gap:var(--space-md)}@media(max-width:768px){.attendance-page{gap:var(--space-lg)}}.audit-page{max-width:var(--content-max-width);margin:0 auto}.audit-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.audit-page__title-group{display:flex;align-items:flex-start;gap:var(--space-md)}.audit-page__icon{color:var(--color-accent);margin-top:2px;flex-shrink:0}.audit-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.audit-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.audit-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.audit-data--fetching{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.audit-toolbar{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.audit-toolbar__search{flex:1;min-width:200px;max-width:320px}.audit-toolbar__filters{display:flex;align-items:center;gap:var(--space-md)}.audit-toolbar__filter{min-width:160px}.audit-toolbar__toggle{flex-shrink:0}.audit-toolbar__toggle-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;white-space:nowrap}.audit-toolbar__toggle-text{font-size:var(--font-size-small);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.audit-search-wrapper{position:relative}.audit-search-wrapper__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;z-index:1}.audit-search-wrapper .input-field{padding-left:36px}.audit-col--time{font-family:var(--font-mono, "SF Mono", "Fira Code", monospace);font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.audit-col--muted{color:var(--color-text-secondary);font-size:var(--font-size-small)}.audit-col--user{width:200px;color:var(--color-text-secondary);font-size:var(--font-size-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-col--action{width:180px;white-space:nowrap}.audit-col--entity{font-size:var(--font-size-small);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-actions{display:flex;align-items:center;justify-content:flex-end}.audit-actions__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);padding:0}.audit-actions__icon-btn:hover{background-color:var(--color-neutral-bg);color:var(--color-accent)}.audit-actions__icon-btn:active{background-color:var(--color-border-subtle)}.audit-actions__icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.audit-empty{padding:var(--space-3xl) var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.audit-cards{display:flex;flex-direction:column;gap:var(--space-md)}.audit-card{cursor:pointer;transition:opacity var(--transition-fast)}.audit-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.audit-card__time{font-family:var(--font-mono, "SF Mono", "Fira Code", monospace);font-size:13px;color:var(--color-text-secondary)}.audit-card__user{display:block;font-size:var(--font-size-small);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.audit-card__entity{display:block;font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:2px}.audit-detail{display:flex;flex-direction:column;gap:var(--space-lg)}.audit-detail__section{display:flex;flex-direction:column;gap:var(--space-md)}.audit-detail__section+.audit-detail__section{padding-top:var(--space-lg);border-top:1px solid var(--color-border-subtle)}.audit-detail__section-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.audit-detail__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-md)}.audit-detail__field{display:flex;flex-direction:column;gap:2px}.audit-detail__label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.audit-detail__value{font-size:var(--font-size-body);color:var(--color-text-primary);word-break:break-word}.audit-detail__value--mono{font-family:var(--font-mono, "SF Mono", "Fira Code", monospace);font-size:13px}.audit-detail__diff{display:flex;flex-direction:column;gap:var(--space-md)}.audit-detail__diff-block{display:flex;flex-direction:column;gap:var(--space-xs)}.audit-detail__diff-label{display:inline-block;font-size:11px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:4px;width:fit-content}.audit-detail__diff-label--before{background-color:var(--color-danger-bg);color:var(--color-danger-text)}.audit-detail__diff-label--after{background-color:var(--color-success-bg);color:var(--color-success-text)}.audit-detail__json{margin:0;padding:var(--space-md);background-color:var(--color-neutral-bg);border-radius:6px;font-family:var(--font-mono, "SF Mono", "Fira Code", monospace);font-size:12px;line-height:1.6;color:var(--color-text-primary);overflow-x:auto;max-height:300px;overflow-y:auto;white-space:pre}@media(max-width:768px){.audit-page__header{flex-direction:column;gap:var(--space-md)}.audit-toolbar{flex-direction:column;align-items:stretch}.audit-toolbar__search{min-width:unset;max-width:none}.audit-toolbar__filters{flex-wrap:wrap;gap:var(--space-sm)}.audit-toolbar__filter{flex:1;min-width:0}.audit-detail__grid{grid-template-columns:1fr 1fr}.audit-detail__json{font-size:11px;max-height:200px}}.users-page{max-width:var(--content-max-width);margin:0 auto}.users-page__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-2xl)}.users-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.users-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.users-row--inactive{opacity:.45}.users-actions{display:flex;align-items:center;gap:var(--space-sm);justify-content:flex-end;white-space:nowrap}.users-actions__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);padding:0;flex-shrink:0}.users-actions__icon-btn:hover{background-color:var(--color-neutral-bg);color:var(--color-text-primary)}.users-actions__icon-btn:active{background-color:var(--color-border-subtle)}.users-actions__icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.users-cards{display:flex;flex-direction:column;background-color:var(--color-bg-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.card.users-card{border-radius:0;box-shadow:none;padding:var(--card-padding);transition:opacity var(--transition-fast)}.card.users-card+.card.users-card{border-top:1px solid var(--color-border)}.card.users-card--inactive{opacity:.45}.users-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.users-card__name{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);line-height:1.3;flex:1;min-width:0}.users-card__details{display:flex;flex-direction:column;gap:4px}.users-card__row{display:flex;justify-content:space-between;align-items:center}.users-card__label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.users-card__value{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.users-card__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.users-form{display:flex;flex-direction:column;gap:var(--space-lg)}.users-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:480px){.users-form__row{grid-template-columns:1fr}}.users-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;font-size:var(--font-size-small)}.users-form__toggle-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0}.users-form__toggle-label{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.users-form__actions{padding-top:var(--space-xs)}.users-form__hint{font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:-8px}.groups-page{max-width:var(--content-max-width);margin:0 auto}.groups-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.groups-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.groups-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.groups-data--fetching{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.groups-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.groups-row--clickable{cursor:pointer}.groups-row--inactive{opacity:.45}.groups-col--muted{color:var(--color-text-secondary)}.groups-name{font-weight:var(--font-weight-medium)}.groups-balance--positive{color:var(--color-danger-text)}.groups-balance--negative{color:var(--color-success-text)}.groups-balance--zero{color:var(--color-text-muted)}.groups-empty{padding:var(--space-3xl) var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.groups-cards{display:flex;flex-direction:column;gap:var(--space-lg)}.groups-card{transition:opacity var(--transition-fast);cursor:pointer;border-left:3px solid var(--color-accent)}.groups-card--inactive{opacity:.45}.groups-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.groups-card__name{font-size:15px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);line-height:1.3;flex:1;min-width:0}.groups-card__details{display:flex;flex-direction:column;gap:var(--space-sm)}.groups-card__row{display:flex;justify-content:space-between;align-items:center}.groups-card__label{font-size:var(--font-size-body-small);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.groups-card__value{font-size:var(--font-size-body);color:var(--color-text-secondary);font-weight:var(--font-weight-regular)}@media(max-width:768px){.groups-page__header{flex-direction:column;gap:var(--space-md)}.groups-page__header .btn{width:100%}}.groups-form{display:flex;flex-direction:column;gap:var(--space-lg)}.groups-form__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:6px;font-size:var(--font-size-small)}.groups-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.groups-form__row--full{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(max-width:480px){.groups-form__row{grid-template-columns:1fr}}.groups-form__actions{padding-top:var(--space-xs)}.groups-form__members-box{border:1px solid var(--color-border);border-radius:var(--radius-button);padding:var(--space-sm);height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs);background:var(--color-bg-surface)}.groups-form__members-box .input-group{flex-shrink:0}.groups-form__members-hint{margin:auto 0;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-small)}.groups-form__client-option{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:var(--font-size-body);color:var(--color-text-primary);border-radius:var(--radius-button);transition:background var(--transition-fast);flex-shrink:0}.groups-form__client-option:hover{background:var(--color-neutral-bg)}.groups-form__client-option-meta{font-size:var(--font-size-small);color:var(--color-text-muted)}.groups-form__selected-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);background:var(--color-neutral-bg);border-radius:var(--radius-button);font-size:var(--font-size-body);flex-shrink:0}.groups-form__selected-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.groups-form__selected-meta{font-size:var(--font-size-small);color:var(--color-text-muted)}.groups-form__remove-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;flex-shrink:0}.groups-form__remove-btn:hover{background:var(--color-danger-bg);color:var(--color-danger-text)}.groups-form__summary{padding:var(--space-sm) var(--space-md);background:var(--color-info-bg);color:var(--color-info-text);border-radius:var(--radius-button);font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}.groups-form__label{display:block;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-heading);margin-bottom:var(--space-xs)}.group-detail{max-width:var(--content-max-width);margin:0 auto}.group-detail__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.group-detail__back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted);text-decoration:none;margin-bottom:var(--space-lg);cursor:pointer;background:none;border:none;padding:2px 0;transition:color var(--transition-fast)}.group-detail__back:hover{color:var(--color-accent)}.group-profile__top{display:flex;align-items:flex-start;gap:var(--space-xl);padding:var(--card-padding)}.group-profile__avatar{width:80px;height:80px;border-radius:var(--radius-avatar);background:linear-gradient(135deg,rgba(115,103,240,.85),var(--color-accent));color:#fff;font-size:28px;font-weight:var(--font-weight-semibold);display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:1px}.group-profile__info{flex:1;min-width:0}.group-profile__name-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.group-profile__name{font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);color:var(--color-text-emphasis);margin:0;line-height:var(--line-height-heading)}.group-profile__actions{display:flex;gap:var(--space-sm);flex-shrink:0}.group-profile__divider{border:none;border-top:1px solid var(--color-border-subtle);margin:0}.group-profile__stats{display:grid;grid-template-columns:repeat(4,1fr);padding:var(--space-lg) 0}.group-profile__stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-xs) var(--space-md);border-right:1px solid var(--color-border-subtle)}.group-profile__stat:last-child{border-right:none}.group-profile__stat-value{font-size:var(--font-size-stat);font-weight:var(--font-weight-semibold);color:var(--color-text-emphasis);line-height:1.2;font-variant-numeric:tabular-nums}.group-profile__stat-label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-medium)}.group-detail__tabs{display:flex;gap:0;margin-top:var(--space-xl);margin-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.group-detail__tab{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.group-detail__tab:hover{color:var(--color-accent);border-bottom-color:var(--color-accent-lighter)}.group-detail__tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.group-detail__tab-icon{width:18px;height:18px}.group-members{margin-bottom:var(--space-xl)}.group-members__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.group-members__title{font-size:var(--font-size-heading);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.group-members__list{display:flex;flex-direction:column;gap:var(--space-sm)}.group-members__item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-button);background:var(--color-neutral-bg)}.group-members__item--inactive{opacity:.45}.group-members__item-info{display:flex;align-items:center;gap:var(--space-md)}.group-members__item-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer}.group-members__item-name:hover{color:var(--color-accent)}.group-members__item-meta{font-size:var(--font-size-small);color:var(--color-text-muted)}.group-members__remove-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;flex-shrink:0;transition:all var(--transition-fast)}.group-members__remove-btn:hover{background:var(--color-danger-bg);color:var(--color-danger-text)}.group-members__add-search{margin-top:var(--space-md);position:relative}.group-members__add-results{position:absolute;z-index:10;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-button);box-shadow:var(--shadow-card);margin-top:var(--space-xs)}.group-members__add-option{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:var(--font-size-body);color:var(--color-text-primary);transition:background var(--transition-fast)}.group-members__add-option:hover{background:var(--color-neutral-bg)}.group-members__add-option-meta{font-size:var(--font-size-small);color:var(--color-text-muted)}.group-detail__type-change-notice{padding:var(--space-sm) var(--space-md);background-color:var(--color-warning-bg);color:var(--color-warning-text);border-radius:var(--radius-button);font-size:var(--font-size-small)}.remove-member__loading{display:flex;align-items:center;justify-content:center;padding:var(--space-xl) 0}.remove-member__content{display:flex;flex-direction:column;gap:var(--space-md)}.remove-member__content>p{margin:0;font-size:var(--font-size-body);color:var(--color-text-primary);line-height:var(--line-height-body)}.remove-member__info{padding:var(--space-sm) var(--space-md);background-color:var(--color-info-bg);color:var(--color-info-text);border-radius:var(--radius-button);font-size:var(--font-size-small);line-height:var(--line-height-body)}.remove-member__notice{padding:var(--space-sm) var(--space-md);background-color:var(--color-neutral-bg);color:var(--color-text-muted);border-radius:var(--radius-button);font-size:var(--font-size-small);line-height:var(--line-height-body)}.remove-member__warning{padding:var(--space-sm) var(--space-md);background-color:var(--color-warning-bg);color:var(--color-warning-text);border-radius:var(--radius-button);font-size:var(--font-size-small);line-height:var(--line-height-body)}@media(max-width:768px){.group-profile__top{flex-direction:column;align-items:center;text-align:center}.group-profile__name-row{justify-content:center;flex-wrap:wrap}.group-profile__actions{justify-content:center;width:100%}.group-profile__stats{grid-template-columns:repeat(2,1fr)}.group-profile__stat:nth-child(2){border-right:none}}.unbilled-page{display:flex;flex-direction:column;gap:var(--space-xl)}.unbilled-page__header{display:flex;align-items:center;justify-content:space-between}.unbilled-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.unbilled-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body)}.unbilled-page__table{width:100%;border-collapse:collapse;font-size:var(--font-size-body)}.unbilled-page__table th{text-align:left;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body-small);text-transform:uppercase;letter-spacing:.04em}.unbilled-page__table th:first-child{width:40px;text-align:center}.unbilled-page__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary)}.unbilled-page__table td:first-child{text-align:center}.unbilled-page__table tr:last-child td{border-bottom:none}.unbilled-page__table input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.unbilled-page__amount{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium)}.unbilled-page__empty{color:var(--color-text-muted);font-size:var(--font-size-body);text-align:center;padding:var(--space-2xl) 0;margin:0}.unbilled-page__section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.unbilled-page__section-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0}.unbilled-page__history-table{width:100%;border-collapse:collapse;font-size:var(--font-size-body)}.unbilled-page__history-table th{text-align:left;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body-small);text-transform:uppercase;letter-spacing:.04em}.unbilled-page__history-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-primary)}.unbilled-page__history-table tr:last-child td{border-bottom:none}.unbilled-page__row-actions{display:flex;gap:var(--space-xs)}.unbilled-preview__table{width:100%;border-collapse:collapse;font-size:var(--font-size-body);margin-bottom:var(--space-lg)}.unbilled-preview__table th{text-align:left;padding:var(--space-sm) var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:1px solid var(--color-border);font-size:var(--font-size-body-small)}.unbilled-preview__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-subtle)}.unbilled-preview__amount{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.unbilled-preview__half-note,.unbilled-preview__formula{color:var(--color-text-muted);font-size:var(--font-size-body-small)}.unbilled-preview__total{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);padding:var(--space-md);border-top:2px solid var(--color-border);font-size:var(--font-size-section-title)}.unbilled-preview__total strong{font-variant-numeric:tabular-nums;color:var(--color-text-emphasis)}.unbilled-page__tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border)}.unbilled-page__tab{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);font-family:inherit;color:var(--color-text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.unbilled-page__tab:hover{color:var(--color-accent);border-bottom-color:var(--color-accent-lighter)}.unbilled-page__tab--active,.unbilled-page__tab--active:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.unbilled-page__invoice-number{font-family:var(--font-family-mono, monospace);font-size:var(--font-size-body-small);color:var(--color-text-heading);font-weight:var(--font-weight-medium)}.unbilled-page__issue-body{display:flex;flex-direction:column;gap:var(--space-md)}.unbilled-page__issue-label{font-size:var(--font-size-body);color:var(--color-text-muted);margin:0}.unbilled-page__issue-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-button);border:1px solid var(--color-border-subtle);cursor:pointer;transition:background var(--transition-fast)}.unbilled-page__issue-item:hover{background:var(--color-bg-hover)}.unbilled-page__issue-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.unbilled-page__issue-item span{flex:1;color:var(--color-text-primary);font-size:var(--font-size-body)}.unbilled-page__issue-item strong{font-variant-numeric:tabular-nums;color:var(--color-text-heading)}.unbilled-page__issue-total{text-align:right;padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:var(--font-size-body);color:var(--color-text-muted)}.unbilled-page__issue-total strong{font-variant-numeric:tabular-nums;color:var(--color-text-emphasis);font-size:var(--font-size-section-title)}.unbilled-page__payment-body{display:flex;flex-direction:column;gap:var(--space-lg)}.unbilled-page__payment-info{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0}.unbilled-page__payment-info strong{font-variant-numeric:tabular-nums;color:var(--color-text-emphasis)}.unbilled-page__payment-methods{display:flex;gap:var(--space-lg)}.unbilled-page__payment-method{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-body);color:var(--color-text-primary);cursor:pointer}.unbilled-page__payment-method input[type=radio]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.unbilled-cards{display:flex;flex-direction:column;gap:var(--space-md)}.unbilled-card{border-radius:var(--radius-card);box-shadow:var(--shadow-card);border-left:3px solid var(--color-accent);overflow:hidden}.unbilled-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--color-border-subtle)}.unbilled-card__name{font-size:15px;font-weight:var(--font-weight-medium);color:var(--color-text-heading);flex:1;min-width:0}.unbilled-card__invoice-num{font-family:var(--font-family-mono, monospace);font-size:var(--font-size-body-small);font-weight:var(--font-weight-medium);color:var(--color-text-heading)}.unbilled-card__amount{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);color:var(--color-text-emphasis);white-space:nowrap}.unbilled-card__rows{display:flex;flex-direction:column;padding:0 var(--space-md)}.unbilled-card__row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border-subtle)}.unbilled-card__row:last-child{border-bottom:none}.unbilled-card__label{font-size:var(--font-size-body-small);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.unbilled-card__value{font-size:var(--font-size-body);color:var(--color-text-primary);text-align:right}.unbilled-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border-subtle);background:var(--color-bg-muted)}@media(max-width:768px){.unbilled-page__header,.unbilled-page__section-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.unbilled-preview__table th,.unbilled-preview__table td{padding:var(--space-xs) var(--space-sm)}.unbilled-preview__table td:nth-child(2){word-break:break-word}}.reports-page{max-width:var(--content-max-width);margin:0 auto}.reports-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.reports-page__title-group{display:flex;align-items:flex-start;gap:var(--space-md)}.reports-page__icon{color:var(--color-accent);margin-top:2px;flex-shrink:0}.reports-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.reports-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.reports-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.reports-toolbar{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.reports-toolbar__field{display:flex;flex-direction:column;gap:4px}.reports-toolbar__label{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.reports-toolbar__date{height:38px;padding:0 var(--space-md);border:1px solid var(--color-border-input);border-radius:var(--radius-button);font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text-primary);background:var(--color-bg);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.reports-toolbar__date:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.reports-data--fetching{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.reports-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-3xl) var(--space-xl);border:2px dashed var(--color-border);border-radius:var(--radius-card);text-align:center}.reports-empty__icon{color:var(--color-text-muted);opacity:.5}.reports-empty__text{color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.reports-page .table{table-layout:fixed}.reports-col--number-cell,.reports-col--date-cell{width:14%}.reports-col--recipient-cell{width:30%}.reports-col--type-cell{width:12%}.reports-col--amount-cell{width:14%}.reports-page .table th.reports-col--amount-cell,.reports-page .table td.reports-col--amount-cell{text-align:right}.reports-col--number{font-weight:var(--font-weight-medium);color:var(--color-text-heading);white-space:nowrap}.reports-col--date{color:var(--color-text-secondary);white-space:nowrap}.reports-col--recipient{color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.reports-col--link{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a.reports-col--link:hover{color:var(--color-accent-hover);text-decoration:underline}.reports-col--amount{font-weight:var(--font-weight-semibold);color:var(--color-text-heading);white-space:nowrap;text-align:right}.reports-col--actions{width:6%}.reports-actions{display:flex;align-items:center;justify-content:center}.reports-actions__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);padding:0}.reports-actions__icon-btn:hover{background-color:var(--color-neutral-bg);color:var(--color-accent)}.reports-actions__icon-btn:active{background-color:var(--color-border-subtle)}.reports-actions__icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.reports-actions__icon-btn:disabled{opacity:.4;cursor:not-allowed}.reports-sum{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);margin-top:var(--space-md);background-color:var(--color-neutral-bg);border-radius:var(--radius-card)}.reports-sum__label{font-size:var(--font-size-body);color:var(--color-text-secondary)}.reports-sum__value{font-size:18px;font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.reports-cards{display:flex;flex-direction:column;gap:var(--space-md)}.reports-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.reports-card__number{font-weight:var(--font-weight-semibold);color:var(--color-text-heading);font-size:var(--font-size-body)}.reports-card__date{font-size:var(--font-size-small);color:var(--color-text-muted)}.reports-card__body{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.reports-card__recipient{font-size:var(--font-size-body);color:var(--color-text-primary)}.reports-card__amount{font-weight:var(--font-weight-semibold);color:var(--color-text-heading);white-space:nowrap}.reports-card__actions{display:flex;justify-content:flex-end;margin-top:var(--space-sm)}@media(max-width:768px){.reports-page__header{flex-direction:column;gap:var(--space-md)}.reports-toolbar{flex-direction:column;align-items:stretch}.reports-toolbar__field,.reports-toolbar__date{width:100%}.reports-sum{flex-direction:column;align-items:flex-end;gap:var(--space-xs)}}.debts-page{max-width:var(--content-max-width);margin:0 auto}.debts-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.debts-page__title-group{display:flex;align-items:flex-start;gap:var(--space-md)}.debts-page__icon{color:var(--color-accent);margin-top:2px;flex-shrink:0}.debts-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.debts-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.debts-page__error{padding:var(--space-md) var(--space-lg);background-color:var(--color-danger-bg);color:var(--color-danger-text);border-radius:var(--radius-button);font-size:var(--font-size-body);margin-bottom:var(--space-xl)}.debts-toolbar{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.debts-toolbar__select{min-width:150px}.debts-toolbar__toggle{display:flex;align-items:center;gap:var(--space-sm);height:38px;white-space:nowrap}.debts-toolbar__toggle-label{font-size:var(--font-size-body);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.debts-data--fetching{opacity:.5;pointer-events:none;transition:opacity var(--transition-fast)}.debts-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-3xl) var(--space-xl);border:2px dashed var(--color-border);border-radius:var(--radius-card);text-align:center}.debts-empty__icon{color:var(--color-text-muted);opacity:.5}.debts-empty__text{color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.debts-col--name{font-weight:var(--font-weight-medium);color:var(--color-text-heading)}.debts-col--name-link{font-weight:var(--font-weight-medium);color:var(--color-accent);text-decoration:none;cursor:pointer}.debts-col--name-link:hover{text-decoration:underline}.debts-col--amount{font-weight:var(--font-weight-semibold);color:var(--color-text-heading);white-space:nowrap;text-align:right}.debts-sum{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);margin-top:var(--space-md);background-color:var(--color-neutral-bg);border-radius:var(--radius-card)}.debts-sum__label{font-size:var(--font-size-body);color:var(--color-text-secondary)}.debts-sum__value{font-size:18px;font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.debts-cards{display:flex;flex-direction:column;gap:var(--space-md)}.debts-card{cursor:pointer}.debts-card--no-link{cursor:default}.debts-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.debts-card__name{font-weight:var(--font-weight-semibold);color:var(--color-text-heading);font-size:var(--font-size-body)}.debts-card__badges{display:flex;gap:var(--space-xs);flex-shrink:0}.debts-card__body{display:flex;align-items:center;justify-content:flex-end}.debts-card__amount{font-weight:var(--font-weight-semibold);color:var(--color-text-heading);white-space:nowrap;font-size:15px}@media(max-width:768px){.debts-page__header{flex-direction:column;gap:var(--space-md)}.debts-toolbar{flex-direction:column;align-items:stretch}.debts-toolbar__select{min-width:unset}.debts-toolbar__toggle{justify-content:space-between}.debts-sum{flex-direction:column;align-items:flex-end;gap:var(--space-xs)}}.monthly-page{max-width:var(--content-max-width);margin:0 auto;font-family:var(--font-family)}.monthly-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:40px}.monthly-page__title-group{display:flex;align-items:flex-start;gap:var(--space-md)}.monthly-page__icon{color:var(--color-accent);margin-top:2px;flex-shrink:0}.monthly-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.monthly-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.monthly-page__year-select{width:110px;flex-shrink:0}.monthly-page__year-select .select-field{font-family:var(--font-family);height:42px;border-radius:12px;border-color:#e2e4ea;font-size:15px;font-weight:600;color:var(--color-text-heading);padding:8px 40px 8px 16px;background-color:#fafbfc;transition:all .2s ease}.monthly-page__year-select .select-field:hover{border-color:#c8cad4;background-color:#fff}.monthly-page__year-select .select-field:focus{border-color:#6c63e0;box-shadow:0 0 0 3px #6c63e014;background-color:#fff}.monthly-page__year-select .select-label{font-family:var(--font-family);font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.monthly-page__error{padding:14px 20px;background-color:#fef2f2;color:#b91c1c;border-radius:12px;font-size:14px;margin-bottom:32px;border:1px solid #fecaca}.monthly-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}.monthly-summary__card{background:#fff;border:1px solid #ecedf1;border-radius:16px;padding:28px 24px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s ease,border-color .2s ease}.monthly-summary__card:hover{box-shadow:0 4px 16px #0000000a;border-color:#dddfe5}.monthly-summary__label{font-family:var(--font-family);font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px}.monthly-summary__value{font-family:var(--font-family);font-size:32px;font-weight:700;color:var(--color-text-heading);letter-spacing:-.5px;line-height:1.1;font-variant-numeric:tabular-nums}.monthly-summary__value--success{color:#16a34a}.monthly-summary__value--danger{color:#c2410c}.monthly-summary__card--charged{border-top:3px solid #e2e4ea}.monthly-summary__card--paid{border-top:3px solid #bbf7d0}.monthly-summary__card--debt{border-top:3px solid #fed7aa}.monthly-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:64px 24px;border:1px dashed #dddfe5;border-radius:16px;text-align:center}.monthly-empty__icon{color:var(--color-text-disabled)}.monthly-empty__text{color:var(--color-text-muted);font-size:15px;margin:0}.monthly-table{width:100%;border-collapse:collapse;font-family:var(--font-family)}.monthly-table th{padding:14px 24px;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px;text-align:left;border-bottom:1px solid #ecedf1;background:#fafbfc}.monthly-table td{padding:18px 24px;font-size:15px;color:var(--color-text-primary);border-bottom:1px solid #f3f4f6;font-weight:500;font-variant-numeric:tabular-nums}.monthly-table .col-right{text-align:right}.monthly-row{cursor:pointer;transition:background-color .15s ease}.monthly-row:hover{background-color:#f8f9fb}.monthly-row__chevron{width:36px;color:var(--color-text-disabled)}.monthly-col--month{font-weight:600;color:var(--color-text-heading);font-size:15px}.monthly-amount--debt{font-weight:600;color:#c2410c}.monthly-amount--clear{font-weight:600;color:#16a34a}.monthly-detail-row{background-color:#f8f9fb}.monthly-detail-cell{padding:16px 24px 24px!important;border-bottom:2px solid #ecedf1}.monthly-detail-loading{padding:24px;text-align:center;color:var(--color-text-muted);font-size:14px}.monthly-detail-table{width:100%;border-collapse:collapse;font-family:var(--font-family)}.monthly-detail-table th{padding:10px 16px;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:left;border-bottom:1px solid #e2e4ea;background:transparent}.monthly-detail-table td{padding:12px 16px;font-size:14px;color:var(--color-text-primary);border-bottom:1px solid #f0f1f4;font-weight:500;font-variant-numeric:tabular-nums}.monthly-detail-table .col-right{text-align:right}.monthly-detail-row--clickable{cursor:pointer;transition:background-color .15s ease}.monthly-detail-row--clickable:hover{background-color:#6c63e008}.monthly-col--name{font-weight:500;color:var(--color-text-heading)}.monthly-col--name-link{font-weight:500;color:var(--color-accent);cursor:pointer;transition:color .15s ease}.monthly-col--name-link:hover{color:var(--color-accent-hover);text-decoration:underline}.monthly-page .card{border-radius:16px;border:1px solid #ecedf1;box-shadow:none;overflow:hidden}.monthly-cards{display:flex;flex-direction:column;gap:12px}.monthly-card{cursor:pointer;border-radius:16px!important;border:1px solid #ecedf1!important;box-shadow:none!important}.monthly-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.monthly-card__expand{display:flex;align-items:center;gap:6px;color:var(--color-text-disabled)}.monthly-card__month{font-family:var(--font-family);font-weight:600;color:var(--color-text-heading);font-size:16px}.monthly-card__sessions{font-size:13px;color:var(--color-text-muted);font-weight:500}.monthly-card__stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.monthly-card__stat{display:flex;flex-direction:column;gap:4px}.monthly-card__label{font-family:var(--font-family);font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.monthly-card__value{font-family:var(--font-family);font-size:14px;font-weight:600;color:var(--color-text-heading);font-variant-numeric:tabular-nums}.monthly-card__value--paid{color:#16a34a}.monthly-card__value--debt{color:#c2410c}.monthly-detail-section{padding:8px 0 0}.monthly-detail-cards{display:flex;flex-direction:column;gap:8px}.monthly-detail-card{padding:16px!important;border-radius:12px!important;border:1px solid #ecedf1!important;box-shadow:none!important}.monthly-detail-card--clickable{cursor:pointer}.monthly-detail-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.monthly-detail-card__name{font-family:var(--font-family);font-weight:600;color:var(--color-text-heading);font-size:14px}.monthly-detail-card__stats{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.monthly-detail-card__stat{display:flex;justify-content:space-between;align-items:center}.monthly-detail-card__label{font-size:12px;color:var(--color-text-muted);font-weight:500}.monthly-detail-card__value{font-family:var(--font-family);font-size:13px;font-weight:600;color:var(--color-text-heading);font-variant-numeric:tabular-nums}.monthly-detail-card__value--paid{color:#16a34a}.monthly-detail-card__value--debt{color:#c2410c}@media(max-width:768px){.monthly-page__header{flex-direction:column;gap:16px}.monthly-page__title{font-size:24px}.monthly-page__year-select{width:100%}.monthly-summary{grid-template-columns:1fr;gap:12px;margin-bottom:24px}.monthly-summary__card{padding:20px;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;border-top-width:0!important;border-left:3px solid}.monthly-summary__card--charged{border-left-color:#e2e4ea}.monthly-summary__card--paid{border-left-color:#bbf7d0}.monthly-summary__card--debt{border-left-color:#fed7aa}.monthly-summary__value{font-size:22px}}.payments-page{max-width:var(--content-max-width);margin:0 auto;font-family:var(--font-family)}.payments-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:40px}.payments-page__title-group{display:flex;align-items:flex-start;gap:var(--space-md)}.payments-page__icon{color:var(--color-accent);margin-top:2px;flex-shrink:0}.payments-page__title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-heading);margin:0}.payments-page__subtitle{font-size:var(--font-size-body);color:var(--color-text-muted);margin:var(--space-xs) 0 0}.payments-page__error{padding:14px 20px;background-color:#fef2f2;color:#b91c1c;border-radius:12px;font-size:14px;margin-bottom:32px;border:1px solid #fecaca}.payments-toolbar{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.payments-toolbar__field{display:flex;flex-direction:column;gap:4px}.payments-toolbar__label{font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.payments-toolbar__date{height:38px;padding:0 var(--space-md);border:1px solid var(--color-border-input);border-radius:var(--radius-button);font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text-primary);background:var(--color-bg);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.payments-toolbar__date:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.payments-toolbar__client-filter{position:relative;min-width:240px}.payments-toolbar__client-input{height:38px;width:100%;padding:0 var(--space-md);padding-right:36px;border:1px solid var(--color-border-input);border-radius:var(--radius-button);font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text-primary);background:var(--color-bg);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.payments-toolbar__client-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.payments-toolbar__client-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-muted);display:flex;align-items:center;border-radius:4px;transition:all .15s ease}.payments-toolbar__client-clear:hover{color:var(--color-text-heading);background:#f0f1f4}.payments-toolbar__dropdown{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:#fff;border:1px solid #ecedf1;border-radius:12px;box-shadow:0 8px 24px #00000014;z-index:50;max-height:260px;overflow-y:auto;padding:4px}.payments-toolbar__dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;background:none;cursor:pointer;font-family:var(--font-family);font-size:14px;font-weight:500;color:var(--color-text-heading);text-align:left;border-radius:8px;transition:background-color .15s ease}.payments-toolbar__dropdown-item:hover{background-color:#f8f9fb}.payments-toolbar__dropdown-empty{padding:16px;text-align:center;color:var(--color-text-muted);font-size:13px}.payments-data--fetching{opacity:.5;pointer-events:none;transition:opacity .2s ease}.payments-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:64px 24px;border:1px dashed #dddfe5;border-radius:16px;text-align:center}.payments-empty__icon{color:var(--color-text-disabled)}.payments-empty__text{color:var(--color-text-muted);font-size:15px;margin:0}.payments-page .card{border-radius:16px;border:1px solid #ecedf1;box-shadow:none;overflow:hidden}.payments-table{width:100%;border-collapse:collapse;font-family:var(--font-family)}.payments-table th{padding:14px 24px;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px;text-align:left;border-bottom:1px solid #ecedf1;background:#fafbfc}.payments-table td{padding:16px 24px;font-size:15px;color:var(--color-text-primary);border-bottom:1px solid #f3f4f6;font-weight:500;font-variant-numeric:tabular-nums}.payments-table th.col-right,.payments-table td.col-right{text-align:right}.payments-row{cursor:pointer;transition:background-color .15s ease}.payments-row:hover{background-color:#f8f9fb}.payments-row__chevron{width:36px;color:var(--color-text-disabled)}.payments-col--name{color:var(--color-accent);font-weight:500;cursor:pointer;transition:color .15s ease}.payments-col--name:hover{color:var(--color-accent-hover);text-decoration:underline}.payments-col--date{color:var(--color-text-primary);white-space:nowrap;font-weight:500}.payments-col--amount{font-weight:600;color:#16a34a;white-space:nowrap}.payments-col--method{white-space:nowrap;color:var(--color-text-primary);font-weight:500}.payments-col--desc{color:var(--color-text-muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px}.payments-detail-row td{padding:0;border-bottom:1px solid #ecedf1;background:transparent}.payments-detail-cell{padding:12px 24px 20px 60px!important}.payments-detail-card{background:#fff;border:1px solid #ecedf1;border-radius:12px;padding:0;overflow:hidden}.payments-detail-card__header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#fafbfc;border-bottom:1px solid #ecedf1}.payments-detail-card__name{font-size:13px;font-weight:600;color:var(--color-text-heading)}.payments-detail-card__amount{font-size:14px;font-weight:700;color:#16a34a;font-variant-numeric:tabular-nums}.payments-detail-table{width:100%;border-collapse:collapse;font-family:var(--font-family)}.payments-detail-table th{padding:10px 20px;font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:left;border-bottom:1px solid #ecedf1;background:#fafbfc}.payments-detail-table td{padding:14px 20px;font-size:14px;color:var(--color-text-heading);border-bottom:none;font-weight:500;font-variant-numeric:tabular-nums}.payments-detail-table tbody tr+tr td{border-top:1px solid #f3f4f6}.payments-detail-table th.col-right,.payments-detail-table td.col-right{text-align:right}.payments-detail-loading{padding:24px;text-align:center;color:var(--color-text-muted);font-size:14px}.payments-detail-empty{padding:24px 20px;text-align:center;color:var(--color-text-muted);font-size:14px;font-style:italic}.payments-detail-surplus{padding:10px 20px 14px;font-size:13px;color:var(--color-text-muted);font-style:italic;border-top:1px solid #f3f4f6}.payments-sum{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:20px 24px;margin-top:16px;background:#fff;border:1px solid #ecedf1;border-radius:16px}.payments-sum__label{font-size:14px;font-weight:500;color:var(--color-text-muted)}.payments-sum__value{font-family:var(--font-family);font-size:22px;font-weight:700;color:var(--color-text-heading);letter-spacing:-.3px;font-variant-numeric:tabular-nums}.payments-cards{display:flex;flex-direction:column;gap:12px}.payments-card{cursor:pointer;border-radius:16px!important;border:1px solid #ecedf1!important;box-shadow:none!important;transition:border-color .15s ease}.payments-card:hover{border-color:#dddfe5!important}.payments-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.payments-card__name{font-family:var(--font-family);font-weight:600;color:var(--color-text-heading);font-size:15px}.payments-card__date{font-size:13px;color:var(--color-text-muted);font-weight:500}.payments-card__body{display:flex;align-items:center;justify-content:space-between;gap:8px}.payments-card__info{display:flex;align-items:center;gap:8px}.payments-card__amount{font-family:var(--font-family);font-weight:600;color:#16a34a;white-space:nowrap;font-variant-numeric:tabular-nums}.payments-card__desc{font-size:13px;color:var(--color-text-muted);margin-top:8px;font-weight:400}.payments-card__detail{margin-top:16px;padding-top:16px;border-top:1px solid #ecedf1}.payments-detail-card-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:13px}.payments-detail-card-item+.payments-detail-card-item{border-top:1px solid #f0f1f4}.payments-detail-card-item__period{color:var(--color-text-heading);font-weight:500}.payments-detail-card-item__amounts{text-align:right;font-weight:500;font-variant-numeric:tabular-nums}@media(max-width:768px){.payments-page__header{flex-direction:column;gap:16px;margin-bottom:28px}.payments-toolbar{flex-direction:column;align-items:stretch;gap:12px}.payments-toolbar__field,.payments-toolbar__date{width:100%}.payments-toolbar__client-filter{min-width:0;width:100%}.payments-toolbar__client-input{width:100%}.payments-sum{flex-direction:column;align-items:flex-end;gap:4px}.payments-sum__value{font-size:18px}}:root{--color-bg-page: #ffffff;--color-bg-surface: #ffffff;--color-bg-elevated: #ffffff;--color-bg-hover: rgba(115, 103, 240, .04);--color-bg-muted: #f5f5f9;--color-text-primary: #6d6b77;--color-text-secondary: #a5a2ad;--color-text-muted: #a5a2ad;--color-text-heading: #444050;--color-text-emphasis: #2f2b3d;--color-text-disabled: #c0bdc7;--color-border: #e6e6e8;--color-border-subtle: #e6e6e8;--color-border-prominent: #d1d0d4;--color-border-input: #e6e6e8;--color-border-translucent: rgba(47, 43, 61, .075);--color-accent: #7367f0;--color-accent-hover: #685dd8;--color-accent-active: #5c52c0;--color-accent-light: #e9e7fd;--color-accent-lighter: #f1f0fe;--color-accent-ring: rgba(115, 103, 240, .3);--color-accent-text: #7367f0;--color-accent-rgb: 115, 103, 240;--color-accent-focus-shadow-rgb: 136, 126, 242;--color-secondary: #808390;--color-secondary-hover: #737585;--color-secondary-light: #eeeef0;--color-secondary-rgb: 128, 131, 144;--color-sidebar-bg: #2f3349;--color-sidebar-text: #cfcde4;--color-sidebar-text-active: #ffffff;--color-sidebar-hover-bg: rgba(255, 255, 255, .06);--color-sidebar-active-bg: linear-gradient(270deg, rgba(115, 103, 240, .7) 0%, rgb(115, 103, 240) 100%);--color-sidebar-active-shadow: 0 2px 6px rgba(115, 103, 240, .3);--color-sidebar-section: #76778e;--color-sidebar-logo-text: #ffffff;--color-sidebar-divider: rgba(255, 255, 255, .08);--color-sidebar-shadow: rgba(19, 17, 32, .18) 0px 2px 8px 0px;--color-success: #28c76f;--color-success-bg: rgba(40, 199, 111, .12);--color-success-text: #28c76f;--color-success-border-subtle: #abe9c7;--color-danger: #ff4c51;--color-danger-bg: rgba(255, 76, 81, .12);--color-danger-text: #ff4c51;--color-danger-border-subtle: #ffb9bb;--color-warning: #ff9f43;--color-warning-bg: rgba(255, 159, 67, .12);--color-warning-text: #ff9f43;--color-warning-border-subtle: #ffdab6;--color-info: #00bad1;--color-info-bg: rgba(0, 186, 209, .12);--color-info-text: #00bad1;--color-info-border-subtle: #9ce4ed;--color-gray-25: #fcfcfc;--color-gray-50: #f3f2f3;--color-gray-75: #eeeeef;--color-gray-100: #eaeaec;--color-gray-200: #e6e6e8;--color-gray-300: #c1bfc5;--color-gray-400: #acaab1;--color-gray-500: #97959e;--color-gray-600: #82808b;--color-gray-700: #6d6b77;--color-gray-800: #595564;--color-gray-900: #444050;--color-neutral-bg: #f5f5f9;--color-neutral-text: #6d6b77;--color-row-hover: rgba(75, 70, 92, .04);--color-row-border: #e6e6e8;--color-label: #444050;--color-placeholder: #a5a2ad;--font-family: "Manrope", "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-display: 32px;--font-size-page-title: 22px;--font-size-section-title: 18px;--font-size-card-title: 18px;--font-size-body: 15px;--font-size-body-small: 13px;--font-size-label: 13px;--font-size-badge: 13px;--font-size-th: 13px;--font-size-stat: 28px;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-body: 1.375;--line-height-heading: 1.375;--letter-spacing-th: .2px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--card-padding: 24px;--gap-sections: 24px;--gap-cards: 24px;--radius-xs: 4px;--radius-sm: 6px;--radius-button: 4px;--radius-card: 6px;--radius-input: 6px;--radius-badge: 4px;--radius-avatar: 50%;--radius-modal: 8px;--radius-panel: 0;--radius-lg: 8px;--radius-xl: 10px;--shadow-card: 0 0 0 1px #e6e6e8;--shadow-card-hover: 0 .1875rem .75rem 0 rgba(47, 43, 61, .14);--shadow-sm: 0 .125rem .5rem 0 rgba(47, 43, 61, .12);--shadow-md: 0 .1875rem .75rem 0 rgba(47, 43, 61, .14);--shadow-lg: 0 .25rem 1.125rem 0 rgba(47, 43, 61, .16);--shadow-dropdown: 0 .25rem 1rem rgba(47, 43, 61, .18);--shadow-panel: -6px 0 1.5rem rgba(47, 43, 61, .14);--shadow-input-focus: 0 .125rem .375rem 0 rgba(115, 103, 240, .3);--shadow-floating: 0 4px 14px rgba(115, 103, 240, .35);--shadow-navbar: 0 .125rem .25rem rgba(75, 70, 92, .08);--shadow-none: none;--shadow-btn-primary: 0 2px 6px rgba(115, 103, 240, .3);--shadow-btn-danger: 0 2px 6px rgba(255, 76, 81, .3);--shadow-btn-success: 0 2px 6px rgba(40, 199, 111, .3);--shadow-btn-warning: 0 2px 6px rgba(255, 159, 67, .3);--shadow-btn-info: 0 2px 6px rgba(0, 186, 209, .3);--shadow-btn-secondary: 0 2px 6px rgba(128, 131, 144, .3);--shadow-modal: 0 4px 18px rgba(47, 43, 61, .16);--color-alert-primary-bg: #e9e7fd;--color-alert-primary-text: #7367f0;--color-alert-success-bg: #ddf6e8;--color-alert-success-text: #28c76f;--color-alert-danger-bg: #ffe2e3;--color-alert-danger-text: #ff4c51;--color-alert-warning-bg: #fff0e1;--color-alert-warning-text: #ff9f43;--color-alert-info-bg: #d6f4f8;--color-alert-info-text: #00bad1;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out;--easing: cubic-bezier(.4, 0, .2, 1);--easing-overshoot: cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 260px;--sidebar-collapsed-width: 78px;--navbar-height: 64px;--content-max-width: 1440px;--bottom-tabs-height: 64px;--touch-min: 44px;--touch-recommended: 48px;--touch-gap: 8px;--z-dropdown: 100;--z-sticky: 200;--z-navbar: 300;--z-sidebar: 400;--z-overlay: 500;--z-panel: 600;--z-modal: 700;--z-toast: 800}@media(max-width:768px){:root{--card-padding: 16px;--gap-cards: 16px;--font-size-body: 14px;--font-size-body-small: 12px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);color:var(--color-text-primary);background-color:var(--color-bg-page);min-height:100vh}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}input:invalid,textarea:invalid,select:invalid{box-shadow:none;outline:none}input::-webkit-validation-bubble,input::-webkit-validation-bubble-message,input::-webkit-validation-bubble-arrow,input::-webkit-validation-bubble-top-inner-arrow,input::-webkit-validation-bubble-top-outer-arrow{display:none}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page-title{font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);color:var(--color-text-heading)}.section-title{font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);color:var(--color-text-heading)}.card-title{font-size:var(--font-size-card-title);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);color:var(--color-text-heading)}.label{font-size:var(--font-size-label);font-weight:var(--font-weight-regular);color:var(--color-label)}.label--uppercase{text-transform:uppercase;letter-spacing:var(--letter-spacing-label);font-size:12px;font-weight:var(--font-weight-medium)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent-text)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.detail-label{font-size:var(--font-size-body-small);color:var(--color-text-muted);margin-bottom:2px}.detail-value{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.breadcrumb{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-body);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.breadcrumb a{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.breadcrumb a:hover{color:var(--color-accent)}.breadcrumb__separator{color:var(--color-text-muted);font-size:12px}.breadcrumb__current{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}
