.sidebar{width:var(--sidebar-width);height:100vh;position:sticky;top:0;display:flex;flex-direction:column;background-color:var(--color-sidebar-bg);flex-shrink:0;overflow-y:auto;overflow-x:hidden;z-index:var(--z-sidebar)}.sidebar__header{padding:22px 20px 18px;display:flex;align-items:center;flex-shrink:0}.sidebar__logo{display:flex;align-items:center;gap:var(--space-md)}.sidebar__logo-mark{width:30px;height:30px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#9b8cf8,#7367f0,#655bd3);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:var(--font-weight-bold);letter-spacing:-.02em;flex-shrink:0}.sidebar__logo-text{font-size:22px;font-weight:var(--font-weight-bold);color:var(--color-sidebar-logo-text);letter-spacing:-.5px}.sidebar__section-label{font-size:var(--font-size-body-small);font-weight:var(--font-weight-regular);color:var(--color-sidebar-section);text-transform:uppercase;letter-spacing:.4px;padding:20px 24px 6px}.sidebar__nav{display:flex;flex-direction:column;gap:2px;padding:0;flex:1}.sidebar__nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:0 12px;border-radius:var(--radius-sm);color:var(--color-sidebar-text);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);transition:all var(--transition-fast);min-height:38px;text-decoration:none;cursor:pointer;position:relative}.sidebar__nav-item:hover{background-color:var(--color-sidebar-hover-bg);color:var(--color-sidebar-text-active)}.sidebar__nav-item--active{background:var(--color-sidebar-active-bg);color:#fff;font-weight:var(--font-weight-regular);box-shadow:var(--color-sidebar-active-shadow)}.sidebar__nav-item--active:hover{background:var(--color-sidebar-active-bg);color:#fff;box-shadow:var(--color-sidebar-active-shadow)}.sidebar__nav-icon{width:22px;height:22px;flex-shrink:0;opacity:.9}.sidebar__nav-item--active .sidebar__nav-icon{opacity:1}.sidebar__nav-badge{margin-left:auto;background-color:var(--color-danger);color:#fff;font-size:11px;font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:999px;min-width:20px;text-align:center;line-height:1.2}.sidebar__footer{padding:16px 12px;border-top:1px solid var(--color-sidebar-divider);margin-top:auto;display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0}.sidebar__user{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.sidebar__user:hover{background-color:var(--color-sidebar-hover-bg)}.sidebar__user-avatar{width:34px;height:34px;border-radius:50%;background-color:#ffffff1f;display:flex;align-items:center;justify-content:center;color:#fffc;font-size:13px;font-weight:var(--font-weight-semibold);flex-shrink:0}.sidebar__user-name{font-size:var(--font-size-body);color:var(--color-sidebar-text-active);font-weight:var(--font-weight-medium)}.sidebar__user-role{font-size:var(--font-size-body-small);color:var(--color-sidebar-section)}.sidebar__logout{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);color:var(--color-sidebar-text);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);min-height:38px;transition:all var(--transition-fast);border:none;background:none;cursor:pointer;text-align:left}.sidebar__logout:hover{background-color:#ea54551f;color:var(--color-danger)}.sidebar__version{font-size:11px;color:var(--color-sidebar-section);padding:4px 12px 0}.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__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-3xl)}.app-layout__content{max-width:var(--content-max-width);margin:0 auto}@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))}}.home-page__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-body);margin-top:var(--space-sm)}.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--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}.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}}.placeholder-page{display:flex;align-items:center;justify-content:center;min-height:40vh}.placeholder-page__content{text-align:center}.placeholder-page__text{color:var(--color-text-muted);margin-top:var(--space-sm)}.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 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}}.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}.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)}.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)}.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-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{font-weight:var(--font-weight-medium)}.clients-name__full{display:block;line-height:1.3}.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-md)}.clients-card{transition:opacity var(--transition-fast);cursor:pointer}.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:11px;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)}.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:var(--space-xs);margin-top:var(--space-xl);margin-bottom:var(--space-xl);overflow-x:auto;-webkit-overflow-scrolling:touch}.client-detail__tab{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-radius:var(--radius-card);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.client-detail__tab:hover{background:var(--color-accent-lighter);color:var(--color-accent)}.client-detail__tab--active{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-btn-primary)}.client-detail__tab--active:hover{background:var(--color-accent-hover);color:#fff}.client-detail__activity-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);margin:0 0 var(--space-md)}.client-detail__activity-placeholder{color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}.client-detail__placeholder{padding:var(--space-3xl) 0;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);margin:0}@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}}.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-md)}.cal-toolbar__nav{display:flex;align-items:center;gap:2px}.cal-toolbar__nav-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.cal-toolbar__nav-btn:hover{background-color:var(--color-bg-hover);color:var(--color-accent);border-color:var(--color-accent)}.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)}.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}.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)}.cal-toolbar__left{justify-content:center}.cal-toolbar__right{justify-content:center;flex-wrap:wrap}.cal-toolbar__date-range{font-size:16px}.cal-toolbar__copy-label{display:none}}.cal-event{position:relative;height:100%;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:11px;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 2px;gap:1px;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:20px;height:20px;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)}.cal-event__action-btn:hover{color:var(--color-accent);background-color:var(--color-bg-hover)}@media(max-width:768px){.cal-event__actions{display:none!important}.cal-event:hover .cal-event__note-icon{display:inline}}.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__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}.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-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}.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{flex:1;min-height:0;overflow:hidden}@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}: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: "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)}
