.sidebar{--sidebar-width-open: 14rem;--sidebar-width-closed: 3.25rem;flex-shrink:0;width:var(--sidebar-width-open);min-height:100vh;background:var(--sidebar-bg, #f8fafc);border-right:1px solid var(--layout-border, #e5e7eb);display:flex;flex-direction:column;transition:width .2s ease;overflow:hidden}.sidebar--closed{width:var(--sidebar-width-closed)}.sidebar__toggle{flex-shrink:0;width:100%;height:2rem;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--sidebar-fg, #64748b);cursor:pointer;padding:0;transition:background .15s,color .15s}.sidebar__toggle:hover{background:var(--sidebar-hover-bg, #e2e8f0);color:var(--sidebar-fg-hover, #475569)}.sidebar__toggle:focus-visible{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:-2px}.sidebar__chevron{width:1rem;height:1rem;flex-shrink:0}.sidebar__toggle .sidebar__chevron,.sidebar__toggle svg{width:1rem;height:1rem;opacity:.85}.sidebar__toggle:hover svg,.sidebar__toggle:hover .sidebar__chevron{opacity:1}.sidebar__nav{flex:1;padding:.375rem 0;display:flex;flex-direction:column;gap:.125rem;overflow-y:auto}.sidebar__group{display:flex;flex-direction:column;gap:.125rem}.sidebar__group:not(:first-child){margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--layout-border, #e5e7eb)}.sidebar__link{display:flex;align-items:center;gap:.5rem;padding:.4375rem .75rem;color:var(--sidebar-fg, #475569);text-decoration:none;font-size:.875rem;font-weight:500;white-space:nowrap;transition:background .15s,color .15s;border-right:3px solid transparent;min-height:2rem}.sidebar__link:hover{background:var(--sidebar-hover-bg, #e2e8f0);color:var(--sidebar-fg-hover, #0f172a)}.sidebar__link--active{background:var(--sidebar-active-bg, #e0f2fe);color:var(--sidebar-active-fg, #0369a1);border-right-color:var(--sidebar-active-border, #0284c7)}.sidebar__link--external{border-right-color:transparent}.sidebar__link:focus-visible{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:-2px}.sidebar__icon{flex-shrink:0;width:1.125rem;height:1.125rem;display:flex;align-items:center;justify-content:center}.sidebar__icon svg{width:100%;height:100%}.sidebar__label{overflow:hidden;text-overflow:ellipsis}.user-menu{position:relative}.user-menu__trigger{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:none;background:transparent;color:var(--header-fg, #0f172a);font-size:.9375rem;font-weight:500;cursor:pointer;border-radius:.375rem;transition:background .15s}.user-menu__trigger:hover{background:var(--header-hover-bg, rgba(0, 0, 0, .05))}.user-menu__trigger:focus-visible{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:2px}.user-menu__icon{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}.user-menu__icon svg{width:100%;height:100%}.user-menu__name{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__chevron{width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;transition:transform .2s}.user-menu__chevron svg{width:100%;height:100%}.user-menu__dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:12rem;padding:.25rem 0;background:var(--dropdown-bg, #fff);border:1px solid var(--layout-border, #e5e7eb);border-radius:.375rem;box-shadow:0 4px 12px #0000001a;z-index:100}.user-menu__account{display:flex;flex-direction:column;gap:.125rem;padding:.5rem 1rem;margin:0 .25rem .25rem;background:var(--user-menu-account-bg, #f1f5f9);border-radius:.25rem;cursor:default;pointer-events:none}.user-menu__account-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted-text, #6b7280)}.user-menu__account-name{font-size:.875rem;font-weight:600;color:var(--dropdown-fg, #374151)}.user-menu__item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;border:none;background:none;color:var(--dropdown-fg, #374151);font-size:.875rem;text-align:left;text-decoration:none;cursor:pointer;transition:background .15s}.user-menu__item-icon{flex-shrink:0;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;color:inherit}.user-menu__item-icon svg{width:100%;height:100%}.user-menu__item:hover{background:var(--dropdown-hover-bg, #f3f4f6)}.user-menu__item:focus-visible{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:-2px}.user-menu__item--logout{color:var(--color-error, #b91c1c)}.user-menu__separator{height:1px;margin:.25rem 0;background:var(--layout-border, #e5e7eb)}.user-menu__section-title{padding:.375rem 1rem .25rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted-text, #6b7280)}.main-layout{min-height:100vh;display:flex;flex-direction:row}.main-layout__body{flex:1;min-width:0;display:flex;flex-direction:column}.main-layout__header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--layout-border, #e5e7eb);background:var(--layout-header-bg, #fff)}.main-layout__branding{display:flex;align-items:center}.main-layout__client-logo{display:block;height:2rem;width:auto;object-fit:contain}.main-layout__header-actions{display:flex;align-items:center;gap:.5rem}.main-layout__main{flex:1;padding:1.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--login-bg, #f3f4f6);padding:1.5rem}.login-card{width:100%;max-width:24rem;padding:2rem;background:var(--login-card-bg, #fff);border-radius:.5rem;box-shadow:0 1px 3px #00000014}.login-card__header{text-align:center;margin-bottom:1.75rem}.login-card__title{margin:0 0 .25rem;font-size:xx-large;font-weight:700;color:var(--login-title, #0A66A5)}.login-card__version{margin:0;font-size:14px;color:var(--login-version, #484848)}.login-form__group{margin-bottom:1.25rem}.login-form__label{display:block;margin-bottom:.375rem;font-size:14px;font-weight:500;color:var(--login-label, #484848)}.login-form__input{width:100%;padding:.5rem .75rem;font-size:14px;line-height:1.5;color:var(--login-input-text, #484848);background:var(--login-input-bg, #fff);border:1px solid var(--login-input-border, #d1d5db);border-radius:.375rem;box-sizing:border-box}.login-form__input::placeholder{color:var(--login-placeholder, #9ca3af)}.login-form__input:focus{outline:none;border-color:var(--login-focus-border, #0A66A5);box-shadow:0 0 0 2px #0a66a526}.login-form__forgot{display:block;margin-top:.5rem;margin-bottom:1.25rem;font-size:14px;text-align:right;color:var(--login-link, #484848);text-decoration:none}.login-form__forgot:hover{text-decoration:underline}.login-form__submit{width:100%;padding:.625rem 1.5rem;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--login-btn-text, #111);background:var(--login-btn-bg, #fff);border:1px solid var(--login-btn-border, #d1d5db);border-radius:9999px;cursor:pointer;transition:background .15s,border-color .15s}.login-form__submit:hover:not(:disabled){background:var(--login-btn-hover-bg, #f9fafb);border-color:var(--login-btn-hover-border, #9ca3af)}.login-form__submit:disabled{opacity:.7;cursor:not-allowed}.login-card__register{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1.25rem}.login-card__register-logo{width:2rem;height:2rem;object-fit:contain;flex-shrink:0}.login-card__register-logo--fallback{display:block}.login-card__register-text{margin:0;font-size:14px;color:var(--login-register-text, #484848)}.login-card__register-text a{color:var(--login-register-link, #0A66A5);text-decoration:none;font-weight:700}.login-card__register-text a:hover{text-decoration:underline}.login-card__error{margin-bottom:1rem;padding:.5rem .75rem;font-size:14px;color:var(--color-error, #b91c1c);background:var(--color-error-bg, #fef2f2);border-radius:.375rem}.change-password-page{max-width:28rem}.change-password-page h1{margin:0 0 1rem;font-size:1.5rem}.change-password-page__intro{margin:0 0 1.5rem;font-size:.9375rem;color:var(--color-muted-text, #6b7280)}.change-password-form__group{margin-bottom:1.25rem}.change-password-form__label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500;color:var(--form-label, #374151)}.change-password-form__input{width:100%;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--layout-border, #d1d5db);border-radius:.375rem;box-sizing:border-box}.change-password-form__input:focus{outline:none;border-color:var(--color-focus, #2563eb);box-shadow:0 0 0 2px #2563eb26}.change-password-requirements{margin:.5rem 0 0;padding:0;list-style:none;font-size:.8125rem}.change-password-requirements__item{display:flex;align-items:center;gap:.5rem;color:var(--color-muted-text, #6b7280);margin-bottom:.25rem}.change-password-requirements__item--met{color:var(--color-success-text, #166534)}.change-password-requirements__icon{flex-shrink:0;font-weight:700}.change-password-strength{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.change-password-strength__bar{height:4px;flex:1;max-width:8rem;border-radius:2px;background:var(--layout-border, #e5e7eb);transition:background .2s ease}.change-password-strength--weak .change-password-strength__bar{background:var(--color-weak-password, #dc2626)}.change-password-strength--medium .change-password-strength__bar{background:var(--color-medium-password, #ca8a04)}.change-password-strength--strong .change-password-strength__bar{background:var(--color-strong-password, #16a34a)}.change-password-strength__label{font-size:.8125rem;font-weight:500;min-width:3.5rem}.change-password-strength--weak .change-password-strength__label{color:var(--color-weak-password, #dc2626)}.change-password-strength--medium .change-password-strength__label{color:var(--color-medium-password, #ca8a04)}.change-password-strength--strong .change-password-strength__label{color:var(--color-strong-password, #16a34a)}.change-password-page__error-block{margin-bottom:1rem;padding:.5rem .75rem;font-size:.875rem;color:var(--color-error, #b91c1c);background:var(--color-error-bg, #fef2f2);border-radius:.375rem}.change-password-page__error-block .change-password-page__error{margin:0 0 .5rem}.change-password-page__error-block .change-password-page__error:last-child{margin-bottom:0}.change-password-page__server-validation{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(185,28,28,.2)}.change-password-page__server-validation-title{margin:0 0 .5rem;font-size:.8125rem;font-weight:500;color:var(--color-error, #b91c1c)}.change-password-page__success{margin-bottom:1rem;padding:.5rem .75rem;font-size:.875rem;color:var(--color-success-text, #166534);background:var(--color-success-bg, #f0fdf4);border-radius:.375rem}.change-password-form__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.change-password-form__actions button,.change-password-page__link{padding:.5rem 1rem;font-size:.875rem;border-radius:.375rem;border:1px solid var(--layout-border, #e5e7eb);background:var(--color-bg, #fff);cursor:pointer;text-decoration:none;color:inherit;display:inline-block}.change-password-form__actions button:disabled{opacity:.7;cursor:not-allowed}.change-password-page__link:hover{background:var(--header-hover-bg, #f3f4f6)}.home-page{max-width:56rem;margin:0 auto}.home-page__welcome{margin-bottom:2rem}.home-page__title{margin:0 0 .5rem;font-size:1.75rem;font-weight:600;color:var(--color-fg, #0f172a)}.home-page__name{font-weight:700;color:var(--color-primary, #0284c7)}.home-page__intro{margin:0;font-size:1rem;color:var(--color-muted-text, #6b7280);line-height:1.5}.home-page__shortcuts{margin-top:2rem}.home-page__shortcuts-title{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:var(--color-fg, #0f172a)}.home-page__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;list-style:none;margin:0;padding:0}@media(max-width:40rem){.home-page__grid{grid-template-columns:repeat(2,1fr)}}.home-page__card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;min-height:5rem;padding:1.25rem 1rem;background:var(--card-bg, #fff);border:1px solid var(--layout-border, #e5e7eb);border-radius:.5rem;color:var(--color-fg, #0f172a);text-decoration:none;font-weight:500;transition:border-color .15s,box-shadow .15s,background .15s}.home-page__card:hover{border-color:var(--color-primary, #0284c7);box-shadow:0 2px 8px #0284c71f;background:var(--card-hover-bg, #f8fafc)}.home-page__card:focus-visible{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:2px}.home-page__card-icon{width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;color:var(--color-primary, #0284c7)}.home-page__card-icon svg{width:100%;height:100%}.home-page__card-label{font-size:1rem}.home-page__card-desc{font-size:.8125rem;font-weight:400;color:var(--color-muted-text, #6b7280)}.user-profile-page{min-height:12rem}.user-profile-page h1{margin:0 0 1rem;font-size:1.5rem}.user-profile-page__error{color:var(--color-error, #b91c1c)}.user-profile-page__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem}.user-profile-page__actions button{padding:.5rem 1rem;border-radius:.375rem;border:1px solid var(--layout-border, #e5e7eb);background:var(--color-bg, #fff);cursor:pointer}.user-profile-page__hint{margin:0;font-size:.875rem;color:var(--color-muted-text, #6b7280)}.profile-card{max-width:28rem;padding:1.5rem;border:1px solid var(--layout-border, #e5e7eb);border-radius:.5rem}.profile-card__avatar,.profile-card__avatar-placeholder{width:80px;height:80px;border-radius:50%;margin-bottom:1rem}.profile-card__avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-muted, #e5e7eb);font-size:2rem;font-weight:600}.profile-card__fields{display:flex;flex-direction:column;gap:.75rem;margin:0}.profile-field__label{font-size:.875rem;color:var(--color-muted-text, #6b7280);margin:0}.profile-field__value{margin:0;font-weight:500}.profile-field__value--readonly{display:block;padding:.5rem 0;color:var(--color-muted-text, #6b7280);font-size:.9375rem}.profile-card__form{margin-top:0}.profile-card__form .profile-card__fields{display:flex;flex-direction:column;gap:.75rem}.profile-field__input{width:100%;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--layout-border, #e5e7eb);border-radius:.375rem;box-sizing:border-box}.profile-field__input:focus{outline:none;border-color:var(--color-focus, #2563eb)}.profile-card__save-error{margin:.75rem 0 0;font-size:.875rem;color:var(--color-error, #b91c1c)}.profile-card__form-actions,.profile-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.profile-card__form-actions button,.profile-card__actions button{padding:.5rem 1rem;border-radius:.375rem;border:1px solid var(--layout-border, #e5e7eb);background:var(--color-bg, #fff);cursor:pointer}:root{font-family:Roboto,Helvetica,Droid Sans,Tahoma,Geneva,sans-serif;font-size:14px;line-height:1.5;font-weight:400;color:#484848}body{margin:0;min-width:320px;min-height:100vh}
