@charset "UTF-8";@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-800-normal-BYj_oED-.woff2) format("woff2"),url(/assets/inter-latin-800-normal-D1mf63XC.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/inter-latin-900-normal-D4nM5aha.woff2) format("woff2"),url(/assets/inter-latin-900-normal-EUCDUbiG.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-cyrillic-800-normal-C7MGvYyJ.woff2) format("woff2"),url(/assets/inter-cyrillic-800-normal-CCHyn08d.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/inter-cyrillic-900-normal-CjyCg421.woff2) format("woff2"),url(/assets/inter-cyrillic-900-normal-BAVML7y5.woff) format("woff")}:root{--surface: #ECF0F3;--surface-raised: #F2F5F8;--surface-inset: #E3E7EB;--surface-ink: #F7FAFC;--shadow-dark: #A6B4C8;--shadow-light: #FFFFFF;--neu-sm: 4px 4px 8px var(--shadow-dark), -4px -4px 8px var(--shadow-light);--neu-md: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light);--neu-lg: 12px 12px 24px var(--shadow-dark), -12px -12px 24px var(--shadow-light);--neu-xl: 20px 20px 40px var(--shadow-dark), -20px -20px 40px var(--shadow-light);--neu-inset-sm: inset 4px 4px 8px var(--shadow-dark), inset -4px -4px 8px var(--shadow-light);--neu-inset-md: inset 8px 8px 16px var(--shadow-dark), inset -8px -8px 16px var(--shadow-light);--purple: #7B81BE;--purple-soft: rgba(123, 129, 190, .12);--blue: #6B92E5;--blue-soft: rgba(107, 146, 229, .12);--pink: #F88AB0;--pink-soft: rgba(248, 138, 176, .12);--orange: #E8A040;--orange-soft: rgba(232, 160, 64, .12);--green: #7cd506;--green-soft: rgba(124, 213, 6, .12);--success: #7cd506;--success-soft: rgba(124, 213, 6, .12);--warning: #ECC94B;--warning-soft: rgba(236, 201, 75, .12);--error: #F56565;--error-soft: rgba(245, 101, 101, .12);--info: #6B92E5;--info-soft: rgba(107, 146, 229, .12);--gray-50: #F7FAFC;--gray-100: #EDF2F7;--gray-200: #E2E8F0;--gray-300: #CBD5E0;--gray-400: #A0AEC0;--gray-500: #718096;--gray-600: #4A5568;--gray-700: #2D3748;--gray-800: #1A202C;--gray-900: #171923;--text-primary: #1A202C;--text-secondary: #4A5568;--text-tertiary: #718096;--text-placeholder: #A0AEC0;--text-on-accent: #FFFFFF;--text-link: #6B92E5;--border-subtle: rgba(166, 180, 200, .15);--border-default: rgba(166, 180, 200, .25);--border-strong: rgba(166, 180, 200, .4);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Monaco", "Menlo", monospace;--text-3xs: 9px;--text-2xs: 10px;--text-xxs: 11px;--text-xs: 12px;--text-sm: 13px;--text-mid: 14px;--text-base: 15px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-2_5xl: 28px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--sp-0_5: 2px;--sp-1: 4px;--sp-1_5: 6px;--sp-2: 8px;--sp-2_5: 10px;--sp-3: 12px;--sp-3_5: 14px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--radius-xs: 4px;--radius-s: 6px;--radius-sm: 8px;--radius-base: 10px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--sidebar-width: 56px;--sidebar-expanded: 240px;--header-height: 56px;--status-bar-height: 36px;--content-max: 1400px;--ease-default: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--overlay-bg: rgb(236 240 243 / 76%);--tooltip-bg: #1A202C;--tooltip-text: #FFFFFF;--border: var(--border-default);--surface-hover: var(--surface-raised)}[data-theme=dark]{--surface: #1E2533;--surface-raised: #252D3D;--surface-inset: #181E2A;--surface-ink: #212938;--shadow-dark: #141820;--shadow-light: #283040;--text-primary: #E2E8F0;--text-secondary: #A0AEC0;--text-tertiary: #718096;--text-placeholder: #4A5568;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--overlay-bg: rgb(30 37 51 / 82%);--tooltip-bg: #E2E8F0;--tooltip-text: #1A202C;--gray-50: #171923;--gray-100: #1A202C;--gray-200: #2D3748;--gray-300: #4A5568;--gray-400: #718096;--gray-500: #A0AEC0;--gray-600: #CBD5E0;--gray-700: #E2E8F0;--gray-800: #EDF2F7;--gray-900: #F7FAFC}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);border:none;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-base) var(--ease-default);background:var(--surface);color:var(--text-secondary)}.btn:hover{color:var(--text-primary)}.btn-primary{color:var(--blue);box-shadow:var(--neu-md)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--neu-lg)}.btn-primary:active{transform:translateY(0);box-shadow:var(--neu-inset-sm)}.btn-accent{background:var(--blue);color:var(--text-on-accent);box-shadow:6px 6px 12px #6b92e54d,-4px -4px 8px var(--shadow-light)}.btn-accent:hover{transform:translateY(-2px);box-shadow:8px 8px 16px #6b92e559,-6px -6px 12px var(--shadow-light)}.btn-danger{background:var(--surface);color:var(--error);box-shadow:var(--neu-md)}.btn-danger:hover{background:var(--error);color:var(--text-on-accent);transform:translateY(-2px)}.btn-ghost{color:var(--text-secondary);background:transparent}.btn-ghost:hover{background:var(--surface-raised);color:var(--text-primary)}.btn-sm{padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-tertiary);background:var(--border-subtle);cursor:pointer;border:none;font-family:var(--font-sans);transition:color var(--duration-fast) var(--ease-default)}.btn-sm:hover{color:var(--text-primary)}.btn-outline{background:var(--surface);border:1px solid var(--border-default);color:var(--text-tertiary)}.btn-outline:hover{color:var(--text-primary)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-full);justify-content:center}.btn-icon-sm{width:24px;height:24px;padding:0;border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-xxs);color:var(--text-secondary);transition:all var(--duration-fast) var(--ease-default)}.btn-icon-sm:hover{background:var(--border-subtle)}.btn-icon-sm-danger:hover{color:var(--error);background:var(--error-soft)}.form-group{display:flex;flex-direction:column;gap:var(--sp-1_5)}.form-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.form-label .required{color:var(--error);margin-left:var(--sp-0_5)}.form-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.form-input{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-ink);font-size:var(--text-base);color:var(--text-primary);font-family:var(--font-sans);outline:none;transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.form-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.form-input::placeholder{color:var(--text-placeholder)}.form-input-error{border-color:var(--error)}.form-input-error:focus{box-shadow:0 0 0 3px var(--error-soft)}.form-input-sm{padding:4px 8px;border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans)}.form-error-text{font-size:var(--text-xs);color:var(--error);margin-top:var(--sp-1)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0L10 0L5 6Z' fill='%23000'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-4) center;padding-right:var(--sp-10)}.custom-select.form-select{background-image:none;padding-right:0}.form-select-sm{padding:4px 26px 4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background-color:var(--surface-ink);background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0L10 0L5 6Z' fill='%23000'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;font-size:var(--text-xs);color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.form-select-sm:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.custom-select{position:relative;display:inline-block}.custom-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-ink);font-size:var(--text-base);font-family:inherit;color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.custom-select__arrow{flex-shrink:0;color:var(--text-primary);transition:transform var(--duration-fast) var(--ease-default)}.custom-select.is-open .custom-select__trigger{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.custom-select.is-open .custom-select__arrow{transform:rotate(180deg)}.custom-select__panel{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-height:240px;background:var(--surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f,0 2px 8px #0000000f;z-index:200;overflow-x:hidden;overflow-y:auto;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-default)}.custom-select.is-open .custom-select__panel{opacity:1;transform:translateY(0);pointer-events:auto}.custom-select__option{padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.custom-select__option:hover{background-color:var(--surface-raised);color:var(--text-primary)}.custom-select__option.is-selected{color:var(--blue);font-weight:600}.custom-select--sm .custom-select__trigger{padding:4px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs)}.custom-select--sm .custom-select__option{padding:6px 10px;font-size:var(--text-xs)}.custom-select--compact .custom-select__trigger{background:transparent;border:1px solid transparent;padding:3px 8px;font-size:var(--text-xs);height:auto;border-radius:var(--radius-sm);color:var(--text-secondary);box-shadow:none}.custom-select--compact .custom-select__trigger:hover{background:var(--surface-raised);border-color:var(--border-subtle);color:var(--text-primary)}.custom-select--compact .custom-select__panel{transform-origin:top left;transform:scale(.95) translateY(-4px);transition:opacity .14s cubic-bezier(.2,0,.1,1),transform .14s cubic-bezier(.2,0,.1,1);min-width:130px}.custom-select--compact.is-open .custom-select__trigger{background:var(--surface-raised);border-color:var(--border-default);color:var(--text-primary)}.custom-select--compact.is-open .custom-select__panel{transform:scale(1) translateY(0)}.cs-opt-sign{display:inline-block;width:14px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--blue);margin-right:var(--sp-1)}.custom-select__trigger .cs-opt-sign{color:var(--purple)}textarea.form-input{min-height:100px;resize:vertical;line-height:var(--leading-relaxed)}.check-label{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.check-label.disabled{opacity:.5;cursor:not-allowed}.checkbox-box{width:20px;height:20px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default);flex-shrink:0;font-size:var(--text-xs);color:transparent}.checkbox-box.checked{box-shadow:var(--neu-inset-sm);color:var(--blue)}.checkbox-box.indeterminate{box-shadow:var(--neu-inset-sm);color:var(--text-tertiary)}.radio-box{width:20px;height:20px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;transition:all var(--duration-base) var(--ease-default);flex-shrink:0}.radio-box.checked{box-shadow:var(--neu-inset-sm)}.radio-box-dot{width:8px;height:8px;border-radius:var(--radius-full);background:transparent;transition:background var(--duration-base)}.radio-box.checked .radio-box-dot{background:var(--purple)}.table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th{text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:var(--sp-3) var(--sp-4);border-bottom:2px solid var(--border-default);background:var(--surface-ink);position:sticky;top:0}.data-table td{padding:10px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.data-table tbody tr{transition:background var(--duration-fast) var(--ease-default)}.data-table tbody tr:hover{background:#6b92e50a}.data-table tbody tr:last-child td{border-bottom:none}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sortable:hover{background:var(--border-subtle)}.th-sortable .sort-arrow{margin-left:var(--sp-1);font-size:var(--text-2xs);color:var(--text-placeholder)}.th-sortable.sort-asc .sort-arrow:after{content:"↑"}.th-sortable.sort-desc .sort-arrow:after{content:"↓"}.tag{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px 8px;border-radius:var(--radius-base);font-size:var(--text-xxs);font-weight:500}.tag-green{background:var(--success-soft);color:var(--success)}.tag-blue{background:var(--blue-soft);color:var(--blue)}.tag-purple{background:var(--purple-soft);color:var(--purple)}.tag-orange{background:var(--warning-soft);color:var(--warning)}.tag-error{background:var(--error-soft);color:var(--error)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border-default);background:var(--surface);font-size:var(--text-xs)}.pagination-nav{display:flex;align-items:center;gap:var(--sp-1)}.pagination-btn{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:var(--surface);color:var(--text-secondary);box-shadow:var(--neu-sm);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-sans);padding:0 var(--sp-2);transition:all var(--duration-fast) var(--ease-default)}.pagination-btn:hover:not([disabled]){box-shadow:var(--neu-md);transform:translateY(-1px)}.pagination-btn.active{box-shadow:var(--neu-inset-sm);color:var(--blue);font-weight:600;background:var(--surface)}.pagination-btn[disabled]{opacity:.4;cursor:default;box-shadow:none}.pagination-ellipsis{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-sm)}.pagination-info{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-tertiary);margin-left:var(--sp-4)}.pagination-select{padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:var(--text-xs);font-family:var(--font-sans)}.pagination-count{color:var(--text-secondary)}.pagination-compact{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-sm);color:var(--text-secondary)}.tab-bar{display:flex;gap:0}.tab{padding:6px 14px;font-size:var(--text-xs);color:var(--text-tertiary);cursor:pointer;background:transparent;border:none;border-bottom:2px solid transparent;font-family:var(--font-sans);--tab-accent: var(--blue)}.tab.active{color:var(--tab-accent);border-bottom-color:var(--tab-accent)}.tab-pill{border:1px solid transparent;border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-4);font-weight:500}.tab-pill:hover{background:var(--surface-hover);color:var(--text-primary)}.tab-pill.active{background:color-mix(in srgb,var(--tab-accent) 12%,transparent);color:var(--tab-accent);border-color:var(--tab-accent)}.tabs{display:flex;gap:var(--sp-1);background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-1);box-shadow:var(--neu-inset-sm)}.tabs .tab{padding:var(--sp-2) var(--sp-5);border-radius:var(--radius-md);border:none;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;border-bottom:none}.tabs .tab.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--neu-sm);border-bottom:none}.toggle{width:40px;height:22px;border-radius:11px;background:var(--surface);box-shadow:var(--neu-inset-sm);position:relative;cursor:pointer;transition:background var(--duration-base);flex-shrink:0}.toggle.on{background:var(--purple-soft)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface-raised);box-shadow:var(--neu-sm);transition:transform var(--duration-base) var(--ease-default)}.toggle.on:after{transform:translate(18px);background:var(--purple)}.toggle.disabled{opacity:.5;cursor:not-allowed}.toggle-sm{width:28px;height:16px;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--neu-inset-sm);position:relative;cursor:pointer;transition:background .15s;flex-shrink:0}.toggle-sm.on{background:var(--blue-soft)}.toggle-sm:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--surface-raised);box-shadow:var(--neu-sm);transition:transform .15s}.toggle-sm.on:after{transform:translate(12px);background:var(--blue)}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-purple{background:var(--purple-soft);color:var(--purple)}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-pink{background:var(--pink-soft);color:var(--pink)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-error{background:var(--error-soft);color:var(--error)}.badge-neutral{background:var(--gray-200);color:var(--gray-600)}.badge-sm{padding:2px 8px;font-size:var(--text-2xs)}.badge-sm.badge-dot:before{width:5px;height:5px}.badge-lg{padding:6px 14px;font-size:var(--text-mid)}.badge-lg.badge-dot:before{width:8px;height:8px}.badge-service{gap:var(--sp-2)}.badge-service svg{width:12px;height:12px;flex-shrink:0}.skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;margin-bottom:var(--sp-2)}.skeleton-text:last-child{width:60%}.skeleton-title{height:20px;width:40%;margin-bottom:var(--sp-4)}.skeleton-avatar{width:36px;height:36px;border-radius:var(--radius-full)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.avatar{flex-shrink:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;font-weight:600;-webkit-user-select:none;user-select:none;letter-spacing:.3px}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-xs{width:20px;height:20px;font-size:8px}.avatar-sm{width:28px;height:28px;font-size:var(--text-xxs)}.avatar-md{width:36px;height:36px;font-size:var(--text-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--text-md)}.avatar-xl{width:64px;height:64px;font-size:var(--text-xl)}.toast-container{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column-reverse;gap:var(--sp-2);z-index:500;pointer-events:none}.toast{background:var(--surface);border-radius:var(--radius-lg);padding:var(--sp-4);display:flex;align-items:flex-start;gap:var(--sp-3);box-shadow:var(--neu-lg);min-width:320px;max-width:400px;pointer-events:auto;animation:toastIn .3s var(--ease-default);font-size:var(--text-sm)}.toast.toast-out{animation:toastOut .25s var(--ease-default) forwards}.toast.toast-success .toast-icon{background:var(--success-soft);color:var(--success)}.toast.toast-error .toast-icon{background:var(--error-soft);color:var(--error)}.toast.toast-warning .toast-icon{background:var(--warning-soft);color:var(--warning)}.toast.toast-info .toast-icon{background:var(--info-soft);color:var(--info)}.toast-icon{width:20px;height:20px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-xxs);font-weight:700;flex-shrink:0;margin-top:1px}.toast-body{flex:1}.toast-title{font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-0_5);font-size:var(--text-sm)}.toast-message{color:var(--text-tertiary);font-size:var(--text-xs);line-height:var(--leading-normal)}.toast-time{font-size:var(--text-xxs);color:var(--text-placeholder);margin-top:var(--sp-1)}.toast-close{color:var(--text-placeholder);cursor:pointer;font-size:var(--text-md);line-height:1;flex-shrink:0}.toast-close:hover{color:var(--text-primary)}@keyframes toastIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.empty-state__title{font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-2)}.empty-state__desc{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--sp-3);font-size:var(--text-xs)}.empty-state__items{list-style:none;padding:0;margin:0 0 var(--sp-3);color:var(--text-secondary);display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--text-xs)}.empty-state__hint{font-size:var(--text-xs);color:var(--text-tertiary)}.empty-state__actions{margin-top:var(--sp-3)}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-wrap .tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--gray-800, #1a202c);color:var(--text-on-accent, #fff);padding:var(--sp-1) var(--sp-2_5);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-default);z-index:300}.tooltip-wrap .tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--gray-800, #1a202c)}.tooltip-wrap.tooltip--bottom .tooltip{bottom:auto;top:calc(100% + 6px)}.tooltip-wrap.tooltip--bottom .tooltip:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--gray-800, #1a202c)}.tooltip-wrap.tooltip--right .tooltip{bottom:auto;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.tooltip-wrap.tooltip--right .tooltip:after{top:50%;left:auto;right:100%;transform:translateY(-50%);border-top-color:transparent;border-right-color:var(--gray-800, #1a202c)}.tooltip-wrap.tooltip--left .tooltip{bottom:auto;top:50%;left:auto;right:calc(100% + 8px);transform:translateY(-50%)}.tooltip-wrap.tooltip--left .tooltip:after{top:50%;left:100%;transform:translateY(-50%);border-top-color:transparent;border-left-color:var(--gray-800, #1a202c)}.tooltip-wrap:hover .tooltip{opacity:1}.color-picker{display:inline-flex;align-items:center;gap:var(--sp-2)}.color-picker__swatch{width:36px;height:36px;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--sp-0_5);cursor:pointer;background:none;flex-shrink:0;transition:border-color .15s}.color-picker__swatch:hover{border-color:var(--border-hover)}.color-picker__swatch:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.color-picker__swatch::-webkit-color-swatch-wrapper{padding:0}.color-picker__swatch::-webkit-color-swatch{border-radius:2px;border:none}.color-picker__label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary)}.color-picker--sm .color-picker__swatch{width:28px;height:28px}.color-picker--sm .color-picker__label{font-size:var(--text-xs)}
