:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-md: 24px;--space-lg: 32px;--radius-md: 8px;--radius-lg: 14px;--focus-width: 2px;--focus-offset: 2px;--app-font: "Inter", system-ui, sans-serif;--font-heading-weight: 500}:root,:root[data-theme=dark]{color-scheme:dark;--color-bg: #161826;--color-surface: #232532;--color-surface-2: #2f3346;--color-text: #e9e9ed;--color-text-muted: #9ea3b8;--color-text-onaccent: #161826;--color-accent: #a89dee;--color-accent-line: #8b7fd0;--color-accent-fill: #b5abfc;--color-link: #b8b0f5;--color-link-hover: #d2cefd;--color-border: color-mix(in srgb, #e9e9ed 14%, transparent);--color-divider-soft: color-mix(in srgb, #e9e9ed 7%, transparent);--color-divider: color-mix(in srgb, #e9e9ed 14%, transparent);--color-border-strong: #6c7288;--color-ok: #7fd3a8;--color-warn: #e8b765;--color-danger: #f0908f;--color-ok-fill: color-mix(in srgb, #7fd3a8 16%, transparent);--color-warn-fill: color-mix(in srgb, #e8b765 16%, transparent);--color-danger-fill: color-mix(in srgb, #f0908f 16%, transparent);--color-neutral-100: #f3f5fe;--color-neutral-200: #e4e7f5;--color-neutral-300: #cfd3e5;--color-neutral-400: #b2b6ca;--color-neutral-500: #9397ab;--color-neutral-600: #9ea3b8;--color-neutral-700: #595d6c;--color-neutral-800: #3f424d;--color-neutral-900: #292b31;--color-accent-100: #f5f4ff;--color-accent-200: #e7e5fe;--color-accent-300: #d2cefd;--color-accent-400: #b5abfc;--color-accent-500: #a89dee;--color-accent-600: #8b7fd0;--color-accent-700: #5d5294;--color-accent-800: #423a6a;--color-accent-900: #2b2741;--shadow-sm: 0 0 0 1px #3f424d;--shadow-md: 0 0 0 1px #4b4f63, 0 6px 18px rgba(0, 0, 0, .55);--shadow-lg: 0 0 0 1px #6c7288, 0 16px 40px rgba(0, 0, 0, .65)}:root[data-theme=light]{color-scheme:light;--color-bg: #f4f5fb;--color-surface: #fdfdff;--color-surface-2: #eceefa;--color-text: #1b1d2b;--color-text-muted: #565a6b;--color-text-onaccent: #fdfdff;--color-accent: #5b4da3;--color-accent-line: #7d6fd0;--color-accent-fill: #5b4da3;--color-link: #514391;--color-link-hover: #3d3470;--color-border: color-mix(in srgb, #1b1d2b 14%, transparent);--color-divider-soft: color-mix(in srgb, #1b1d2b 7%, transparent);--color-divider: color-mix(in srgb, #1b1d2b 14%, transparent);--color-border-strong: #82879c;--color-ok: #1c6f4a;--color-warn: #7a4e07;--color-danger: #a52f29;--color-ok-fill: color-mix(in srgb, #1c6f4a 12%, transparent);--color-warn-fill: color-mix(in srgb, #7a4e07 12%, transparent);--color-danger-fill: color-mix(in srgb, #a52f29 12%, transparent);--color-neutral-100: #22242e;--color-neutral-200: #2f3240;--color-neutral-300: #3f434f;--color-neutral-400: #565a6b;--color-neutral-500: #6f7386;--color-neutral-600: #565a6b;--color-neutral-700: #8a8fa2;--color-neutral-800: #d5d8e6;--color-neutral-900: #edeff8;--color-accent-100: #2a2450;--color-accent-200: #3d3470;--color-accent-300: #4f4390;--color-accent-400: #6153b0;--color-accent-500: #5b4da3;--color-accent-600: #7d6fd0;--color-accent-700: #c0b9f2;--color-accent-800: #ddd8fb;--color-accent-900: #f0edff;--shadow-sm: 0 0 0 1px rgba(27, 29, 43, .1);--shadow-md: 0 0 0 1px rgba(27, 29, 43, .12), 0 6px 18px rgba(27, 29, 43, .1);--shadow-lg: 0 0 0 1px rgba(27, 29, 43, .14), 0 16px 40px rgba(27, 29, 43, .16)}:root{--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--text-3xl: 1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl: 2.25rem;--text-4xl--line-height: calc(2.5 / 2.25);--text-5xl: 3rem;--text-5xl--line-height: 1}.text-xs{font-size:var(--text-xs);line-height:var(--text-xs--line-height)}.text-sm{font-size:var(--text-sm);line-height:var(--text-sm--line-height)}.text-base{font-size:var(--text-base);line-height:var(--text-base--line-height)}.text-lg{font-size:var(--text-lg);line-height:var(--text-lg--line-height)}.text-xl{font-size:var(--text-xl);line-height:var(--text-xl--line-height)}.text-2xl{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}.text-3xl{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height)}.text-4xl{font-size:var(--text-4xl);line-height:var(--text-4xl--line-height)}.text-5xl{font-size:var(--text-5xl);line-height:var(--text-5xl--line-height)}.text-muted{color:var(--color-text-muted)}*,*:before,*:after{padding:0;margin:0;box-sizing:border-box;font-family:var(--app-font);-webkit-tap-highlight-color:transparent}html,body{width:100svw;height:100svh;background-color:var(--color-bg);color:var(--color-text);font-size:var(--text-base);line-height:var(--test-base--line-height);font-weight:400}h1,h2,h3,h4{font-weight:var(--font-heading-weight)}h2{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}ui-button button{width:100%;min-height:36px;padding:var(--space-2);font-size:var(--text-sm);line-height:var(--text-sm--line-height);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer}ui-button button:focus-visible{border-color:var(--color-accent);outline:var(--focus-width) solid var(--color-accent);outline-offset:0}ui-button button:disabled{border-color:var(--color-neutral-500);color:var(--color-neutral-500);cursor:not-allowed}ui-button button.button-secondary:hover{background:var(--color-divider-soft)}ui-button button.button-secondary:active{background:var(--color-divider)}ui-button button.button-primary{border-color:var(--color-accent);color:var(--color-accent)}ui-button button.button-primary:hover{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}ui-button button.button-primary:active{background:color-mix(in srgb,var(--color-accent) 22%,transparent)}ui-button button.button-link{border:none;background:transparent;color:var(--color-link);text-decoration:underline}ui-button button.button-link:hover{color:var(--color-link-hover)}ui-text-input{display:flex;flex-direction:column;gap:var(--space-1)}ui-text-input input{width:100%;min-height:36px;padding:var(--space-2);font-size:var(--text-sm);line-height:var(--text-sm--line-height);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md)}ui-text-input input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}ui-text-input input:focus-visible{border-color:var(--color-accent);outline:var(--focus-width) solid var(--color-accent);outline-offset:0}ui-email-input{display:flex;flex-direction:column;gap:var(--space-1)}ui-email-input input{width:100%;min-height:36px;padding:var(--space-2);font-size:var(--text-sm);line-height:var(--text-sm--line-height);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md)}ui-email-input input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}ui-email-input input:focus-visible{border-color:var(--color-accent);outline:var(--focus-width) solid var(--color-accent);outline-offset:0}ui-password-input{display:flex;flex-direction:column;gap:var(--space-1)}ui-password-input .ui-password-input__row{display:flex;align-items:center;gap:var(--space-4)}ui-password-input .ui-password-input__row input{width:100%;min-height:36px;padding:var(--space-2);font-size:var(--text-sm);line-height:var(--text-sm--line-height);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md)}ui-password-input .ui-password-input__row input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}ui-password-input .ui-password-input__row input:focus-visible{border-color:var(--color-accent);outline:var(--focus-width) solid var(--color-accent);outline-offset:0}ui-checkbox{display:flex;align-items:center;gap:var(--space-2)}ui-checkbox input[type=checkbox]{height:16px;width:16px;background:var(--color-surface);accent-color:var(--color-accent)}ui-checkbox input[type=checkbox]:focus-visible{border-color:var(--color-accent);outline:var(--focus-width) solid var(--color-accent);outline-offset:0}app-login{display:block;height:100%;container-type:inline-size}.login-container{height:100%;background:var(--color-surface);padding:var(--space-lg)}@container (min-width: 640px){.login-container{background:var(--color-bg);display:flex;align-items:center;justify-content:center}}.login-container .login-card{gap:var(--space-md);display:flex;flex-direction:column;height:100%}.login-container .login-card header .login-logo{width:144px;height:40px;width:auto}@container (min-width: 640px){.login-container .login-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:fit-content;width:420px;padding:var(--space-4)}}.login-container .login-card form{gap:var(--space-md);display:flex;flex-direction:column;flex:1}.login-container .login-card form .form-error{display:flex;align-items:center;padding:var(--space-4);gap:var(--space-2);border-radius:var(--radius-md);background:var(--color-danger-fill);box-shadow:inset 0 0 0 1px var(--color-danger)}.login-container .login-card form .form-error svg{--svgDimension: 20px;width:var(--svgDimension);height:var(--svgDimension)}.login-container .login-card form .form-error svg path{stroke:var(--color-danger)}.login-container .login-card form .field-row{display:flex;align-items:center;justify-content:space-between}.login-container .login-card footer{display:flex;align-items:center;justify-content:space-between}.login-container .login-card .login-version{display:flex}.login-container .login-card .theme-toggle{display:flex;align-items:center;justify-content:center;padding:var(--space-1);border:none;background:transparent;color:var(--color-text-muted);cursor:pointer}.login-container .login-card .theme-toggle:focus-visible{border-color:var(--color-accent);outline:var(--focus-width) solid var(--color-accent);outline-offset:0}.login-container .login-card .theme-toggle:hover{color:var(--color-text)}.login-container .login-card .theme-toggle svg{--svgDimension: 20px;width:var(--svgDimension);height:var(--svgDimension)}
