.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-bg) 0%,var(--color-bg-layout) 100%);padding:var(--spacing-lg)}.auth-layout__container{width:100%;max-width:420px}.main-layout{min-height:100vh}.main-layout__sider{position:sticky;top:0;height:100vh;overflow:auto}.main-layout__logo{height:var(--layout-header-height);display:flex;align-items:center;justify-content:center;color:var(--color-text-on-sider);font-weight:600;font-size:var(--font-size-md);letter-spacing:.5px;border-bottom:1px solid var(--color-border-card)}.main-layout__header{display:flex;align-items:center;justify-content:flex-end;padding:0 var(--spacing-lg)!important;background:var(--color-bg-header)!important;border-bottom:1px solid var(--color-border-secondary);position:sticky;top:0;z-index:10}.main-layout__header-right{display:flex;align-items:center;gap:var(--spacing-md)}.main-layout__user{cursor:pointer;padding:4px 8px;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.main-layout__user:hover{background-color:var(--color-bg-layout)}.main-layout__user-info{display:flex;flex-direction:column;line-height:1.2}.main-layout__content{padding:var(--layout-content-padding);background:var(--color-bg-layout);min-height:calc(100vh - var(--layout-header-height))}.login-card{box-shadow:var(--shadow-lg);border-radius:var(--radius-lg)}.login-card__header{text-align:center}:root{--color-primary: #0e6d78;--color-primary-soft: #0e6d78;--color-primary-hover: #12808d;--color-primary-active: #0a5b64;--color-primary-tint: color-mix(in srgb, var(--color-primary) 10%, #fff);--color-primary-tint-border: color-mix(in srgb, var(--color-primary) 25%, #fff);--color-primary-light: var(--color-primary-tint);--color-primary-bg: var(--color-primary-tint);--color-ok: #2e9467;--color-ok-text: #27754f;--color-ok-bg: #e6f3ec;--color-warn: #c78f2b;--color-warn-text: #96690d;--color-warn-bg: #faf1dd;--color-crit: #c44f44;--color-crit-text: #a43f35;--color-crit-bg: #f9e9e7;--color-neutral-chip-bg: #eef1f4;--color-neutral-chip-text: #46545f;--color-success: var(--color-ok);--color-warning: var(--color-warn);--color-error: var(--color-crit);--color-info: var(--color-primary-soft);--color-bg-base: #ffffff;--color-bg-elevated: #ffffff;--color-bg-layout: #f2f4f7;--color-bg-container: #ffffff;--color-bg-mask: rgba(12, 20, 28, .45);--color-bg-sider: #ffffff;--color-bg-header: #ffffff;--color-row-hover: #f7f9fa;--color-qr-surface: #ffffff;--color-text-primary: #17222c;--color-text-mid: #46545f;--color-text-secondary: #7c8b96;--color-text-tertiary: #a2aeb8;--color-text-disabled: #c2ccd4;--color-text-on-primary: #ffffff;--color-text-on-sider: var(--color-text-mid);--color-border: #d4dce2;--color-border-card: #e2e7ec;--color-border-row: #f4f6f8;--color-border-secondary: var(--color-border-card);--color-border-strong: #b9c4cd;--shadow-sm: none;--shadow-md: 0 6px 16px 0 rgba(12, 20, 28, .08);--shadow-lg: 0 12px 32px 0 rgba(12, 20, 28, .12);--shadow-modal: 0 20px 60px rgba(12, 20, 28, .35);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 14px;--radius-card: 16px;--radius-modal: 18px;--radius-pill: 999px;--font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-xxl: 24px;--font-size-display: 32px;--layout-sider-width: 232px;--layout-sider-collapsed-width: 72px;--layout-header-height: 60px;--layout-content-padding: 28px;--transition-fast: .1s ease;--transition-base: .2s ease;--transition-slow: .3s ease}[data-theme=dark]{--color-primary: #0e6d78;--color-primary-soft: #6fbac2;--color-primary-hover: #14828f;--color-primary-active: #0b5560;--color-primary-tint: rgba(111, 186, 194, .1);--color-primary-tint-border: rgba(111, 186, 194, .3);--color-ok: #5ec695;--color-ok-text: #5ec695;--color-ok-bg: rgba(94, 198, 149, .14);--color-warn: #e3b25c;--color-warn-text: #e3b25c;--color-warn-bg: rgba(227, 178, 92, .14);--color-crit: #e57f74;--color-crit-text: #e57f74;--color-crit-bg: rgba(229, 127, 116, .14);--color-neutral-chip-bg: #232c36;--color-neutral-chip-text: #a6b3bf;--color-bg-base: #1a212a;--color-bg-elevated: #1e2631;--color-bg-layout: #11161c;--color-bg-container: #1a212a;--color-bg-mask: rgba(0, 0, 0, .65);--color-bg-sider: #151b22;--color-bg-header: #1a212a;--color-row-hover: rgba(255, 255, 255, .03);--color-qr-surface: #ffffff;--color-text-primary: #e7edf2;--color-text-mid: #a6b3bf;--color-text-secondary: #93a1ad;--color-text-tertiary: #5c6a76;--color-text-disabled: #4a5661;--color-text-on-sider: var(--color-text-mid);--color-border: #333e4a;--color-border-card: #29323d;--color-border-row: #222a33;--color-border-strong: #45525f;--shadow-sm: none;--shadow-md: 0 6px 16px 0 rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px 0 rgba(0, 0, 0, .5);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-layout);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.full-height{height:100%}.text-center{text-align:center}.flex-center{display:flex;align-items:center;justify-content:center}.flex-row{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sm)}.flex-col{display:flex;flex-direction:column}
