@layer reset,base,components,features;@layer reset{*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,p{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}}@layer base{:root{font-family:Inter,sans-serif;font-synthesis:none;color-scheme:light;--color-page: #f8fafc;--color-surface: #ffffff;--color-surface-low: #f1f5f9;--color-surface-raised: #e2e8f0;--color-surface-high: #cbd5e1;--color-sidebar: #f1f5f9;--color-control-bg: #f8fafc;--color-text: #0f172a;--color-heading: #0b1120;--color-muted: #334155;--color-border: #cbd5e1;--color-panel-border: #cbd5e1;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-tone: #dbeafe;--color-accent: #2563eb;--color-link: #1d4ed8;--color-on-primary: #ffffff;--color-focus: #2563eb;--color-focus-ring: rgb(37 99 235 / 28%);--color-nav-active: #2563eb;--color-nav-text: #ffffff;--color-control-hover-border: #475569;--color-brand-bg: #2563eb;--color-brand-text: #ffffff;--color-brand-accent: #93c5fd;--color-brand-muted: #dbeafe;--color-error: #b91c1c;--color-error-bg: #fee2e2;--color-danger-outline: #dc2626;--color-danger-fill: #dc2626;--color-success: #047857;--color-success-bg: #d1fae5;--color-success-fill: #059669;--color-success-hover: #047857;--color-on-success: #ffffff;--color-warning: #b45309;--color-warning-bg: #fef3c7;--color-warning-fill: #ffd423;--color-info: #1d4ed8;--color-info-bg: #dbeafe;--color-badge-neutral-bg: #e2e8f0;--color-role: #4338ca;--color-role-bg: #e0e7ff;--radius-control: 8px;--radius-panel: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--duration-fast: .2s;--duration-normal: .26s;--ease-smooth: cubic-bezier(.22, 1, .36, 1);color:var(--color-text);background:var(--color-page)}:root[data-theme=dark]{color-scheme:dark;--color-page: #0d0d0d;--color-surface: #161616;--color-surface-low: #1c1c1c;--color-surface-raised: #242424;--color-surface-high: #2e2e2e;--color-sidebar: #121212;--color-control-bg: #0f0f0f;--color-text: #f0f0f0;--color-heading: #ffffff;--color-muted: #b5b5b5;--color-border: #3d3d3d;--color-panel-border: #454545;--color-primary: #1d72c5;--color-primary-hover: #195fa5;--color-primary-tone: #162d4a;--color-accent: #58a6ff;--color-link: #58a6ff;--color-on-primary: #ffffff;--color-focus: #58a6ff;--color-focus-ring: rgb(88 166 255 / 28%);--color-nav-active: #1d72c5;--color-nav-text: #ffffff;--color-control-hover-border: #8c8c8c;--color-brand-bg: #121212;--color-brand-text: #ffffff;--color-brand-accent: #58a6ff;--color-brand-muted: #e5e5e5;--color-error: #ff7b72;--color-error-bg: #2d1215;--color-danger-outline: #ff7b72;--color-danger-fill: #da3633;--color-success: #56d364;--color-success-bg: #0d2818;--color-success-fill: #238636;--color-success-hover: #2ea043;--color-on-success: #ffffff;--color-warning: #fbbf24;--color-warning-bg: #2b1d04;--color-warning-fill: #ffd423;--color-info: #58c6ff;--color-info-bg: #0c2538;--color-badge-neutral-bg: #262626;--color-role: #d2a8ff;--color-role-bg: #25133d}body{min-width:320px;min-height:100vh;line-height:1.5}h1,h2,h3{color:var(--color-heading);font-weight:650;line-height:1.25;text-wrap:balance}h1{font-size:clamp(1.8rem,3vw,2rem);letter-spacing:-.025em}h2{font-size:1.25rem;letter-spacing:-.015em}p{max-width:70ch}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--color-link)}button{cursor:pointer}:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--color-primary);color:var(--color-on-primary)}input{caret-color:var(--color-text)}::placeholder{color:var(--color-muted);opacity:1}*{scrollbar-color:var(--color-border) var(--color-page);scrollbar-width:thin}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}}@layer components{.button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:var(--space-2);padding:0 14px;border:1px solid transparent;border-radius:var(--radius-control);font-size:.8125rem;font-weight:600;line-height:1.25;text-align:center;text-decoration:none;transition:background-color var(--duration-normal) var(--ease-smooth),color var(--duration-normal) var(--ease-smooth),border-color var(--duration-normal) var(--ease-smooth),box-shadow var(--duration-normal) var(--ease-smooth),transform var(--duration-fast) var(--ease-smooth)}.button--sm{min-height:32px;padding-inline:10px;border-radius:6px;font-size:.75rem}.button--md{min-height:38px}.button--lg{min-height:42px;padding-inline:16px;font-size:.875rem}.button--primary{background:var(--color-primary);color:var(--color-on-primary)}.button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.button--secondary{border-color:var(--color-border);background:var(--color-surface-raised);color:var(--color-heading)}.button--secondary:hover:not(:disabled){border-color:var(--color-control-hover-border);background:var(--color-surface-high)}.button--quiet{background:transparent;color:var(--color-muted)}.button--quiet:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-heading)}.button--danger{background:var(--color-danger-fill);color:#fff}.button--danger:hover:not(:disabled){filter:brightness(.92)}.button--danger-tonal{background:var(--color-error-bg);color:var(--color-error)}.button--danger-tonal:hover:not(:disabled){filter:brightness(.96)}.button--danger-outline{border-color:var(--color-danger-outline);background:transparent;color:var(--color-danger-outline)}.button--danger-outline:is(:hover,:focus-visible):not(:disabled){background:var(--color-danger-fill);border-color:var(--color-danger-fill);color:#fff}.button--success{background:var(--color-success-fill);color:var(--color-on-success)}.button--success:hover:not(:disabled){background:var(--color-success-hover)}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.56}.button .app-icon{width:16px;height:16px}.field{display:grid;gap:6px}.field__label{color:var(--color-heading);font-size:.8125rem;font-weight:600;line-height:1.25}.field__required{padding-inline-start:3px;color:var(--color-error)}.field__hint,.field__error{max-width:60ch;font-size:.75rem;line-height:1.45}.field__hint{color:var(--color-muted)}.field__error{color:var(--color-error)}.input{display:block;width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--color-panel-border);border-radius:var(--radius-control);background:var(--color-control-bg);color:var(--color-text);font-size:.875rem;line-height:1.4;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.input:hover:not(:disabled):not([readonly]){border-color:var(--color-control-hover-border)}.input:focus-visible{border-color:var(--color-focus);outline:none;box-shadow:0 0 0 3px var(--color-focus-ring)}.input[aria-invalid=true]{border-color:var(--color-error)}.input[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-error) 22%,transparent)}.input:disabled{background:var(--color-surface-raised);color:var(--color-muted);opacity:.72}.input[readonly]{background:var(--color-surface)}.select{appearance:none;padding-right:38px;cursor:pointer}.select:disabled{cursor:not-allowed}.select-control{position:relative;display:block;min-width:0}.select-control__icon{position:absolute;top:50%;right:12px;width:16px;height:16px;transform:translateY(-50%);color:var(--color-muted);pointer-events:none}.password-control{position:relative;display:block}.password-control__input{padding-right:44px}.password-control__toggle{position:absolute;top:50%;right:6px;display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;padding:0;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;color:var(--color-muted);transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.password-control__toggle:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-heading)}.password-control__toggle .app-icon{width:17px;height:17px}.panel{min-width:0;padding:20px;border:1px solid var(--color-panel-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-text)}.panel__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin-bottom:16px}.panel__heading{flex:1 1 12rem;min-width:0}.panel__title{color:var(--color-heading);font-size:1rem;font-weight:600;line-height:1.4}.panel__description{margin-top:4px;color:var(--color-muted);font-size:.8125rem;line-height:1.5;overflow-wrap:anywhere}.panel__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}.panel__body{min-width:0}.panel__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}#app{transition:filter var(--duration-fast) var(--ease-smooth)}body:has(.modal:modal:not(.is-closing)) #app{filter:blur(3px)}.modal{--modal-width: 540px;width:min(calc(100vw - 32px),var(--modal-width));max-width:none;max-height:min(calc(100dvh - 32px),860px);margin:auto;padding:0;border:1px solid var(--color-panel-border);border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-text);box-shadow:0 24px 48px #00000061;overflow:hidden}.modal--sm{--modal-width: 420px}.modal--md{--modal-width: 540px}.modal--lg{--modal-width: 720px}.modal--xl{--modal-width: 1080px}.modal[open]{display:flex;flex-direction:column;animation:modal-pop-in var(--duration-normal) var(--ease-smooth) both}.modal[open].is-closing{animation:modal-pop-out var(--duration-fast) var(--ease-smooth) both;pointer-events:none}.modal::backdrop{background:#0000009e}.modal[open]::backdrop{animation:modal-backdrop-in var(--duration-normal) var(--ease-smooth) both}.modal[open].is-closing::backdrop{animation:modal-backdrop-out var(--duration-fast) var(--ease-smooth) both}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 16px;border-bottom:1px solid var(--color-border)}.modal__heading{display:grid;gap:4px;min-width:0}.modal__title{color:var(--color-heading);font-size:1.125rem;font-weight:650;line-height:1.35;margin:0}.modal__description{color:var(--color-muted);font-size:.8125rem;line-height:1.45;margin:0}.modal__close{display:inline-flex;width:36px;height:36px;flex-shrink:0;align-items:center;justify-content:center;margin:-4px -6px 0 0;padding:0;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--color-muted);transition:background-color var(--duration-normal) var(--ease-smooth),color var(--duration-normal) var(--ease-smooth),border-color var(--duration-normal) var(--ease-smooth)}.modal__close:hover{background:var(--color-surface-raised);border-color:var(--color-border);color:var(--color-heading)}.modal__body{padding:20px 24px;overflow-y:auto;flex:1 1 auto;min-height:0;display:grid;gap:16px;font-size:.875rem;line-height:1.55}.modal__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface-low) 55%,var(--color-surface))}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-pop-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-backdrop-out{0%{opacity:1}to{opacity:0}}@media(max-width:600px){.modal{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.modal__header{padding:16px 16px 14px}.modal__close{min-width:44px;min-height:44px}.modal__body{padding:16px}.modal__footer{padding:12px 16px}.modal__footer .button{min-height:44px}}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid transparent;border-radius:var(--radius-control);font-size:.875rem;line-height:1.45;overflow-wrap:anywhere}.alert--error{border-color:color-mix(in srgb,var(--color-error) 24%,transparent);background:var(--color-error-bg);color:var(--color-error)}.alert--success{border-color:color-mix(in srgb,var(--color-success) 22%,transparent);background:var(--color-success-bg);color:var(--color-success)}.alert--info{border-color:color-mix(in srgb,var(--color-info) 22%,transparent);background:var(--color-info-bg);color:var(--color-info)}.alert--warning{border-color:color-mix(in srgb,var(--color-warning) 24%,transparent);background:var(--color-warning-bg);color:var(--color-warning)}.alert__icon{display:inline-flex;flex:0 0 18px;width:18px;height:18px;align-items:center;justify-content:center;margin-top:1px}.alert__icon .app-icon{width:18px;height:18px}.alert__content{flex:1;min-width:0}.alert__title{max-width:none;margin:0 0 2px;font-weight:600}.alert__message{max-width:70ch}.alert__actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px}.alert__dismiss{display:inline-flex;width:30px;height:30px;flex-shrink:0;align-items:center;justify-content:center;padding:0;border:0;border-radius:6px;background:transparent;color:currentColor;transition:background-color var(--duration-fast) ease}.alert__dismiss:hover{background:color-mix(in srgb,currentColor 10%,transparent)}.alert__dismiss .app-icon{width:16px;height:16px}@media(max-width:600px){.alert{flex-wrap:wrap}.alert__content{flex-basis:calc(100% - 28px)}.alert__actions{flex-wrap:wrap;margin-left:auto}.alert__actions .button,.alert__dismiss{min-width:44px;min-height:44px}}.alert--banner{align-items:center;padding:16px 20px;border-color:var(--color-panel-border);border-radius:12px;background:var(--color-surface-raised);color:var(--color-text)}.alert--banner .alert__icon{flex-basis:30px;width:30px;height:30px;margin:0;color:var(--color-accent)}.alert--banner .alert__icon .app-icon{width:22px;height:22px}.alert--banner .alert__title{color:var(--color-heading);font-size:.9375rem}.alert--banner.alert--success{background:var(--color-success-bg);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 24%,transparent)}.alert--banner.alert--warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 24%,transparent)}.alert--banner.alert--error{background:var(--color-error-bg);color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 24%,transparent)}.alert--banner:is(.alert--success,.alert--warning,.alert--error) :is(.alert__icon,.alert__title){color:inherit}@media(max-width:600px){.alert--banner{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:16px}.alert--banner .alert__actions{grid-column:2;flex-wrap:wrap;margin-left:0}}.badge{display:inline-flex;width:fit-content;min-height:22px;align-items:center;gap:6px;padding:3px 9px;border:1px solid transparent;font-size:.6875rem;font-weight:600;line-height:1.2;white-space:nowrap}.badge--pill{border-radius:9999px}.badge--rounded{border-radius:6px}.badge--neutral{--badge-ink: var(--color-muted);--badge-fill: var(--color-badge-neutral-bg)}.badge--primary{--badge-ink: var(--color-role);--badge-fill: var(--color-role-bg)}.badge--success{--badge-ink: var(--color-success);--badge-fill: var(--color-success-bg)}.badge--warning{--badge-ink: var(--color-warning);--badge-fill: var(--color-warning-bg)}.badge--info{--badge-ink: var(--color-info);--badge-fill: var(--color-info-bg)}.badge--error{--badge-ink: var(--color-error);--badge-fill: var(--color-error-bg)}.badge{border-color:color-mix(in srgb,var(--badge-ink) 18%,transparent);background:var(--badge-fill);color:var(--badge-ink)}.badge__dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:currentColor}.badge__icon{width:13px;height:13px}.app-icon{display:block;width:18px;height:18px;flex:0 0 auto}.brand{display:inline-flex;align-items:center;gap:12px;font-size:1rem;font-weight:700;text-decoration:none}.muted{color:var(--color-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spinner{display:inline-block;width:16px;height:16px;flex:0 0 16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}}:root.theme-changing *,:root.theme-changing *:before,:root.theme-changing *:after{transition-duration:0s}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer components{.notification-center{position:fixed;z-index:100;top:max(80px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));width:min(390px,calc(100vw - 32px));max-height:calc(100dvh - 104px);overflow-y:auto;pointer-events:none}.notification-center__list{display:grid;gap:12px}.notification{min-width:0;pointer-events:auto}.notification .alert__actions{align-self:flex-start}.notification-stack-enter-active,.notification-stack-leave-active,.notification-stack-move{transition:opacity var(--duration-fast) ease-out,transform var(--duration-normal) cubic-bezier(.16,1,.3,1)}.notification-stack-enter-from,.notification-stack-leave-to{opacity:0;transform:translateY(-8px)}@media(max-width:600px){.notification-center{top:max(72px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));max-height:calc(100dvh - 88px)}}}
